@charset "UTF-8";
/* common
@import "01_setting/**";
================================================ */
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, a, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, menu, nav, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent; }

html {
  font-size: 62.5%;
  word-break: break-all; }

body {
  -webkit-text-size-adjust: 100%; }

article, aside, details, figcaption, figure,
main, footer, header, menu, nav, section {
  display: block; }

h1, h2, h3, h4, h5, h6 {
  word-break: break-word;
  line-break: strict;
  overflow-wrap: break-word;
  word-wrap: break-word;
  font-weight: inherit; }

ul:not([class]),
ol:not([class]) {
  padding-left: 1.25em; }

ul[class],
ol[class] {
  list-style: none; }

span {
  font-weight: inherit; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

a {
  color: inherit; }
  @media all and (min-width: 768px) {
    a:hover {
      text-decoration: none; } }

a[class] {
  text-decoration: none; }

ins {
  background-color: #ff9;
  text-decoration: none; }

mark {
  background-color: #ff9;
  font-weight: bold; }

del {
  text-decoration: line-through; }

abbr[title], dfn[title] {
  border-bottom: 1px dotted;
  cursor: help; }

address {
  font-style: normal; }

table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  border-spacing: 0; }

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #eee;
  margin: 1em 0;
  padding: 0; }

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom; }

/* form
================================================== */
input[type="text"], input[type="email"], input[type="tel"], textarea, button, select, option {
  display: block;
  width: 100%;
  max-width: 100%;
  font-family: inherit;
  outline: none;
  border: 1px solid;
  border-radius: 0;
  background: none; }
  @media all and (max-width: 767px) {
    input[type="text"], input[type="email"], input[type="tel"], textarea, button, select, option {
      font-size: 1.6rem; } }

input[type="text"], input[type="email"], input[type="tel"], textarea, button {
  appearance: none;
  outline: none; }

input[type="radio"], input[type="checkbox"] {
  margin: 0;
  padding: 0;
  vertical-align: middle; }

textarea {
  resize: vertical; }

button {
  cursor: pointer; }

/* 02_base

================================================ */
html {
  overflow: auto; }

body {
  overflow: hidden;
  min-width: 320px;
  font-family: sans-serif;
  color: #3C3737;
  background: #fff;
  font-size: 1.4rem;
  line-height: 1.85;
  font-weight: 400; }
  @media all and (min-width: 768px) {
    body {
      min-width: auto;
      font-size: 1.8rem;
      line-height: 1.75; } }

.l-wrapper {
  position: relative; }

.l-container {
  position: relative; }

/* utility
================================================ */
/* pc <--> sp
-------------------------------------- */
.u-media-query {
  display: none;
  font-family: 'sp'; }
  @media all and (min-width: 768px) {
    .u-media-query {
      font-family: 'tb'; } }
  @media all and (min-width: 1150px) {
    .u-media-query {
      font-family: 'pc'; } }

@media all and (max-width: 767px) {
  .u-view-pc {
    display: none !important; } }

@media all and (min-width: 768px) {
  .u-view-sp {
    display: none !important; } }

/* text
-------------------------------------- */
.u-uppercase {
  text-transform: uppercase; }

/* link
-------------------------------------- */
a.u-alpha {
  display: block;
  text-decoration: none; }
  @media all and (min-width: 768px) {
    a.u-alpha {
      transition: all 0.3s ease; }
      a.u-alpha:hover {
        opacity: .7; } }

/* link
-------------------------------------- */
a.u-btn {
  position: relative;
  transition: all 0.3s ease; }
  a.u-btn:hover {
    top: 1px; }

/* layout
-------------------------------------- */
.u-inner {
  box-sizing: border-box; }
  @media all and (max-width: 767px) {
    .u-inner {
      padding-left: 5vw;
      padding-right: 5vw; } }
  @media all and (min-width: 768px) {
    .u-inner {
      width: 100%;
      max-width: 90vw;
      margin: auto; } }
  @media all and (min-width: 1150px) {
    .u-inner {
      width: 100%;
      max-width: 1000px;
      margin: auto; } }

/* component
@import "04_component/**";
================================================ */
/* 04_component
================================================ */
.c-head01 {
  position: relative;
  margin: auto;
  font-family: source-han-serif-japanese, serif;
  box-sizing: border-box; }
  .c-head01 span {
    line-height: 1.2;
    box-sizing: border-box; }
  @media all and (max-width: 767px) {
    .c-head01 {
      margin-bottom: 2rem;
      padding-right: 20px;
      padding-bottom: 20px;
      text-align: center;
      font-size: 5.5vw;
      font-weight: 700;
      line-height: 1.2;
      background: url(../img/head_bg.png) right bottom no-repeat;
      background-size: auto 40px; } }
  @media all and (min-width: 768px) {
    .c-head01 {
      padding-left: 170px;
      margin-bottom: 2rem;
      display: table;
      font-size: 3rem;
      font-weight: 400;
      text-align: center; }
      .c-head01 span {
        display: flex;
        align-items: flex-end;
        justify-content: center;
        padding-bottom: 40px;
        padding-right: calc(5rem + 170px);
        padding-left: 5rem;
        min-height: 94px;
        white-space: nowrap;
        background: url(../img/head_bg.png) right bottom no-repeat; } }

.detailTable td {
  line-height: 1.6; }
  .detailTable td ul {
    margin-bottom: 1em; }
    .detailTable td ul:last-of-type {
      margin-bottom: 0; }
  .detailTable td li {
    margin-bottom: 0.3em; }
