@charset "utf-8";



/*----------------------------------------------------

viewMore

----------------------------------------------------*/



#viewMore {

  padding: 10px 0 30px;

}

@media screen and (min-width: 841px) {

  #viewMore {

    padding: 10px 0 0;

  }

}





/* text setting */

#viewMore {

  font-size: 14px;

  line-height: 1.75;

}

@media screen and (min-width: 641px) {

  #viewMore {

    font-size: 16px;

    letter-spacing: 0.03em;

  }

}





/* margin */

#viewMore .block,

#viewMore p.text,

#viewMore p.lead,

#viewMore p.photo,

#viewMore hr {

  margin-top: 20px;

}

.conversation th {

  padding: 20px 0 0 0;

}

@media screen and (min-width: 641px) {

  #viewMore .block,

  #viewMore p.text,

  #viewMore p.lead,

  #viewMore p.photo,

  #viewMore hr {

    margin-top: 30px;

  }

  .conversation th {

    padding: 30px 0 0 0;

  }

  .conversation td {

    padding: 30px 0 0 0;

  }

}



#viewMore .block.mgn,

#viewMore p.text.mgn,

#viewMore p.lead.mgn,

#viewMore p.photo.mgn,

#viewMore hr.mgn,

#viewMore h2.mgn,

#viewMore p.btn_ar.mgn {

  margin-top: 40px;

}

@media screen and (min-width: 641px) {

  #viewMore .block.mgn,

  #viewMore p.text.mgn,

  #viewMore p.lead.mgn,

  #viewMore p.photo.mgn,

  #viewMore hr.mgn,

  #viewMore h2.mgn,

  #viewMore p.btn_ar.mgn {

    margin-top: 60px;

  }

}





/* text lead */

#viewMore p.lead {

  font-size: 16px;

  line-height: 1.66;

}

@media screen and (min-width: 641px) {

  #viewMore p.lead {

    font-size: 18px;

    letter-spacing: 0.03em;

  }

}





/* hr */

#viewMore hr {

  display: block;

  border: solid 1px #c8c8c8;

}





/* conversation */

.conversation {

  font-size: 15px;

  line-height: 1.75;

  letter-spacing: 0.03em;



  width: 100%;

  border: none;

  border-collapse: collapse;

  border-spacing: 0;

  empty-cells: show;

}

.conversation th,

.conversation td {

  display: block;

  border: none;

  background-color: #ffffff;

  vertical-align: top;

  text-align: left;

  font-weight: normal;

}

.conversation th {

  font-size: 16px;

  font-weight: bold;

  white-space: nowrap;

}



@media screen and (min-width: 641px) {

  .conversation {

    font-size: 16px;

  }

  .conversation th,

  .conversation td {

    display: table-cell;

  }

  .conversation th {

    font-size: 18px;

  }

}





/* caption */

.photo .caption {

  display: block;

  color: #7a4c1f;

  font-size: 12px;

  line-height: 1.3;

  margin-top: 1em;

  text-align: right;

}

.photo .caption.left {

  text-align: left;

}

.photo .caption.center {

  text-align: center;

}

.photo .caption.right {

  text-align: right;

}

@media screen and (min-width: 641px) {

  .photo .caption {

    font-size: 14px;

  }

}





/* wakuBox */

.wakuBox {

  background: url(../images/paper.jpg);

  border: solid 2px #e6e6e6;

  border-radius: 3px;

  padding: 13px;

}

.wakuBox.noBG {

  background: #ffffff;

}

.wakuBox.noBorder {

  border: none;

}

.wakuBox.noMargin {

  padding: 0;

}

.wakuBox .image {

  text-align: center;

}

.wakuBox h2 {

  margin-top: 0.8em;

  margin-bottom: 0.3em;

  font-size: 18px;

  line-height: 1.3;

  font-weight: bold;

}

.wakuBox .note {

  font-size: 13px;

  line-height: 1.4;

}

.wakuBox .btn_w {

  margin-top: 18px;

}

.wakuBox p.text {

  margin-top: 10px!important;

}

@media screen and (min-width: 641px) {

  .wakuBox {

    padding: 28px;

    display: -webkit-flex;

    display: flex;

    -webkit-align-items: center;

    align-items: center;

  }

  .wakuBox .image {

    width: 41%;

    margin-right: 3%;

  }

  .wakuBox .wrap {

    width: 56%;

  }

  .wakuBox h2 {

    margin-top: 0;

    font-size: 20px;

    letter-spacing: 0.1em;

  }

  .wakuBox .note {

    font-size: 15px;

    letter-spacing: 0.1em;

  }

  .wakuBox .btn_w {

    margin-top: 24px;

  }

  .wakuBox p.text {

    margin-top: 0!important;

  }

}




