body {
  background: url("../images/bg.jpg") center top repeat;
  width: 100%; }

#header h1 {
  display: block;
  position: relative;
  font-size: 0em; }
  @media (max-width: 767px) {
    #header h1 {
      background: url("../images/logo_smp.png") no-repeat;
      width: 100%;
      height: 0;
      padding-bottom: 102.44140625%;
      background-size: contain;
      margin: -102.5390625% auto 0; } }
  @media (min-width: 768px) {
    #header h1 {
      background: url("../images/logo_pc.png") no-repeat;
      width: 64.1666666667%;
      height: 0;
      padding-bottom: 29.2708333333%;
      background-size: contain;
      margin: -29.2708333333% auto 0; } }
#header h2 {
  text-align: center;
  font-size: 1.2rem; }
  #header h2 span {
    font-size: 1.75em; }
  @media (min-width: 768px) {
    #header h2 {
      font-size: 2.8rem; }
      #header h2 span {
        font-size: 1.75em; } }

.tver {
  margin: 1em auto;
  font-size: 0em; }
  @media (max-width: 767px) {
    .tver {
      background: url("../images/smp_tver.jpg") no-repeat;
      width: 100%;
      height: 0;
      padding-bottom: 56.2184024267%;
      background-size: contain; } }
  @media (min-width: 768px) and (max-width: 939px) {
    .tver {
      background: url("../images/pc_tver.jpg") no-repeat;
      width: 100%;
      height: 0;
      padding-bottom: 22.7902023429%;
      background-size: contain; } }
  @media (min-width: 940px) {
    .tver {
      background: url("../images/pc_tver.jpg") no-repeat;
      width: 939px;
      height: 214px; } }

#main {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-style: normal;
  color: #000; }
  @media (max-width: 767px) {
    #main {
      width: 100%;
      padding: 5.2083333333%;
      font-size: 0.9rem;
      line-height: 175%; } }
  @media (min-width: 768px) {
    #main {
      width: 100%;
      padding: 2.6041666667%;
      font-size: 1.4rem;
      line-height: 175%; } }

#txn {
  text-align: center; }
  #txn dt span {
    background-color: #000;
    margin-bottom: 0.5em;
    padding: 0.25em 1em;
    border-radius: 20px;
    font-size: 0.7em;
    color: #fff; }
  @media (min-width: 768px) {
    #txn dd br {
      display: none; } }

#movie {
  position: relative;
  width: 94%;
  padding-top: calc(9 / 16 * 94%);
  margin: 1rem auto;
  overflow: hidden; }
  @media (min-width: 767px) {
    #movie {
      width: 80%;
      padding-top: calc(9 / 16 * 80%); } }

#movie .tvo-video {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  right: 0; }

#about {
  margin: 0 auto; }
  @media (max-width: 767px) {
    #about {
      width: 100%;
      padding: 5.2083333333%; }
      #about h1 {
        font-size: 1.2rem; }
      #about h2 {
        font-size: 0.9rem; } }
  @media (min-width: 768px) {
    #about {
      width: 90%;
      padding: 3.90625%; }
      #about h1 {
        font-size: 2.4rem; }
      #about h2 {
        font-size: 1.6rem; } }

#cast {
  margin: 0 auto; }
  @media (max-width: 767px) {
    #cast {
      width: 100%;
      padding: 5.2083333333%; }
      #cast h1 {
        font-size: 1.2rem; }
      #cast h2 {
        font-size: 0.9rem; } }
  @media (min-width: 768px) {
    #cast {
      width: 90%;
      padding: 3.90625%; }
      #cast h1 {
        font-size: 2.4rem; }
      #cast h2 {
        font-size: 1.6rem; } }

#cont01 {
  margin: 0 auto; }
  @media (max-width: 767px) {
    #cont01 {
      width: 100%;
      padding: 5.2083333333%; }
      #cont01 h1 {
        font-size: 1.2rem; }
      #cont01 h2 {
        font-size: 0.9rem; } }
  @media (min-width: 768px) {
    #cont01 {
      width: 90%;
      padding: 3.90625%; }
      #cont01 h1 {
        font-size: 2.4rem; }
      #cont01 h2 {
        font-size: 1.6rem; } }

#cont02 {
  margin: 0 auto; }
  @media (max-width: 767px) {
    #cont02 {
      width: 100%;
      padding: 5.2083333333%; }
      #cont02 h1 {
        font-size: 1.2rem; }
      #cont02 h2 {
        font-size: 0.9rem; } }
  @media (min-width: 768px) {
    #cont02 {
      width: 90%;
      padding: 3.90625%; }
      #cont02 h1 {
        font-size: 2.4rem; }
      #cont02 h2 {
        font-size: 1.6rem; } }