@media all and (max-width: 767px) {
  .detailTable {
    width: 100%;
    font-size: 1.5rem;
    border-bottom: 1px solid #ccc; }
    .detailTable td,
    .detailTable th {
      display: block;
      padding: 10px;
      box-sizing: border-box;
      border: 1px solid #ccc;
      border-width: 1px 1px 0; }
    .detailTable th {
      background: #efefef; }
    .detailTable p + p {
      margin-top: 0.5em; } }
@media all and (min-width: 768px) {
  .detailTable {
    border-collapse: collapse; }
    .detailTable td, .detailTable th {
      padding: 10px;
      font-size: 1.6rem;
      box-sizing: border-box;
      border: 1px solid #ccc;
      vertical-align: middle; }
    .detailTable th {
      background: #efefef; } }

/* common
@import "03_layout/**";
================================================ */
/* 

================================================ */
.l-footer {
  padding-top: 5px;
  padding-bottom: 20px; }
  .l-footer__inner {
    margin-top: 30px;
    padding-top: 10px;
    border-top: 1px solid #ccc; }
  .l-footer .head {
    font-size: 5vw;
    font-weight: 700; }
  .l-footer .footer-box a {
    position: relative;
    text-decoration: none;
    color: #3366cc;
    border-bottom: 1px solid #3366cc;
    transition: all 0.3s ease; }
    .l-footer .footer-box a:hover {
      color: #ae031b;
      border-bottom: 1px solid #ae031b; }
  .l-footer dl {
    display: flex;
    line-height: 2.2; }
    .l-footer dl dt {
      width: 200px; }
  .l-footer .footerLink ul, .l-footer .footerLink li {
    padding: 0;
    margin: 0;
    list-style-type: none; }
  .l-footer .footerLink li {
    line-height: 2; }
    .l-footer .footerLink li a {
      position: relative;
      padding-left: 1em;
      text-decoration: none;
      color: #3C3737;
      border-bottom: 1px solid transparent;
      transition: all 0.3s ease; }
      .l-footer .footerLink li a:hover {
        border-bottom: 1px solid #3C3737; }
      .l-footer .footerLink li a::before {
        position: absolute;
        content: "";
        width: 0.8em;
        height: 0.8em;
        background: #3C3737;
        top: calc(50% - 0.4em);
        left: 0; }
  .l-footer .footerLink p {
    margin-top: 1em; }
    .l-footer .footerLink p a {
      transition: all 0.3s ease; }
      .l-footer .footerLink p a:hover {
        opacity: 0.6; }
  .l-footer .footerLink {
    display: flex; }
    .l-footer .footerLink ul {
      width: 70%; }
  .l-footer .copyright {
    margin-top: 30px;
    font-size: 10px;
    text-align: right; }
  @media all and (max-width: 767px) {
    .l-footer__inner > div:nth-child(1) {
      margin-bottom: 2em;
      display: flex;
      flex-wrap: wrap;
      justify-content: center; }
      .l-footer__inner > div:nth-child(1) .head {
        width: 100%;
        text-align: center; }
    .l-footer__inner > div:nth-child(2) {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      white-space: nowrap; }
      .l-footer__inner > div:nth-child(2) ul {
        width: 200px; } }
  @media all and (min-width: 768px) {
    .l-footer {
      padding-top: 40px;
      padding-bottom: 70px; }
      .l-footer .head {
        font-size: 2.4rem; }
      .l-footer__inner {
        margin-top: 70px;
        padding-top: 20px;
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        font-size: 1.6rem; }
        .l-footer__inner > div:nth-child(1) {
          margin-bottom: 2em;
          width: 100%; }
      .l-footer .footer-box,
      .l-footer dl {
        display: flex;
        line-height: 2.2; }
        .l-footer .footer-box dt,
        .l-footer dl dt {
          width: 210px; }
      .l-footer .footer-box div + div {
        margin-left: 100px; }
      .l-footer .footerLink {
        box-sizing: border-box; }
        .l-footer .footerLink ul {
          margin: 0;
          width: 200px;
          height: 30px;
          box-sizing: border-box; }
      .l-footer .copyright {
        margin-top: 70px;
        width: 50%;
        font-size: 1.2rem;
        text-align: right; } }
  @media all and (min-width: 1150px) {
    .l-footer__inner {
      flex-wrap: wrap;
      justify-content: start; }
      .l-footer__inner > div:nth-child(1) {
        width: calc(100% - 180px); }
      .l-footer__inner > div:nth-child(2) {
        width: 180px;
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-end; }
    .l-footer .footerLink {
      flex-wrap: wrap; }
      .l-footer .footerLink ul, .l-footer .footerLink p {
        margin: 0;
        width: 100%;
        height: 30px;
        box-sizing: border-box; }
    .l-footer .copyright {
      margin-top: 0;
      width: 100%; } }

/* 
<header class="l-header">
		<h1><span>特攻隊ミュージカル　</span>流れる雲よ  Tokyo 2021</h1><!-- 源ノ明朝 JP -->
		<h2>「今、日本はいい国ですか？」</h2><!-- 源ノ明朝 JP -->
</header>
			writing-mode: vertical-rl;
================================================ */
.catchcopy {
  position: relative;
  padding: 10px;
  margin: auto;
  font-size: 3.6rem;
  font-family: source-han-serif-japanese, serif;
  font-weight: 700;
  text-align: center;
  color: #000;
  letter-spacing: 0.05em;
  background: url(../img/catch_bg.png) center center no-repeat; }
  .catchcopy span {
    font-size: 3rem; }
  @media all and (max-width: 767px) {
    .catchcopy {
      padding: 3vw 0;
      font-size: 7vw;
      line-height: 1.1; }
      .catchcopy span {
        font-size: 5vw; } }
  @media all and (min-width: 768px) {
    .catchcopy {
      max-width: 1200px; }
      .catchcopy::before {
        position: absolute;
        content: "";
        top: 0;
        left: 0;
        bottom: 0;
        width: 100px;
        background-image: linear-gradient(90deg, white, rgba(255, 255, 255, 0)); }
      .catchcopy::after {
        position: absolute;
        content: "";
        top: 0;
        right: 0;
        bottom: 0;
        width: 100px;
        background-image: linear-gradient(90deg, rgba(255, 255, 255, 0), white); } }

.l-header {
  text-align: center;
  color: #fff;
  background: #000; }
  .l-header h1 {
    font-family: source-han-serif-japanese, serif;
    font-weight: 700; }
    .l-header h1 .txt01 {
      font-weight: 400; }
  .l-header h2 {
    font-family: source-han-serif-japanese, serif;
    font-weight: 400; }
  @media all and (max-width: 767px) {
    .l-header h1 {
      padding-top: 2vw;
      padding-bottom: 5px;
      font-size: 5vw; }
      .l-header h1 .txt01 {
        font-size: 4vw;
        display: block;
        line-height: 1; }
      .l-header h1 .txt02 {
        font-size: 5vw; }
    .l-header h2 {
      margin: 6vw auto;
      font-size: 5vw; } }
  @media all and (min-width: 768px) {
    .l-header h1 {
      padding-top: 1vw;
      padding-bottom: 2vw;
      font-size: 3.5vw; }
      .l-header h1 .txt01 {
        font-size: 2.5vw; }
      .l-header h1 .txt02 {
        font-size: 3vw; }
    .l-header h2 {
      margin: 2vw auto;
      font-size: 3.2rem;
      letter-spacing: 0.05em; } }
  @media all and (min-width: 1150px) {
    .l-header h1 {
      padding-top: 5px;
      padding-bottom: 10px;
      font-size: 3.5rem; }
      .l-header h1 .txt01 {
        font-size: 2.7rem; }
      .l-header h1 .txt02 {
        font-size: 3rem; }
    .l-header h2 {
      margin: 25px auto;
      font-size: 3.4rem; } }

#home .l-header {
  background: url(../img/mv.jpg) bottom center no-repeat; }
  @media all and (max-width: 767px) {
    #home .l-header {
      background-size: 100%;
      height: 97.75vw;
      background-size: auto 600px;
      height: 600px; } }
  @media all and (min-width: 768px) {
    #home .l-header {
      background-size: auto 97.75vw;
      height: 97.75vw; } }
  @media all and (min-width: 1150px) {
    #home .l-header {
      background-size: 1200px auto;
      height: calc(100vh - 80px);
      min-height: 1000px; } }

/* helper
@import "05_helper/**";
================================================ */
/* page
@import "06_page/**";
================================================ */
/* 

================================================ */
.contact {
  padding-top: 3em;
  padding-bottom: 3em; }
  .contact h2 {
    margin-bottom: 1em;
    font-size: 2rem;
    font-weight: 700;
    text-align: center; }
  @media all and (min-width: 768px) {
    .contact__inner {
      margin: auto;
      width: 800px; } }
  @media all and (min-width: 1150px) {
    .contact__inner {
      margin: auto;
      width: 850px; } }

.thanks {
  display: table;
  margin: auto; }
  .thanks p {
    width: 100%;
    line-height: 2; }
    .thanks p + p {
      margin-top: 2em;
      color: #c00; }

::placeholder {
  color: #ccc; }

::-ms-input-placeholder {
  color: #ccc; }

:-ms-input-placeholder {
  color: #ccc; }

form#mail_form * {
  margin: 0;
  padding: 0; }

form#mail_form {
  width: 960px;
  margin: 50px auto;
  font-size: 16px;
  line-height: 1.8; }

form#mail_form dl {
  width: 90%;
  margin: 0 auto;
  overflow: hidden; }

form#mail_form dl dt {
  clear: both;
  width: 30%;
  float: left;
  border-top: 1px solid #eee;
  padding: 30px 0;
  text-align: right;
  overflow: hidden; }

form#mail_form dl dd {
  width: 65%;
  float: right;
  border-top: 1px solid #eee;
  padding: 15px 0 20px 5%; }

form#mail_form dl dd div {
  display: flex;
  align-items: center; }

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: 85%;
  color: #3377ff; }

/* -- for JavaScript ここから -------------------------------------------------------------------------------- */
form#mail_form dl dt span.required,
form#mail_form dl dt span.optional {
  display: inline-block;
  float: left;
  color: #ffffff;
  font-size: 12px;
  padding: 2px 10px;
  border-radius: 0px; }

form#mail_form dl dt span.required {
  background: #c40018;
  border: 1px solid #c40018; }

form#mail_form dl dt span.optional {
  background: #999;
  border: 1px solid #999; }

form#mail_form dl dd span.error_blank,
form#mail_form dl dd span.error_format,
form#mail_form dl dd span.error_match {
  display: block;
  color: #ff0000;
  margin-top: 3px; }