/* wakuBoxMin */

.wakuBoxMin {

  background: url(../images/paper.jpg);

  border: solid 2px #e6e6e6;

  border-radius: 3px;

  padding: 13px;

  display: -webkit-flex;

  display: flex;

  -webkit-align-items: top;

  align-items: top;

}

.wakuBoxMin.noBG {

  background: #ffffff;

}

.wakuBoxMin.noBorder {

  border: none;

}

.wakuBoxMin.noMargin {

  padding: 0;

}

.wakuBoxMin .image {

  text-align: left;

  width: 25%;

  margin-right: 3%;

}

.wakuBoxMin .wrap {

  width: 72%;

}

.wakuBoxMin h2 {

  margin-top: 0;

  margin-bottom: 0.3em;

  font-size: 18px;

  line-height: 1.3;

  font-weight: bold;

}

.wakuBoxMin .note {

  font-size: 13px;

  line-height: 1.4;

}

.wakuBoxMin .btn_w {

  margin-top: 18px;

}

.wakuBoxMin p.text {

  margin-top: 10px!important;

}

@media screen and (min-width: 641px) {

  .wakuBoxMin {

    padding: 28px;

  }

  .wakuBoxMin .image {

    width: 21%;

  }

  .wakuBoxMin .wrap {

    width: 76%;

  }
  
  .wakuBoxMin h2 {

    margin-top: 0;

    font-size: 20px;

    letter-spacing: 0.1em;

  }

  .wakuBoxMin .note {

    font-size: 15px;

    letter-spacing: 0.1em;

  }

  .wakuBoxMin .btn_w {

    margin-top: 24px;

  }

  .wakuBoxMin p.text {

    margin-top: 0!important;

  }

}




/* btn_w */

.btn_w a {

  display: block;

  background: #ffffff;

  border: solid 2px #008000;

  box-sizing: border-box;

  text-decoration: none;

  color: #008000;

  font-size: 15px;

  line-height: 1;

  font-weight: bold;

  padding: 1.2em;

  text-align: center;

}

.btn_w.inline.right {

  text-align: right;

}

.btn_w.inline.center {

  text-align: center;

}

.btn_w.inline a {

  display: inline-block;

}

.btn_w a:hover {

  text-decoration: none;

}

.btn_w a span {

  position: relative;

  display: inline-block;

  padding-right: 32px;

}

.btn_w a span::after {

  position: absolute;

  top: 50%;

  right: 0;

  display: block;

  content: '';

  width: 10px;

  height: 10px;

  border-top: 2px solid #008000;

  border-right: 2px solid #008000;

  -webkit-transform: rotate(45deg);

  transform: rotate(45deg);

  margin-top: -5px;

}

@media screen and (min-width: 641px) {

  .btn_w a {

    font-size: 16px;

    letter-spacing: 0.1em;

    -webkit-transition: all 0.2s;

    transition: all 0.2s;

  }

  .btn_w a:hover {

    color: #ffffff;

    background: #008000;

  }

  .btn_w a span::after {

    -webkit-transition: all 0.2s;

    transition: all 0.2s;

  }

  .btn_w a:hover span::after {

    right: -6px;

    border-top: 2px solid #ffffff;

    border-right: 2px solid #ffffff;

  }

}





/* btn_ar */

.btn_ar.right {

  text-align: right;

}

.btn_ar.center {

  text-align: center;

}

.btn_ar a {

  position: relative;

  display: inline-block;

  padding-left: 1.5em;

  text-align: left;

}

.btn_ar a::before,

.btn_ar a::after {

  position: absolute;

  left: 0;

  display: block;

  content: '';

}

.btn_ar a::before {

  top: 0.3em;

  width: 1em;

  height: 1em;

  border-radius: 1em;

  background: #008000;

}

.btn_ar a::after {

  box-sizing: border-box;

  top: 0.5em;

  left: 0.45em;

  width: 0.3em;

  height: 0.3em;

  border: 0.3em solid transparent;

  border-left: 0.3em solid #ffffff;

}

@media screen and (min-width: 641px) {

  .btn_ar a::before {

    top: 0.35em;

  }

  .btn_ar a::after {

    top: 0.62em;

  }

}







/* kikinogashi */