#cont03 {
  margin: 0 auto; }
  @media (max-width: 767px) {
    #cont03 {
      width: 100%;
      padding: 5.2083333333%; }
      #cont03 h1 {
        font-size: 1.2rem; }
      #cont03 h2 {
        font-size: 0.9rem; } }
  @media (min-width: 768px) {
    #cont03 {
      width: 90%;
      padding: 3.90625%; }
      #cont03 h1 {
        font-size: 2.4rem; }
      #cont03 h2 {
        font-size: 1.6rem; } }

#archives {
  margin: 0 auto; }
  @media (max-width: 767px) {
    #archives {
      width: 100%;
      padding: 5.2083333333%; }
      #archives h1 {
        font-size: 1.2rem; }
      #archives h2 {
        font-size: 0.9rem; } }
  @media (min-width: 768px) {
    #archives {
      width: 90%;
      padding: 3.90625%; }
      #archives h1 {
        font-size: 2.4rem; }
      #archives h2 {
        font-size: 1.6rem; } }

#about h1 {
  text-align: center;
  margin-bottom: 0.5em;
  padding-bottom: 0.5em;
  border-bottom: 4px dotted #000; }
#about figure {
  font-size: 0.7em;
  text-align: right; }

#cast h1 {
  text-align: center;
  margin-bottom: 0.5em;
  padding-bottom: 0.5em;
  border-bottom: 4px dotted #000; }
#cast h2 {
  margin: 0.5em auto;
  text-align: center; }
  #cast h2 span {
    background-color: #000;
    padding: 0.25em 0.5em;
    color: #fff; }
#cast .mc {
  text-align: center;
  grid-gap: 5px; }
  @media (max-width: 768px) {
    #cast .mc {
      display: grid;
      grid-template-columns: repeat(2, 1fr); }
      #cast .mc li:nth-child(1) {
        width: 50%;
        margin: 0 auto;
        grid-column: 1 / 3; } }
  @media (min-width: 768px) {
    #cast .mc {
      display: grid;
      grid-template-columns: 1fr 30% 30%;
      grid-gap: 30px;
      align-items: flex-end; } }
#cast .report li {
  margin: 0 auto;
  text-align: center; }

#cont01 {
  margin-bottom: 1em;
  box-shadow: inset 0 5px 25px 0 rgba(0, 0, 0, 0.1); }
  #cont01 h1 {
    text-align: center;
    padding: 1em 0.5em;
    line-height: 135%;
    border-top: 4px solid #000;
    border-bottom: 1px solid #000; }
  #cont01 h2 {
    background-color: #000;
    margin: 0.5em 0;
    padding: 0.25em 0.5em;
    float: right;
    color: #fff; }
  #cont01 .main_photo {
    background-color: #fff;
    padding: 2px;
    border: 1px solid #ccc;
    margin: 0.5em auto;
    clear: right; }
  #cont01 p {
    padding: 0 0.5em; }
  #cont01 ul {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    margin-top: 0.5em; }
    #cont01 ul li {
      background-color: #fff;
      padding: 2px;
      border: 1px solid #ccc; }

#cont02 {
  margin-bottom: 1em;
  box-shadow: inset 0 5px 25px 0 rgba(0, 0, 0, 0.1); }
  #cont02 h1 {
    text-align: center;
    padding: 1em 0.5em;
    line-height: 135%;
    border-top: 4px solid #000;
    border-bottom: 1px solid #000; }
  #cont02 h2 {
    background-color: #000;
    margin: 0.5em 0;
    padding: 0.25em 0.5em;
    float: right;
    color: #fff; }
  #cont02 .main_photo {
    background-color: #fff;
    padding: 2px;
    border: 1px solid #ccc;
    margin: 0.5em auto;
    clear: right; }
  #cont02 p {
    padding: 0 0.5em; }
  #cont02 ul {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    margin-top: 0.5em; }
    #cont02 ul li {
      background-color: #fff;
      padding: 2px;
      border: 1px solid #ccc; }

#cont03 {
  margin-bottom: 1em;
  box-shadow: inset 0 5px 25px 0 rgba(0, 0, 0, 0.1); }
  #cont03 h1 {
    text-align: center;
    padding: 1em 0.5em;
    line-height: 135%;
    border-top: 4px solid #000;
    border-bottom: 1px solid #000; }
  #cont03 h2 {
    background-color: #000;
    margin: 0.5em 0;
    padding: 0.25em 0.5em;
    float: right;
    color: #fff; }
  #cont03 .main_photo {
    background-color: #fff;
    padding: 2px;
    border: 1px solid #ccc;
    margin: 0.5em auto;
    clear: right; }
  #cont03 p {
    padding: 0 0.5em; }
  #cont03 ul {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    margin-top: 0.5em; }
    #cont03 ul li {
      background-color: #fff;
      padding: 2px;
      border: 1px solid #ccc; }

#archives dl {
  text-align: center; }
#archives dt {
  margin-bottom: 0.5em;
  padding-bottom: 0.5em;
  border-bottom: 4px dotted #000; }
#archives a {
  color: #000;
  text-decoration: none; }