span.loading {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  border-top: 5px solid rgba(255, 255, 255, 0.2);
  border-right: 5px solid rgba(255, 255, 255, 0.2);
  border-bottom: 5px solid rgba(255, 255, 255, 0.2);
  border-left: 5px solid #ffffff;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-animation: load-circle 1.0s linear infinite;
  animation: load-circle 1.0s linear infinite;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -30px;
  margin-left: -30px; }

@-webkit-keyframes load-circle {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg); } }
@keyframes load-circle {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg); } }
/* -- for JavaScript ここまで -------------------------------------------------------------------------------- */
form#mail_form input[type="text"],
form#mail_form input[type="email"],
form#mail_form input[type="tel"] {
  max-width: 90%;
  padding: 8px 2%;
  border: 1px solid #cccccc;
  border-radius: 0px;
  background: #fafafa;
  -webkit-appearance: none;
  font-size: 100%;
  font-family: inherit;
  margin-top: 7px; }

form#mail_form input[type="text"]:focus,
form#mail_form input[type="email"]:focus,
form#mail_form input[type="tel"]:focus,
form#mail_form textarea:focus {
  box-shadow: 0px 0px 5px #55ccff;
  border: 1px solid #55ccff;
  background: #ffffff; }

form#mail_form dd div + div {
  margin-top: 10px; }