.kikinogashi a {

  position: relative;

  display: block;

  background: #ffffff;

  border: solid 2px #e71a1d;

  box-sizing: border-box;

  text-decoration: none;

  padding: 16px 40px 16px 20px;

  text-align: left;

}

.kikinogashi a:hover {

  text-decoration: none;

}

.kikinogashi a::after {

  position: absolute;

  top: 50%;

  right: 10px;

  display: block;

  content: '';

  width: 22px;

  height: 20px;

  margin-top: -10px;

  background: url(../images/arrow_w.png) no-repeat 0 0;

}

.kikinogashi .image {

  text-align: center;

}

.kikinogashi .image img {

  width: 50px;

}

.kikinogashi h2 {

  margin-top: 0.6em;

  color: #e71a1d;

  font-size: 16px;

  line-height: 1.3;

  font-weight: bold;

}

.kikinogashi .note {

  margin-top: 10px;

  font-size: 15px;

  line-height: 1.3;

}

.kikinogashi .note span {

  display: inline-block;

  color: #ffffff;

  background: #787878;

  padding: 0.2em 0.8em;

  margin-right: 1em;

  font-size: 14px;

}

.kikinogashi .note em {

  font-size: 1.25em;

}

@media screen and (min-width: 641px) {

  .kikinogashi a {

    padding: 16px 70px 16px 20px;

    display: -webkit-flex;

    display: flex;

    -webkit-align-items: center;

    align-items: center;

  }

  .kikinogashi a::after {

    right: 30px;

    -webkit-transition: all 0.2s;

    transition: all 0.2s;

  }

  .kikinogashi a:hover::after {

    right: 20px;

  }

  .kikinogashi .image {

    width: 14%;

    max-width: 100px;

    margin-right: 20px;

  }

  .kikinogashi .image img {

    width: 100%;

  }

  .kikinogashi h2 {

    margin-top: 0;

    font-size: 20px;

    letter-spacing: 0.03em;

  }

  .kikinogashi .note {

    margin-top: 15px;

    font-size: 16px;

    letter-spacing: 0.07em;

  }

  .kikinogashi .note span {

    font-size: 15px;

  }

}





/* programData */

.programData h2 {

  display: inline-block;

  font-size: 15px;

  line-height: 1;

  font-weight: bold;

  border: solid 2px #000000;

  padding: 0.6em 2.6em;

}



.programData table {

  margin-top: 10px;

  font-size: 14px;

  line-height: 1.5;

  width: 100%;

  border: none;

  border-collapse: collapse;

  border-spacing: 0;

  empty-cells: show;

}

.programData table th,

.programData table td {

  border: dotted 2px #dcdcdc;

  border-width: 0 0 2px 0;

  background-color: #ffffff;

  vertical-align: top;

  text-align: left;

  font-weight: normal;

  padding: 1em;

}

.programData table th {

  font-weight: normal;

  padding: 1em 0;

  white-space: nowrap;

}

.programData table th span {

  padding-left: 1.6em;

  position: relative;

  display: inline-block;

}

.programData a{

  word-break: break-all;

}

.programData table th span::before {

  position: absolute;

  top: 0.15em;

  left: 0;

  content: '';

  display: block;

  width: 5px;

  left: 5px;

  box-sizing: border-box;

  border: 5px solid transparent;

  border-bottom: 5px solid #000000;

}

@media screen and (min-width: 641px) {

  .programData h2 {

    font-size: 16px;

    letter-spacing: 0.05em;

  }

  .programData table {

    font-size: 16px;

    letter-spacing: 0.05em;

  }

  .programData table th span::before {

    top: 0.25em;

  }

}





/* gallery */

.gallery {

  padding: 40px 0;

}

.gallery h2 {

  font-size: 20px;

  line-height: 1;

  letter-spacing: 0.05em;

  font-weight: bold;

  padding-top: 22px;

  background: url(../images/gallery_en.png) no-repeat center top;

  background-size: 80px auto;

  text-align: center;

}

.gallery .note {

  margin-top: 12px;

  font-size: 13px;

  line-height: 1.4;

  text-align: center;

}

.photoGallery {

  padding-top: 8px;

  display: flex;

  flex-wrap: wrap;

  justify-content: space-between;

}

.photoGallery::after{

  content: '';

  display: block;

  width: 32%;

}

.photoGallery a {

  display: block;

  width: 32%;

  margin-top: 7px;

}

@media screen and (min-width: 641px) {

  .gallery {

    padding: 60px 0;

  }

  .gallery h2 {

    font-size: 26px;

    letter-spacing: 0.05em;

    padding-top: 34px;

    background-size: 115px auto;

  }

  .gallery .note {

    margin-top: 20px;

    font-size: 14px;

  }

  .photoGallery a {

    margin-top: 15px;

  }

}





