@charset "UTF-8";
/* 赤 */
/* 赤 */
/* 赤 */
/* 赤 */
/* グレー */
/* グレー */
br.sp {
  display: none; }

#haoto {
  /* stageData */
  /* theatre */
  /* ticket */
  /* support */
  /* staff */
  /**/ }
  #haoto section {
    margin-bottom: 100px; }
  #haoto h1 {
    font-size: 4.0rem;
    margin-bottom: 30px;
    line-height: 1.4; }
    #haoto h1 span {
      font-size: 2.8rem; }
      #haoto h1 span.subtitle {
        display: inline-block;
        font-size: 2.4rem; }
  #haoto h2 {
    font-size: 3.2rem;
    margin-bottom: 10px; }
  #haoto h3 {
    font-size: 2.4rem;
    margin-bottom: 1em;
    line-height: 1.3; }
  #haoto .note {
    margin: .5em 0; }
    #haoto .note li {
      padding-left: 1em;
      text-indent: -1em; }
  #haoto .note02 {
    margin: 30px 0; }
    #haoto .note02 li {
      padding-left: 1em;
      text-indent: -1em; }
  @media screen and (max-width: 767px) {
    #haoto h1 {
      font-size: 2.4rem;
      margin-bottom: 50px; }
      #haoto h1 span {
        font-size: 1.8rem; }
        #haoto h1 span.subtitle {
          font-size: 1.6rem; }
    #haoto h3 {
      font-size: 1.8rem;
      margin-bottom: 1.5em;
      line-height: 1.3; } }
  #haoto .catchcopy {
    font-size: 2.4rem;
    color: #888AB1; }
  #haoto .leadcopy {
    font-size: 2.0rem;
    margin-bottom: 10px; }
  #haoto .cloudfunding {
    max-width: 800px;
    padding: 0 40px;
    margin: 0 auto 40px auto; }
    #haoto .cloudfunding h3 {
      background: #C6C0B7;
      padding: 5px 0;
      text-align: center;
      color: #FFF;
      font-size: clamp(14px, 1.8vw, 1.8rem);
      position: relative;
      margin-bottom: 10px; }
      #haoto .cloudfunding h3:before {
        content: "";
        width: 0;
        height: 0;
        border-style: solid;
        border-right: 10px solid transparent;
        border-left: 10px solid transparent;
        border-top: 10px solid #C6C0B7;
        border-bottom: 0;
        position: absolute;
        top: 100%;
        left: 50%;
        transform: translateX(-50%); }
  #haoto .comment {
    max-width: 800px;
    padding: 0 40px;
    margin: 0 auto 40px auto; }
    #haoto .comment .sig {
      text-align: right; }
  #haoto .arasuji {
    padding: 40px 0;
    margin-bottom: 10px; }
    #haoto .arasuji h2 {
      padding-right: 20px;
      font-size: 2.4rem;
      border-bottom: 2px solid #000;
      font-weight: bold;
      line-height: 1; }
    #haoto .arasuji .htype04 {
      font-size: 2.0rem; }
    #haoto .arasuji section {
      margin-bottom: 0; }
  #haoto .more_arasuji {
    padding: 20px 40px;
    background: #F3F3F3;
    margin-bottom: 30px; }
    #haoto .more_arasuji h2 {
      font-size: 2.4rem;
      font-weight: bold;
      line-height: 1;
      position: relative;
      display: flex;
      justify-content: space-between;
      margin: 0; }
      #haoto .more_arasuji h2 span {
        font-size: 1.8rem;
        font-weight: normal; }
      #haoto .more_arasuji h2 div.btn {
        display: block;
        font-size: 1.6rem;
        padding: 5px 10px;
        background: #FFF; }
    #haoto .more_arasuji div.text {
      margin-top: 30px;
      display: none; }
  @media screen and (max-width: 767px) {
    #haoto .cloudfunding {
      max-width: 800px;
      padding: 0 20px;
      margin: 0 auto 20px auto; }
      #haoto .cloudfunding h3 {
        background: #C6C0B7;
        padding: 5px 0;
        text-align: center;
        color: #FFF;
        font-size: clamp(14px, 1.8vw, 1.8rem); }
    #haoto .comment {
      max-width: 800px;
      padding: 20px;
      margin: 0 auto 20px auto; }
    #haoto .arasuji {
      padding: 20px;
      margin-bottom: 0; }
    #haoto .more_arasuji {
      padding: 20px;
      background: #F3F3F3;
      margin-bottom: 20px; }
      #haoto .more_arasuji h2 {
        display: block; }
        #haoto .more_arasuji h2 div.btn {
          display: block;
          font-size: 1.6rem;
          padding: 5px 10px;
          background: #FFF;
          margin-top: 10px; }
      #haoto .more_arasuji div.text {
        margin-top: 30px;
        display: none; } }
  #haoto .stageSelect {
    display: flex;
    justify-content: space-between; }
    #haoto .stageSelect li {
      width: 49%; }
      #haoto .stageSelect li a {
        display: flex;
        background: #d4d4d4;
        background: linear-gradient(0deg, #d4d4d4 0%, #f6f6f6 100%);
        text-align: center;
        color: #000;
        padding: 15px;
        border-radius: 5px;
        position: relative;
        align-items: center;
        justify-content: center; }
        #haoto .stageSelect li a:hover {
          text-decoration: none; }
        #haoto .stageSelect li a:before {
          content: "";
          width: 25px;
          height: 25px;
          background: url("/lib/img/safari_p/sukima2023/icon_arrow.png") no-repeat 0 0/contain;
          display: inline-block;
          margin-right: 5px; }
  @media screen and (max-width: 767px) {
    #haoto .stageSelect li {
      width: 49%; }
      #haoto .stageSelect li a span {
        display: none; } }
  #haoto .stageData h2 {
    padding-right: 20px;
    font-size: 2.4rem;
    border-bottom: 2px solid #000;
    font-weight: bold;
    line-height: 1; }
    #haoto .stageData h2 span {
      font-weight: normal;
      padding: 0 0 0 1em;
      font-size: 1.8rem; }
  #haoto .stageData h3 {
    padding-right: 20px;
    font-size: 2.0rem;
    border-bottom: 2px dotted #000;
    font-weight: bold;
    line-height: 1; }
  #haoto .stageData section {
    margin-bottom: 20px; }
  #haoto .stageData .notice {
    padding: 20px;
    background: #F3F3F3; }
    #haoto .stageData .notice h3 {
      font-size: 1.8rem;
      padding-right: 0;
      border: none; }
  @media screen and (max-width: 767px) {
    #haoto .stageData {
      display: block; }
      #haoto .stageData h2 {
        padding: 0 0 20px;
        border-right: none;
        border-bottom: 2px solid #000; }
        #haoto .stageData h2 span {
          display: block;
          padding: 0; }
      #haoto .stageData .data {
        padding: 20px 0 0;
        width: 100%; } }
  #haoto .theatre {
    margin: 2rem 0; }
    #haoto .theatre .theatreAccess {
      display: flex;
      justify-content: flex-start;
      gap: 4rem;
      margin-bottom: 20px; }
      #haoto .theatre .theatreAccess dt {
        font-weight: bold;
        white-space: nowrap; }
    #haoto .theatre .map .logo {
      margin-bottom: 10px; }
    #haoto .theatre .map iframe {
      height: 450px; }
  @media screen and (max-width: 767px) {
    #haoto .theatre .theatreAccess dd li {
      margin-bottom: 10px; }
    #haoto .theatre .map .logo {
      margin-bottom: 10px; }
    #haoto .theatre .map iframe {
      height: 300px; } }
  #haoto .ticket h2 {
    padding-right: 20px;
    font-size: 2.4rem;
    border-bottom: 2px solid #000;
    font-weight: bold; }
  #haoto .ticket .data > dl dt {
    font-weight: bold;
    margin-bottom: 1em; }
  #haoto .ticket .data > dl dd {
    margin-bottom: 2em; }
  #haoto .ticket .kikaku {
    display: flex;
    flex-wrap: wrap;
    padding: 20px;
    align-items: center;
    position: relative;
    justify-content: space-between; }
    #haoto .ticket .kikaku:before {
      content: "";
      width: 100%;
      height: 1px;
      background: #BF1832;
      position: absolute;
      left: 0;
      bottom: 0; }
    #haoto .ticket .kikaku:after {
      content: "";
      width: 100%;
      height: 1px;
      background: #BF1832;
      position: absolute;
      left: 0;
      bottom: 3px; }
    #haoto .ticket .kikaku h4 {
      width: calc(100% + 40px);
      position: relative;
      text-align: center;
      margin: 0 -20px 2rem -20px; }
      #haoto .ticket .kikaku h4 span {
        display: inline-block;
        padding: 0 2rem;
        background: #FFFFFF;
        color: #BF1832;
        z-index: 2;
        position: relative; }
      #haoto .ticket .kikaku h4:before {
        content: "";
        width: 100%;
        height: 1px;
        background: #BF1832;
        position: absolute;
        left: 0;
        top: 48%;
        z-index: 0; }
      #haoto .ticket .kikaku h4:after {
        z-index: 0;
        content: "";
        width: 100%;
        height: 1px;
        background: #BF1832;
        position: absolute;
        left: 0;
        top: 48%;
        transform: translateY(-3px); }
    #haoto .ticket .kikaku .icon {
      width: 20%; }
    #haoto .ticket .kikaku .text {
      width: 75%; }
      #haoto .ticket .kikaku .text .lead {
        display: flex;
        justify-content: flex-start;
        color: #BF1832;
        font-size: 1.8rem;
        gap: 1rem; }
        #haoto .ticket .kikaku .text .lead span {
          font-size: 1.6rem;
          background: #BF1832;
          font-weight: normal;
          padding: 2px 1rem;
          color: #FFF; }
  #haoto .ticket .attention {
    padding-left: 1em;
    text-indent: -.5em; }
    #haoto .ticket .attention i {
      color: #FFAE00; }
  @media screen and (max-width: 767px) {
    #haoto .ticket .kikaku {
      display: block; }
      #haoto .ticket .kikaku .icon {
        width: 100%;
        padding: 0 30%;
        margin-bottom: 3rem; }
      #haoto .ticket .kikaku .text {
        width: 100%; }
        #haoto .ticket .kikaku .text .lead {
          display: block; }
          #haoto .ticket .kikaku .text .lead span {
            display: inline-block; } }
  #haoto .support {
    margin-bottom: 30px; }
    #haoto .support h2 {
      padding-right: 20px;
      font-size: 2.4rem;
      border-bottom: 2px solid #000;
      font-weight: bold; }
    #haoto .support ul.note02 li {
      margin-top: 30px; }
      #haoto .support ul.note02 li .title {
        color: #BF1832;
        font-weight: normal; }
  #haoto .staff {
    margin-bottom: 30px; }
    #haoto .staff h2 {
      padding-right: 20px;
      font-size: 2.4rem;
      border-bottom: 2px solid #000;
      font-weight: bold; }
  #haoto .logo {
    margin-right: 10px;
    vertical-align: middle; }
  #haoto .kinen {
    margin-top: 30px; }
  #haoto .kansen h2 {
    padding-right: 20px;
    font-size: 2.4rem;
    border-bottom: 2px solid #000;
    font-weight: bold; }
  #haoto .toiawase {
    padding: 20px;
    background: #EFEFEF;
    margin-bottom: 30px; }
    #haoto .toiawase h2 {
      font-size: 1.8rem;
      margin-bottom: 2rem; }
    #haoto .toiawase dl dt {
      float: left;
      clear: both;
      width: 5em;
      margin-bottom: 6px; }
    #haoto .toiawase dl dd {
      padding-left: 5.5em;
      margin-bottom: 6px; }
    #haoto .toiawase dl.osaka {
      margin-bottom: 4rem; }
      #haoto .toiawase dl.osaka dt {
        width: 8em; }
      #haoto .toiawase dl.osaka dd {
        padding-left: 8.5em; }
  #haoto .mark_haoto li {
    margin-bottom: 1rem;
    display: flex;
    justify-content: flex-start;
    gap: 10px;
    align-items: center; }
  @media screen and (max-width: 767px) {
    #haoto .staff {
      display: block; }
      #haoto .staff h2 {
        -ms-writing-mode: lr-tb;
        writing-mode: horizontal-tb;
        padding: 0 0 20px;
        border-right: none;
        border-bottom: 2px solid #000; }
        #haoto .staff h2 span {
          display: block; }
      #haoto .staff .data {
        padding: 20px 0 0;
        width: 100%; } }
  #haoto .teikei {
    position: relative;
    padding: 2em 0 0 0;
    margin-bottom: 100px; }
    #haoto .teikei:before {
      content: "";
      width: 5em;
      height: 2px;
      background: #000;
      position: absolute;
      top: 0;
      left: 0; }
    #haoto .teikei img.icon {
      vertical-align: middle;
      margin: 0 3px 0 0;
      width: 1.5em; }
    #haoto .teikei .mark {
      display: flex;
      align-items: flex-end; }
      #haoto .teikei .mark li {
        text-align: center;
        padding: 0 4.5em 0 1.5rem; }
  @media screen and (max-width: 767px) {
    #haoto .teikei .mark {
      display: block;
      width: 100%;
      align-items: flex-end; }
      #haoto .teikei .mark li {
        width: 100%;
        text-align: center;
        margin-bottom: 1em;
        padding: 0 1em; }
        #haoto .teikei .mark li img {
          width: 50%; } }