form#mail_form ul {
  display: flex;
  flex-wrap: wrap; }

form#mail_form ul li {
  padding-top: 13px; }

form#mail_form ul.checkbox li {
  padding-top: 13px;
  width: 100%; }

@media (min-width: 600px) {
  form#mail_form ul li {
    width: 200px; } }
@media (max-width: 599px) {
  form#mail_form ul {
    flex-wrap: wrap; }

  form#mail_form ul li {
    padding-right: 30px;
    white-space: nowrap; } }
form#mail_form ul li input[type="radio"],
form#mail_form ul li input[type="checkbox"] {
  position: relative;
  top: -7px;
  margin-right: 10px;
  transform: scale(1.5); }

form#mail_form ul li:first-child input[type="radio"],
form#mail_form ul li:first-child input[type="checkbox"] {
  margin-top: 0px; }

form#mail_form select {
  font-size: 100%;
  font-family: inherit;
  margin-top: 10px; }

form#mail_form textarea {
  display: block;
  width: 90%;
  max-width: 90%;
  height: 200px;
  padding: 7px 2%;
  resize: vertical;
  border: 1px solid #cccccc;
  border-radius: 0px;
  background: #fafafa;
  -webkit-appearance: none;
  font-size: 100%;
  font-family: inherit; }

form#mail_form ul {
  list-style-type: none; }

form#mail_form ul li label:hover {
  cursor: pointer; }

form#mail_form input[type=text],
form#mail_form input#mail_address,
form#mail_form input#mail_address_confirm {
  width: 100%; }

form#mail_form input[type=text].size100 {
  width: 150px; }

form#mail_form dd .mdl {
  display: inline-block;
  vertical-align: bottom; }

form#mail_form dd .mdl.text {
  padding-bottom: 4px;
  line-height: 1; }

form#mail_form input#tel,
form#mail_form input#work {
  width: 60%; }

form#mail_form input#postal {
  width: 30%; }

form#mail_form input#postal + a {
  position: relative;
  display: block;
  padding: 4px 15px;
  border: 1px solid #999;
  border-radius: 0px;
  font-size: 0.9em;
  background: #999;
  color: #ffffff;
  text-decoration: none;
  transition: all 0.3s ease; }

form#mail_form input#postal + a:hover {
  cursor: pointer;
  background: #ccc;
  border: 1px solid #ccc; }

form#mail_form input#address {
  width: 90%; }

form#mail_form p#form_submit {
  width: 90%;
  margin: 0 auto;
  padding: 15px 0;
  border-top: 1px solid #eee; }

form#mail_form input[type="submit"] {
  padding: 20px 50px 20px 60px;
  border: 1px solid #666;
  border-radius: 0px;
  background: #666;
  font-size: 24px;
  line-height: 1;
  letter-spacing: 10px;
  color: #ffffff;
  font-family: inherit;
  transition: all 0.3s ease; }

form#mail_form input[type="submit"]:hover {
  cursor: pointer;
  opacity: 0.6; }

form#mail_form input#form_submit_button {
  margin-left: 35%; }

input[type="submit"] {
  padding: 1em 30px 1em 35px;
  border: 1px solid #c40018;
  border-radius: 0px;
  background: #c40018;
  font-size: 18px;
  line-height: 1;
  letter-spacing: 5px;
  color: #ffffff;
  font-family: inherit;
  -webkit-appearance: none; }

input[type="submit"]:hover {
  cursor: pointer;
  background: #ffb3a6;
  border: 1px solid #ffb3a6; }

input[type="button"] {
  padding: 1em 30px 1em 35px;
  border: 1px solid #999;
  border-radius: 0px;
  background: #999;
  font-size: 18px;
  line-height: 1;
  letter-spacing: 5px;
  color: #ffffff;
  font-family: inherit;
  -webkit-appearance: none; }

input[type="button"]:hover {
  cursor: pointer;
  background: #ffb3a6;
  border: 1px solid #ffb3a6; }

/* -- responsive ----------------------------------------------------------------------------------------------------------------- */
/* 1000pixel start */
@media screen and (max-width: 1000px) {
  form#mail_form {
    width: 95%;
    font-size: 100%; }

  form#mail_form dl {
    overflow: visible; }

  form#mail_form dl dt {
    width: auto;
    float: none;
    text-align: left;
    padding: 15px 0 5px;
    font-weight: bold; }

  form#mail_form dl dd {
    width: auto;
    float: none;
    border-top: none;
    padding: 0px 0 20px 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;
    margin-bottom: 2em; }

  /* -- for JavaScript ここまで -------------------------------------------------------------------------------- */
  form#mail_form input[type="text"],
  form#mail_form input[type="email"],
  form#mail_form input[type="tel"] {
    margin-top: 0px; }

  form#mail_form input#postal + a {
    padding: 6px 15px 5px; }

  form#mail_form input#form_submit_button {
    margin-left: 0; }

  form#mail_form select {
    font-size: 16px;
    margin-top: 0; }

  form#mail_form input#phone,
  form#mail_form input#schedule {
    width: 50%; } }