/*----------------------------------------------------

extra pattern

----------------------------------------------------*/



/* h2 */

#viewMore h2 {

  font-size: 18px;

  line-height: 1.5;

  font-weight: bold;

}

#viewMore h2.bar {

  padding-left: 12px;

  border-left: solid 4px #7a4c1f;

}

#viewMore h2.under {

  padding-bottom: 0.4em;

  border-bottom: solid 2px #7a4c1f;

}

@media screen and (min-width: 641px) {

  #viewMore h2 {

    font-size: 24px;

    letter-spacing: 0.03em;

  }

  #viewMore h2.bar {

    padding-left: 24px;

    border-left-width: 7px;

  }

}





/* div.text */

#viewMore div.text p {

  margin-top: 0.8em;

}

#viewMore div.text p:first-child {

  margin-top: 0;

}





/* column */

#viewMore .column div.text {

  margin-top: 20px;

}

@media screen and (min-width: 641px) {

  #viewMore .column {

    display: flex;

    flex-wrap: wrap;

    justify-content: space-between;

  }

  #viewMore .column.imgRight {

    flex-direction: row-reverse;

  }

  #viewMore .column .photo,

  #viewMore .column div.text {

    width: 48.5%;

  }

  #viewMore .column .photo {

    margin-top: 0;

  }

  #viewMore .column div.text {

    margin-top: 0;

  }



  /* float */

  #viewMore .column.float {

    display: block;

    overflow: hidden;

  }

  #viewMore .column.float .photo {

    float: left;

    margin: 0 3% 10px 0;

  }

  #viewMore .column.float div.text {

    width: auto;

  }

  #viewMore .column.imgRight.float .photo {

    float: right;

    margin: 0 0 10px 3%;

  }

}





/* double */

#viewMore .double p.photo:first-child {

  margin-top: 0;

}

@media screen and (min-width: 641px) {

  #viewMore .double {

    display: flex;

    flex-wrap: wrap;

    justify-content: space-between;

  }

  #viewMore .double p.photo {

    margin-top: 0;

    width: 48.5%;

  }

}





/* list */

#viewMore ul.disc li {

  list-style-type: disc;

  margin-left: 1em;

}

#viewMore ul.number li {

  list-style-type: decimal;

  margin-left: 1em;

}

#viewMore ul.point li {

  position: relative;

  padding-left: 4em;

}

#viewMore ul.point li span.num {

  display: block;

  position: absolute;

  top: 0;

  left: 0;

}





/* faq */

#viewMore .faq li {

  margin-top: 15px;

  padding-top: 15px;

  border-top: dotted 1px #7a4c1f;

}

#viewMore .faq li:first-child {

  margin-top: 0;

  padding-top: 0;

  border-top: none;

}

#viewMore .faq .faq_q,

#viewMore .faq .faq_a {

  position: relative;

}

#viewMore .faq .faq_q {

  padding-left: 4.5em;

  color: #08a7e2;

  font-weight: bold;

}

#viewMore .faq .faq_a {

  margin-left: 4.5em;

  padding-left: 2em;

  margin-top: 1em;

}

#viewMore .faq .num {

  position: absolute;

  top: 0;

  left: 0;

  display: inline;

  font-weight: bold;

  font-size: 1.6em;

  line-height: 1;

}

#viewMore .faq .faq_a .num {

  font-size: 1.4em;

}

@media screen and (min-width: 641px) {

  #viewMore .faq li {

    margin-top: 20px;

    padding-top: 20px;



  }

}





/* listTable */

.listTable {

  width: 100%;

  border: none;

  border-collapse: collapse;

  border-spacing: 0;

  empty-cells: show;

}

.listTable th,

.listTable td {

  display: block;

  vertical-align: top;

  text-align: left;

}

.listTable th {

  padding: 0.8em 0 0;

  border-top: dashed 1px #7a4c1f;

  font-weight: normal;

  white-space: nowrap;

}

.listTable td {

  padding: 0 0 0.8em;

}

.listTable tr:first-child th,

.listTable tr:first-child td {

  padding-top: 0;

  border-top: none;

}

.listTable tr:last-child th,

.listTable tr:last-child td {

  padding-bottom: 0;

}

@media screen and (min-width: 641px) {

  .listTable th,

  .listTable td {

    padding: 0.8em 0;

    border-top: dashed 1px #7a4c1f;

    display: table-cell;

  }

}





















