@charset "UTF-8";

  body {
    font-family: "Segoe UI", Verdana, "游ゴシック", YuGothic, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  }
  h2 {
    margin-top: 50px;
    margin-bottom: 50px;
  }
  h3 {
    margin-bottom: 30px;
  }
  h4 {
    margin-bottom: 30px;
  }
  p {
    line-height: 2.2;
  }
/*
  .wrapper {
    width:1200px;
  }
*/
  .title_h2 {
    background-color:#1095c633;
    border-bottom:2px solid #1095c6;
    padding:20px 10px;
  }
  .title_h3 {
    background-color:#eee;
    border-radius:3px;
    padding: 20px 10px;
  }
  .l-header {
    background: #fff;
    z-index: 99;
    border-bottom:3px solid #1e73be;
/*
    position: absolute;
*/
    top:0;
    left: 0;
    width: 100%;
    display: block;
    box-sizing:border-box;
  }
  .l-header__lower {
    display: flex;
    aline-items:center;
    justify-content: space-between;

    box-sizing:border-box;
    position: relative;
    width: 93.75%;
    max-width: 1200px;
    margin-right: auto;
    margin-left: auto;
  }
  .c_logo {
    justify-content: center;
    width:350px;
    display: flex;
    margin-bottom: 0;
  }
  .c_logo a {
    text-align: center;
    word-wrap:break-word;
    display: flex;
    align-items:center;
    overflow: hidden;
    line-height: 1;
  }
  .c_logo img {
    max-width: 100%;
    height:auto;
  }
  .l-main {
    display: block;
    box-sizing:border-box;
  }

  /* ハンバーガーメニュー非表示 */
  #mbl_toggle {
    display: none;
  }
  #nav-content {
    display: none;
  }



  .contents_wrapper {
    display: flex;
    justify-content: space-between;
    overflow: hidden;
    position: relative;
    width:93.75%;
    max-width: 1200px;
    margin-right: auto;
    margin-left: auto;
  }
  .l-primary {
/*
    width:800px;
*/
    width:1200px;
    width:900px;
    display: flex;
    flex-wrap: wrap;
/*
    justify-content:space-between;
*/
    order:2;
    margin-top:50px;
    gap: 27px;
  }
  .l-secondary {
    width:250px;
    order:1;
    margin-top:50px;
/*
display:none;
*/
  }

  .l-primary.list article {
    width:calc(calc(100% - 60px) / 3);
    margin-top:20px;
    border:1px solid #96e1ff;
    background-color:#e4f6ff;
  }

/* 施設リスト */
  .l-primary.list {
  }
  .l-primary.detail article {
/*    margin-top:50px;*/
    margin-bottom:50px;
    flex-grow: 1;
  }

  .list .explanation {
    margin-bottom: 40px;
    padding:0 30px;
    display: flex;
  }
  .list .explanation p {
    margin-top: 0;
    display:none;
  }
  .list .explanation .inst_img {
    display:block;
    margin:auto;
    max-width: 100%;
  }
  .list h2 {
    text-align:center;
    margin-top: 0px;
    margin-bottom: 20px;
    background-color: #96e1ff;
    padding:20px 0;
  }
  .list a {
    display: block;
    margin:10px auto 30px;
    width: 9em;
    border:1px solid #0087ff;
    border-radius:5px;
    padding:10px;
    text-align: center;
    background-color: #0087ff;
    text-decoration:none;
    color: #fff;
  }

  /* 施設コメント */
  .detail h2 {
    margin-top: 0px;
  }
  .explanation {
    margin-bottom: 70px;
    display: flex;
  }
  .explanation p {
    margin-top: 0;
    flex-grow: 1;
  }
  .explanation .inst_img {
    margin-left: 40px;
  }

  /* 施設詳細 */