/* 1000pixel end */
/* 
Noto Sans JP Medium：500
Noto Sans JP Bold：700
Noto Sans JP Black：900

源ノ明朝
Source Han Serif Regular
font-family: source-han-serif-japanese, serif;
font-weight: 400;

源ノ明朝
Source Han Serif Bold
font-family: source-han-serif-japanese, serif;
font-weight: 700;

================================================ */
/* 
<div class="catch">
	<div class="catch__inner u-inner">
		<p>昭和二十年、夏。<br>鹿児島の特攻基地から、多くの若者たちが飛び立ち、太平洋に散りました。<br>自らの命で、祖国と、愛する人々を守るために。<br><br>若者たちは未来の日本に何を託したのか。<br>その熱い想いを受け止めてください。</p>
	</div>
</div>
================================================ */
.catch {
  font-family: source-han-serif-japanese, serif;
  font-weight: 400;
  line-height: 2; }
  @media all and (max-width: 767px) {
    .catch {
      padding-top: 10vw;
      padding-bottom: 10vw;
      font-size: 4vw; } }
  @media all and (min-width: 768px) {
    .catch__inner {
      height: 324px;
      display: flex;
      justify-content: center;
      align-items: center; } }

/* 

================================================ */
.movie {
  text-align: center;
  background: #000; }
  .movie iframe {
    vertical-align: middle; }
  @media all and (max-width: 767px) {
    .movie iframe {
      width: 100%;
      height: 56vw; } }

/* 
<div class="ticket">
	<div class="ticket__inner u-inner">
		<div class="ticket-date"><span class="txt01">2021年</span>9月10日<span class="txt02">(金)</span>・11日<span class="txt02">(土)</span>
		　　<span class="txt01">会場</span><span class="txt02"> 大田文化の森</span></div>
		<div class="ticket-data">
			出演／演劇集団アトリエッジ<br>主催／一般社団法人おおた助っ人 『流れる雲よ』東京実行委員会
		</div>
		<p class="btn01"><a href="#" target="_blank">チケットのご購入はこちら</a></p>
	</div>
</div>
================================================ */
.ticket {
  padding-top: 5rem;
  padding-bottom: 7rem;
  line-height: 2; }
  .ticket-date {
    font-family: source-han-serif-japanese, serif;
    font-weight: 700;
    text-align: center; }
  .ticket-data {
    margin-top: 2rem;
    font-family: source-han-serif-japanese, serif;
    font-weight: 400;
    display: flex;
    justify-content: center; }
  @media all and (max-width: 767px) {
    .ticket-date {
      font-size: 7vw;
      line-height: 1.2; }
      .ticket-date .txt01 {
        font-size: 4vw; }
      .ticket-date .txt02 {
        font-size: 5.5vw; }
      .ticket-date .block {
        display: block; }
        + .ticket-date .block {
          margin-top: 2vw; } }
  @media all and (min-width: 768px) {
    .ticket-date {
      font-size: 3.6rem; }
      .ticket-date .txt01 {
        font-size: 2.4rem; }
      .ticket-date .txt02 {
        font-size: 3rem; } }

/* 
<p class="btn01"><a href="#" target="_blank">チケットのご購入はこちら</a></p>
================================================ */
.btn01 {
  margin-top: 3.5rem; }
  .btn01 a {
    position: relative;
    margin: auto;
    display: table;
    padding: 2rem 4rem;
    text-align: center;
    text-decoration: none;
    color: #fff;
    background: #ae031b;
    transition: all 0.3s ease; }
    .btn01 a:hover {
      background: #7f0314; }
    .btn01 a::before {
      position: absolute;
      content: "";
      top: 0.9rem;
      left: 0.9rem;
      right: 0.9rem;
      bottom: 0.9rem;
      border: 1px solid #fff; }
    @media all and (max-width: 767px) {
      .btn01 a {
        font-size: 5vw; } }
    @media all and (min-width: 768px) {
      .btn01 a {
        font-size: 2.4rem; } }
    .btn01 a.nolink {
      pointer-events: none; }

/* 
<section class="summary">
	<div class="summary__inner u-inner">
		<h1 class="c-head01">あらすじ</h1>
		<p>時は、昭和二十年、夏。<br>
		日本の戦況は日ましに悪化し、各地で一億玉砕が叫ばれるなかで最後の抵抗戦が行われていた。</p>
	</div>
</section>
================================================ */
.summary {
  padding-top: 5rem;
  padding-bottom: 10rem;
  color: #fff;
  background: #000 url(../img/summary_bg.jpg) bottom right no-repeat; }
  .summary p {
    line-height: 1.875; }
    .summary p + p {
      margin-top: 2.8rem; }
  @media all and (max-width: 767px) {
    .summary {
      background-size: 500px auto;
      padding-bottom: 220px; } }
  @media all and (min-width: 768px) {
    .summary {
      background-size: 80vw auto; }
      .summary p {
        font-size: 1.6rem; } }
  @media all and (min-width: 1150px) {
    .summary {
      background-size: 1200px auto; }
      .summary p {
        font-size: 1.6rem; } }

/* 

================================================ */
.cast {
  padding-top: 5rem;
  padding-bottom: 7rem; }
  .cast h2 {
    font-size: 4.5vw;
    text-align: center; }
  .cast .castList {
    line-height: 1.4; }
  .cast .txtLink {
    text-align: right; }
  @media all and (max-width: 767px) {
    .cast .castList {
      margin-top: 5vw;
      display: flex;
      flex-wrap: wrap; }
      .cast .castList li {
        width: 48%;
        margin-bottom: 5vw;
        text-align: center; }
        .cast .castList li:nth-child(2n - 1) {
          margin-right: 2%; }
        .cast .castList li:nth-child(2n) {
          margin-left: 2%; }
        .cast .castList li.no-pic {
          padding-top: 10px; }
      .cast .castList .txt01 {
        margin-top: 1vw;
        font-size: 3.3vw; }
      .cast .castList .txt02 {
        font-size: 4vw; } }
  @media all and (min-width: 768px) {
    .cast h2 {
      font-size: 1.8rem;
      text-align: center; }
    .cast .castList {
      margin-top: 25px;
      display: flex;
      flex-wrap: wrap; }
      .cast .castList li {
        width: 27%;
        margin-bottom: 35px;
        text-align: center; }
        .cast .castList li:nth-child(3n - 1) {
          margin-right: 9.5%;
          margin-left: 9.5%; }
      .cast .castList .txt01 {
        margin-top: 7px;
        margin-bottom: 4px;
        font-size: 1.4rem; }
      .cast .castList .txt02 {
        font-size: 1.8rem; }
    .cast .txtLink {
      text-align: right; } }
  @media all and (min-width: 1150px) {
    .cast .castList li.no-pic {
      margin-top: 5px;
      display: flex;
      align-items: center; }
      .cast .castList li.no-pic div + div {
        margin-left: 10px;
        padding-bottom: 3px; } }

/* 
txtLink
================================================ */
.txtLink {
  text-align: right; }
  .txtLink a {
    position: relative;
    display: inline-block;
    padding-left: 15px;
    text-decoration: none;
    color: #3366cc;
    border-bottom: 1px solid transparent;
    transition: all 0.3s ease; }
    .txtLink a:hover {
      border-bottom: 1px solid #3366cc; }
    .txtLink a::before {
      position: absolute;
      display: block;
      content: "";
      width: 0;
      height: 0;
      top: 7px;
      left: 0;
      border: 7px solid transparent;
      border-left: 10px solid #3366cc; }
  @media all and (min-width: 768px) {
    .txtLink a {
      padding-left: 15px; }
      .txtLink a::before {
        top: 7px;
        border: 9px solid transparent;
        border-left: 12px solid #3366cc; } }

/* 
txtLink2
================================================ */
.txtLink2 li {
  position: relative;
  padding-left: 15px; }
  .txtLink2 li a {
    text-decoration: none;
    color: #3366cc;
    border-bottom: 1px solid transparent;
    transition: all 0.3s ease; }
  .txtLink2 li a:hover {
    border-bottom: 1px solid #3366cc; }
  .txtLink2 li::before {
    position: absolute;
    display: block;
    content: "";
    width: 0;
    height: 0;
    top: 7px;
    left: 0;
    border: 7px solid transparent;
    border-left: 10px solid #666; }
@media all and (min-width: 768px) {
  .txtLink2 li {
    padding-left: 15px; }
    .txtLink2 li::before {
      top: 6px;
      border: 8px solid transparent;
      border-left: 10px solid #666; } }

/* 

================================================ */
.staff {
  padding-bottom: 6rem; }
  .staffList ul {
    padding: 0;
    margin: 0; }
  .staffList li {
    padding: 0;
    margin: 0 0 1rem 0;
    list-style-type: none; }
  @media all and (min-width: 768px) {
    .staffList {
      display: flex;
      font-size: 1.6rem;
      width: 100%; }
      .staffList ul {
        width: 55%; }
      .staffList ul:nth-child(2) {
        width: 45%; } }

/* 

================================================ */
.about {
  padding-top: 5rem;
  color: #fff;
  background: #000 url(../img/about_bg.jpg) bottom left no-repeat; }
  .about h2 {
    margin-bottom: 2.2rem; }
  .about p {
    line-height: 1.875; }
    .about p + p {
      margin-top: 2.8rem; }
  @media all and (max-width: 767px) {
    .about {
      background-size: 500px auto;
      padding-bottom: 220px; } }
  @media all and (min-width: 768px) {
    .about {
      padding-bottom: 11vw;
      background-size: 88vw auto; }
      .about .c-head01 span {
        padding-right: calc(2.5rem + 170px);
        padding-left: 2.5rem; }
      .about-box {
        margin-left: calc(50% - 180px); }
      .about h2 {
        font-size: 2.4rem; }
      .about p {
        font-size: 1.6rem; } }
  @media all and (min-width: 1150px) {
    .about {
      padding-bottom: 15rem;
      background-size: 1200px auto; }
      .about-box {
        margin-left: calc(50% - 190px); } }

/* 

================================================ */
.detail {
  padding-top: 12vw;
  padding-bottom: 6vw; }
  .detail h2 {
    margin-bottom: 1em;
    font-size: 2rem;
    font-weight: 700;
    text-align: center; }
  .detail .notice {
    margin: 1em 0; }
    .detail .notice li {
      position: relative;
      padding-left: 1em; }
      .detail .notice li::before {
        position: absolute;
        content: "※";
        top: 0;
        left: 0; }
  .detail .detailTable iframe {
    margin-top: 1em;
    -webkit-filter: grayscale(50%);
    -moz-filter: grayscale(50%);
    -ms-filter: grayscale(50%);
    -o-filter: grayscale(50%);
    filter: grayscale(50%); }
  @media all and (max-width: 767px) {
    .detail .detailTable iframe {
      height: 350px; }
    .detail .notice li {
      position: relative;
      padding-left: 1em; } }
  @media all and (min-width: 768px) {
    .detail {
      padding-top: 6rem;
      padding-bottom: 3rem; }
      .detail__inner {
        margin: auto;
        width: 800px; }
      .detail .detailTable th {
        width: 100px; }
      .detail .detailTable td {
        width: 90%; }
      .detail .notice li {
        position: relative;
        font-size: 1.6rem;
        padding-left: 1em; } }
  @media all and (min-width: 1150px) {
    .detail__inner {
      margin: auto;
      width: 850px; } }

/* 

================================================ */
.sale {
  padding-top: 6vw;
  padding-bottom: 12vw; }
  .sale h2 {
    margin-bottom: 1em;
    font-size: 2rem;
    font-weight: 700;
    text-align: center; }
  .sale .sales {
    padding: 10px;
    text-align: center;
    color: #fff;
    background: #c00; }
  .sale .saleTable {
    border-collapse: collapse; }
    .sale .saleTable td, .sale .saleTable th {
      padding: 10px;
      box-sizing: border-box;
      border: 1px solid #ccc;
      vertical-align: middle;
      white-space: nowrap; }
    .sale .saleTable th {
      background: #efefef;
      font-size: 4vw; }
    .sale .saleTable td {
      /*			padding-bottom: 6px; */
      width: 40%;
      font-size: 4vw; }
    .sale .saleTable td span {
      margin-top: 0.5em;
      display: block;
      text-align: center;
      line-height: 1; }
    .sale .saleTable a {
      position: relative;
      margin: auto;
      display: block;
      width: 100%;
      padding: 10px 0;
      text-align: center;
      text-decoration: none;
      color: #fff;
      background: #ae031b;
      transition: all 0.3s ease; }
      .sale .saleTable a::before {
        position: absolute;
        content: "";
        top: 5px;
        left: 5px;
        right: 5px;
        bottom: 5px;
        border: 1px solid #fff; }
    .sale .saleTable .sup a {
      color: #fff;
      background: #e20b29; }
    .sale .saleTable td.out {
      padding-bottom: 15px; }
      .sale .saleTable td.out a {
        padding-top: 0;
        padding-bottom: 0;
        color: #333;
        background: #fff; }
  .sale .sale-note {
    margin-bottom: 1em;
    padding: 1.3em 1em 1em;
    background: #f5f5f5; }
    .sale .sale-note dt {
      margin-bottom: 0.5em;
      font-weight: 600;
      text-align: center;
      font-size: 1.1em; }
    .sale .sale-note dd {
      display: flex;
      justify-content: center;
      flex-wrap: wrap; }
    .sale .sale-note ul {
      padding: 0;
      margin: 0;
      font-size: 0.95em; }
    .sale .sale-note li {
      position: relative;
      list-style-type: none;
      padding-left: 1em;
      margin-bottom: 0.5em;
      line-height: 1.4; }
      .sale .sale-note li::before {
        position: absolute;
        content: "・";
        top: 0;
        left: 0; }
      .sale .sale-note li.red {
        color: #c00; }
      .sale .sale-note li span {
        margin: 0 0.2em;
        color: #c00; }
  @media all and (max-width: 767px) {
    .sale .saleTable th,
    .sale .saleTable td {
      display: block;
      width: 100%;
      box-sizing: border-box;
    }
    .sale .saleTable th {
      text-align: left;
      font-size: 1.4rem; }
      .sale .saleTable th span {
        display: block;
        margin-top: 8px;
        font-size: 0.9em; }
    .sale .saleTable td {
      font-size: 1.4rem; }
    }
  @media all and (min-width: 768px) {
    .sale {
      padding-top: 3rem;
      padding-bottom: 6.5rem; }
      .sale__inner {
        margin: auto;
        width: 800px; }
      .sale .saleTable th, .sale .saleTable td {
        padding: 20px 15px;
        font-size: 1.6rem; }
      .sale .saleTable td {
        width: 40%;
        padding-bottom: 6px;
        font-size: 1.5rem; }
      .sale .sale-note dt {
        font-size: 0.9em; }
      .sale .sale-note ul {
        font-size: 0.8em; } }
  @media all and (min-width: 1150px) {
    .sale__inner {
      margin: auto;
      width: 850px; } }

/* 

================================================ */
.message {
  padding-top: 12vw;
  padding-bottom: 12vw;
  color: #fff;
  background: #000; }
  .message-box {
    display: flex;
    flex-wrap: wrap; }
  .message .from {
    margin-top: 1rem;
    display: flex;
    justify-content: flex-end; }
  @media all and (max-width: 767px) {
    .message-box .text {
      width: 100%;
      order: 2; }
    .message-box .text2 {
      width: 100%;
      order: 3; }
    .message-box .pic {
      width: 100%;
      order: 1; }
      .message-box .pic img {
        display: block;
        max-width: 50vw;
        margin: 2rem auto 1rem; }
    .message h2 {
      font-size: 5vw;
      line-height: 1.5; } }
  @media all and (min-width: 768px) {
    .message {
      padding-top: 6rem;
      padding-bottom: 6.5rem; }
      .message .c-head01 {
        padding-left: 120px; }
        .message .c-head01 br {
          display: block !important; }
        .message .c-head01 span {
          padding-right: 140px;
          padding-left: 10px;
          width: 600px; }
      .message-box .text {
        width: calc(100% - 230px);
        padding-right: 5%;
        box-sizing: border-box; }
      .message-box .pic {
        width: 230px; }
      .message-box .text2 {
        width: 100%; }
      .message h2 {
        margin-bottom: 2rem;
        font-size: 2.4rem; }
      .message p {
        font-size: 1.6rem; } }
  @media all and (min-width: 1150px) {
    .message .c-head01 {
      padding-left: 150px; }
      .message .c-head01 span {
        padding-right: calc(1rem + 150px);
        padding-left: 1rem;
        width: 750px; }
      .message .c-head01 br {
        display: none !important; } }

/* 

================================================ */
.sponsorship {
  padding-top: 6rem;
  padding-bottom: 6.5rem; }
  .sponsorship .txtLink {
    text-align: left; }
  .sponsorship .text p {
    margin-bottom: 1em; }
  .sponsorship .sponsorTable {
    border-collapse: collapse; }
    .sponsorship .sponsorTable td, .sponsorship .sponsorTable th {
      padding: 10px;
      box-sizing: border-box;
      border: 1px solid #ccc;
      vertical-align: middle;
      white-space: nowrap; }
    .sponsorship .sponsorTable th {
      background: #efefef;
      font-size: 4vw; }
    .sponsorship .sponsorTable td {
      width: 40%;
      font-size: 4vw; }
    .sponsorship .sponsorTable dl {
      margin-top: 0.5em;
      padding-top: 0.5em;
      display: flex;
      border-top: 1px dashed #ccc; }
      .sponsorship .sponsorTable dl dt {
        margin-right: 2em; }
      .sponsorship .sponsorTable dl dd {
        line-height: 1.5; }
        .sponsorship .sponsorTable dl dd span {
          font-size: 0.9em; }
  @media all and (max-width: 767px) {
    .sponsorship .sponsorTable {
      margin: 2em auto 0;
      border-bottom: 1px solid #ccc; }
      .sponsorship .sponsorTable td, .sponsorship .sponsorTable th {
        display: block;
        width: 100%;
        font-size: 1.5rem;
        border-width: 1px 1px 0; }
      .sponsorship .sponsorTable dl {
        flex-wrap: wrap; }
      .sponsorship .sponsorTable .txtLink {
        padding-left: 1em; }
      .sponsorship .sponsorTable .txtLink li {
        margin-top: 5px; }
      .sponsorship .sponsorTable .txtLink a {
        line-height: 1.2; }
      .sponsorship .sponsorTable .txtLink span {
        padding-left: 15px; }
      .sponsorship .sponsorTable .txtLink a::before {
        top: 2px; } }
  @media all and (min-width: 768px) {
    .sponsorship {
      padding-top: 3rem;
      padding-bottom: 6.5rem; }
      .sponsorship__inner {
        margin: auto; }
      .sponsorship .text p {
        font-size: 1.6rem; }
      .sponsorship .sponsorTable {
        width: 900px;
        margin: 2em auto 0;
        max-width: 100%; }
        .sponsorship .sponsorTable th, .sponsorship .sponsorTable td {
          padding: 20px 15px;
          font-size: 1.6rem; }
        .sponsorship .sponsorTable td {
          width: 70%; }
        .sponsorship .sponsorTable .txtLink li + li {
          margin-top: 10px; }
        .sponsorship .sponsorTable .txtLink a {
          padding-left: 0;
          line-height: 1.2;
          font-size: 1.6rem; }
        .sponsorship .sponsorTable .txtLink span {
          font-size: 1.5rem; }
        .sponsorship .sponsorTable .txtLink a::before {
          top: 2px;
          left: -16px;
          border: 8px solid transparent;
          border-left: 11px solid #3366cc; } }
  @media all and (min-width: 1150px) {
    .sponsorship__inner {
      margin: auto; } }

/* 

================================================ */
.covid19 {
  padding-top: 4em;
  padding-bottom: 4em;
  background: #f1f1f1; }
  .covid19 h1 {
    margin-bottom: 1.7em;
    font-size: 4.5vw;
    font-weight: 700;
    text-align: center; }
  .covid19 h2 {
    margin-bottom: 3px;
    margin-top: 1.7em;
    font-size: 4vw;
    font-weight: 700; }
  .covid19 ul {
    padding: 0;
    margin: 0; }
    .covid19 ul li {
      position: relative;
      padding: 0 0 0 1em;
      margin: 0;
      list-style-type: none; }
      .covid19 ul li::before {
        position: absolute;
        content: "・";
        top: 0;
        left: 0; }
  @media all and (min-width: 768px) {
    .covid19 {
      font-size: 1.6rem; }
      .covid19 h1 {
        font-size: 2rem; }
      .covid19 h2 {
        font-size: 1.8rem; } }
  @media all and (min-width: 1150px) {
    .covid19__inner {
      width: 870px; } }

.js-fade,
.js-fadeIn {
  opacity: 0; }

.fade {
  -webkit-animation-name: fade;
  animation-name: fade;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-delay: 1s;
  animation-delay: 1s; }

.fade2 {
  -webkit-animation-name: fade;
  animation-name: fade;
  -webkit-animation-duration: 0.5s;
  animation-duration: 0.5s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-delay: 0.5s;
  animation-delay: 0.5s; }

@-webkit-keyframes fade {
  from {
    position: relative;
    opacity: 0; }
  to {
    position: relative;
    opacity: 1; } }
@keyframes fade {
  from {
    position: relative;
    opacity: 0; }
  to {
    position: relative;
    opacity: 1; } }
.fadeIn {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }

.fadeIn.delay {
  -webkit-animation-delay: 0.5s;
  animation-delay: 0.5s; }

@-webkit-keyframes fadeIn {
  from {
    position: relative;
    opacity: 0;
    top: 50px; }
  to {
    position: relative;
    opacity: 1;
    top: 0; } }
@keyframes fadeIn {
  from {
    position: relative;
    opacity: 0;
    top: 50px; }
  to {
    position: relative;
    opacity: 1;
    top: 0; } }
/* 

================================================ */
.law {
  padding-top: 3em;
  padding-bottom: 3em; }
  .law h2 {
    margin-bottom: 1em;
    font-size: 2rem;
    font-weight: 700;
    text-align: center; }
  .law .detailTable td {
    font-size: 4vw; }
  @media all and (min-width: 768px) {
    .law__inner {
      margin: auto;
      width: 800px; }
    .law .detailTable th, .law .detailTable td {
      padding: 20px 15px;
      font-size: 1.6rem; }
    .law .detailTable th {
      width: 250px; }
    .law .detailTable td {
      width: calc(100% - 250px); } }
  @media all and (min-width: 1150px) {
    .law__inner {
      margin: auto;
      width: 850px; } }

/* 

================================================ */
.policy {
  padding-top: 3em;
  padding-bottom: 3em; }
  .policy h2 {
    margin-bottom: 1em;
    font-size: 2rem;
    font-weight: 700;
    text-align: center; }
  .policy ul {
    margin-bottom: 3em; }
  @media all and (min-width: 768px) {
    .policy__inner {
      margin: auto;
      width: 800px; } }
  @media all and (min-width: 1150px) {
    .policy__inner {
      margin: auto;
      width: 850px; } }