/*
  .detail {
    margin-bottom: 70px;
  }
  .s_detail {
    font-size: 1rem;
    line-height: 2.2;
  }
  .s_detail dt {
    float: left;
    font-weight: 700;
  }
  .s_detail dd {
    padding-left: 10em;
    margin-left: 0;
    margin-bottom: 1em;
  }
*/
  .detail_pic {
    display: flex;
    justify-content: space-evenly;
    margin-bottom: 70px;
  }

  .detail {
    margin-bottom: 70px;
    flex-grow: 1;
  }
  .s_detail {
    font-size: 1rem;
    line-height: 2.2;
    border-collapse: collapse;
    width:100%;
  }
  .s_detail th, .s_detail td {
    width:250px;
    padding:10px;
    border: 1px solid #ccc;
    text-align: left;
  }
  .s_detail td {
    width:auto;
  }

  /* 予約書類 */
  .apply {
    margin-bottom: 70px;
  }
  .s_apply {
    line-height: 2.2;
  }

  /* 予約状況 */
  .booking {
    margin-bottom: 70px;
  }
  .booking_mark {
    display: flex;
    padding-left:0;
    list-style-type: none;
  }
  .booking_mark li {
    margin-left:0;
    margin-right: 40px;
  }
  .booking_mark li:last-child {
    margin-right: 0;
  }
  .booking_month {
    margin-bottom: 0;
    text-align: center;
  }
  .calendar_cation {
    display: none;
  }
  /* ページャー */
  .pager {
    display: flex;
    margin-bottom: 10px;
  }
  .pager div {
    width:50%;
  }
  .pager div:last-child a {
    text-align: right;
    display: inherit;
  }
  /* 予約状況カレンダー */
  .booking_table {
    border-collapse: collapse;
    border: 1px #ccc solid;
    font-size:0.8rem;
    line-height: 120%;
    width:100%;
  }
  .booking_table .head th {
    background-color: #eee;
  }
  .booking_table th,
  .booking_table td {
    padding: 4px;

    padding-left: 0;
    padding-right: 0;

    background-color: #fff;
    border-collapse: collapse;
    border: 1px #ccc solid;
    min-width: 40px;
    text-align: center;
    vertical-align: middle;
  }
  .booking_table .sun td {
    background-color: #fcd0d0;
  }
  .booking_table .sat td {
    background-color: #bbe0ff;
  }


  /* 施設一覧（パソコン用） */
  .toggle {
    display: none;
  }
  .label {
    display: block;
    background-color:#1e73be;
    color:#fff;
    padding: 1em 10px;
    cursor: pointer;
    margin-bottom: 1px;
    line-height: 20px;
  }

  .label {
    display:none;
  }
  .label::before{   /*タイトル横の矢印*/
    content:"";
    width: 6px;
    height: 6px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    -webkit-transform: rotate(45deg);
    position: absolute;
    top:calc( 50% - 3px );
    right: 20px;
    transform: rotate(135deg);
  }
  .label,
  .municipality_list {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transform: translateZ(0);
    transition: all 0.5s;
  }
  .municipality_list {    /*本文*/
    height: 0;
    margin:0;
    padding:0 1em 0 2em;
    line-height: 150%;
    overflow: hidden;
  }
  .toggle:checked + .label + .municipality_list { /*開閉時*/
    height: auto;
    padding-top:10px;
    padding-bottom:20px;
    transition: all .3s ease-in-out;
  }
  .toggle:checked + .label::before {
    transform: rotate(-45deg) !important;
  }
  .municipality_list dd ul {
    height: 100%;
  }
  .municipality_list {
    height:auto;
  }


  .l-footer {
    position: relative;
    display: block;
    box-sizing: border-box;
  }
  .footer-section {
    display: flex;
    flex-wrap: wrap;
    background: #fff;
    padding-top: 20px;
    margin-top: 70px;
    border-top:3px solid #1e73be;
  }
  .footer-section__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    box-sizing: border-box;
    position: relative;
    width: 93.75%;
    max-width: 1200px;
    margin-right: auto;
    margin-left: auto;
  }
  .info__text {
    font-size: 14px;
    line-height: 2.2;
  }
  .info__text p {
    margin: 0;
    font-weight:700;
  }
  .info__text ul {
    list-style: none;
    padding-left: 0;
    margin: 0;
  }

  .copyright {
    background: #1e73be;
    height: 60px;
    border-top: 1px solid #ddd;
    font-size: 12px;
    line-height: 60px;
    text-align: center;
    margin-bottom: 0;
  }
  .copyright small {
    font-size: 100%;
    color: #fff;
  }


  /* 管理 */
  .admin_nav {
    display: block;
    background-color:  #1e73be;
  }
  .admin_nav ul {
    overflow: hidden;
    position: relative;
    width: 93.75%;
    max-width: 1200px;
    display: flex;
    margin: 0 auto;
    padding: 0;
    list-style: none;
    border-bottom: 3px solid #1e73be;
  }
  .admin_nav a {
    padding: 10px;
    background-color: #1e73be;
    color:#fff;
    text-decoration: none;
    display: block;
  }
  .admin_nav a:hover {
    background-color: #4f94d2;
  }

  .admin .l-primary {
    width:100%;
  }
  .admin .l-primary article {
    width:100%;
  }
  .input_inst, .input_year, .input_month {
    padding: 5px;
  }
  .input_btn, .input_reg, .login_btn {
    padding: 5px;
    min-width:100px;
  }
  .input_reg, .login_btn {
    display: block;
    margin: 20px auto;
  }
  .login_btn {
    min-width:200px;
  }
  .login_area {
    width:20em;
    margin: auto auto 2em;
  }
  .login_area dt {
    float: left;
    vertical-align: middle;
  }
  .login_area dd {
    padding-left: 7em;
    margin-bottom: 1em;
    margin-left: 0;
  }
  .login_area dd:after {
    content: "";
    display:block;
    clear:both;
  }
  .input_login {
    padding: 4px;
  }

  .admin_h3 {
    margin-top: 70px;
  }

  .inst_table {
    width:100%;
    border-collapse: collapse;
    border: 1px #ccc solid;
    border-left: none;
    border-right: none;
  }
  .inst_table th, .inst_table td {
    padding: 8px 4px;
    border: 1px #ccc solid;
    border-left: none;
    border-right: none;
  }
  .inst_table th {
    width:280px;
    text-align: left;
  }
  .inp_admin, .inp_admin_s, .inp_admin_f {
    font-size: 100%;
    line-height: 150%;
    padding: 4px;
  }
  .inp_admin, .inp_admin_f {
    width: 100%;
  }
  .inp_admin_s {
    min-width: 200px;
  }
  .inp_admin_f {
    padding: 4px 0;
  }
  .sel_admin {
    font-size: 100%;
    line-height: 150%;
    min-width: 200px;
    padding: 4px;
  }
  .required, .any {
    font-size: 0.8rem;
    font-weight:500;
    padding: 4px;
    background-color: #666;
    margin-right: 10px;
    color:#fff;
  }
  .required {
    background-color: #f66;
  }
  .file_link {
    font-size: 0.8rem;
  }
  .del_label {
    font-size: 0.8rem;
    margin-left: 10px;
  }
  .caution {
    font-size: 0.8rem;
    font-weight: 700;
    color: #f66;
  }

  /* 予約状況 */
  .admin .booking_table td:nth-child(1), 
  .admin .booking_table td:nth-child(2), 
  .admin .booking_table td:nth-child(3), 
  .admin .booking_table td:nth-child(4), 
  .admin .booking_table td:nth-child(5) {
    width:20px;
  }

  /* 並び替え */
  .sort_list {
    border-collapse: collapse;
    border: 1px #ccc solid;
    width: 100%;
  }
  .sort_list th, .sort_list td {
    padding: 4px;
    border: 1px #ccc solid;
  }
  .sort_list th {
    background-color: #eee;
  }
  .sort_list th, .sort_list td:nth-child(1), .sort_list td:nth-child(4), .sort_list td:nth-child(5), .sort_list td:nth-child(6) {
    text-align: center;
  }
  .sort_list tr:hover td {
    background-color: #fdd;
  }

  @media (max-width:1200px) {
    /* ハンバーガーメニュー */
    #mbl_toggle {
      display: block;
  /*
      height:35px;
      position: fixed;
  */
      position: relative;
      top: 35px;
      right: 25px;
      padding: 9px;
      height: 16px;
      cursor: pointer;
      z-index: 1000;
    }
    #mbl_toggle-box {
      position: relative;
  /*
      width: 36px;
      height: 32px;
  */
      width: 18px;
      height: 16px;
    }
    #mbl_toggle-box > span {
      width: 100%;
      height: 1px;
      left: 0;
      display: block;
      background: rgba(30,115,190, 1);
      position: absolute;
      transition: transform .6s ease-in-out, top .5s ease, bottom .5s ease;
    }
    #mbl_toggle-box > span:nth-child(1) {
      top: 0;
    }
    #mbl_toggle-box > span:nth-child(2) {
      top: 50%;
      transform: translatey(-50%);
    }
    #mbl_toggle-box > span:nth-child(3) {
      bottom: 0;
    }
    #main {
      position: relative;
      z-index: 990;
    }
    #nav-content {
      display: block;
      z-index: 900;
      overflow: auto;
      width: 100%;
      height: 100%;
      background: rgba(30,115,190, 1);
      color: #fff;
      position: fixed;
      top: 0;
      right: 0;
      text-align: center;
      text-align: left;
      transform: translateX(100%);
      transition: transform 1s cubic-bezier(0.215, 0.61, 0.355, 1);
    }
    #nav-content ul {
      list-style: none;
      margin-top: 35px;
    }
    #nav-content a {
      display: block;
      color: #fff;
      text-decoration: none;
      padding: 10px 0;
      transition: opacity .6s ease;
    }
    #nav-content a:hover {
      opacity: 0.6;
    }
    .is-open {
      overflow: hidden;
    }
    .is-open #mbl_toggle-box > span {
      background: #fff;
    }
    .is-open #mbl_toggle-box > span:nth-child(1) {
      top: 50%;
      transform: rotate(45deg) translatey(-50%);
    }
    .is-open #mbl_toggle-box > span:nth-child(2) {
      width: 0;
    }
    .is-open #mbl_toggle-box > span:nth-child(3) {
      top: 50%;
      transform: rotate(-45deg) translatey(-50%);
    }
    .is-open #nav-content {
      z-index: 999;
      transform: translateX(0);
    }


    .l-header__lower {
      max-width:800px;
    }
    .contents_wrapper {
      max-width:800px;
    }

    .l-primary {
      gap:26px;
    }

    .l-secondary {
      display: none;
    }
    .footer-section__inner {
      max-width:800px;
    }

    .l-primary.list article {
      width: calc(calc(100% - 30px) / 2);
    }
    .test {
      height: 100px;
      display: flex;
      background-color: #96e1ff;
      margin-bottom: 20px;
      justify-content: center;
      align-items: center;
      padding:0 10px;
    }
    .test h2 {
      margin-top: 0px;
      margin-bottom: 0;
      background-color:none;
      padding:0;
    }
  }

  @media (min-width:1025px) and (max-width:1200px) {
  }

  @media (min-width:769px) and (max-width:1024px) {
  }

  @media (min-width:521px) and (max-width:768px) {
  }

  @media (max-width:520px) {
  }

  @media (max-width:768px) {
    .l-header__lower {
      width: 90vw;
    }
    .contents_wrapper {
      max-width: 90vw;
    }
    .booking_mark {
      width: 90vw;
    }
    .booking_month {
      width: 90vw;
      max-width: 90vw;
    }
    .mobile_wrap {
      width: 90vw;
      overflow: scroll;
    }
    .footer-section__inner {
      max-width:90vw;
    }

    .detail_pic {
      flex-wrap: wrap;
      justify-content: center;
      gap:20px;
    }

    .calendar_cation {
      display: block;
      font-weight: 700;
      font-size: 0.8em;
    }

    .booking_table {
      border-collapse:separate;
      border-spacing:0;
      border: none;
    }
    .booking_table th, .booking_table td {
      white-space:nowrap;
      border-left: none;
    }
    .booking_table td {
      border-top: none;
    }
    .booking_table th:nth-child(1), 
    .booking_table td:nth-child(1) {
      position: sticky;
      left: 0;
      z-index: 1;
      border-left: 1px solid #ccc;
    }
  }

  @media (max-width:640px) {
    h3 {
      border-left: 3px solid rgba(30,115,190, 1);
      padding-left: 5px;
    }
    .explanation {
      flex-direction:column-reverse;
      flex-wrap: wrap;
    }
    .explanation .inst_img {
      margin: auto;
      max-width: 100%;
      max-height:100%;
    }
    .s_detail dd {
      padding-left: 8em;
    }
    .booking_mark {
      display: list-item;
    }
    .footer-section__inner {
      justify-content: center;
      text-align: center;
    }
  }

  @media (max-width:480px) {
    .c_logo {
      width: 50%;
      margin-top: 5px
    }
    #mbl_toggle {
      right:0;
      top: 2px;
    }

    .l-primary.list article {
      width: 100%;
    }


    .s_detail {
      border:none;
    }
    .s_detail th, .s_detail td {
      display:block;
      width:calc(100% - 20px);
      border:none;
    }
    .s_detail th {
      font-weight:700;
      border-bottom:1px dashed #ddd;
    }
    .s_detail td {
      border-bottom:1px solid #ddd;
      padding-top: 0;
    }
    .s_apply {
      padding-left: 25px;
    }
  }