@charset "UTF-8";
/* 変数 */
:root {
  /* color */
  --lblue: #282c45; /* 全体 */
  --bunka: #4CB353; /* 松原市文会館 */
  --yume: #157B19; /* ゆめニティプラザ */
  --hurusatopia: #6DC284; /* ふるさとぴあプラザ */

  --main-menu-h: 80px;
  --sub-menu-h: 52px;
  --header-h: 80px;
  --header-border-h: 8px;
}

@media (width <= 1200px) {
  :root {
    --header-h: 65px;
  }
}

@media (width <= 839px) {
  :root {
    --header-border-h: 3px;
  }
}

/* 色、ボタン、文字、段落、汎用パーツ */
.lblue {
  color: var(--lblue);
}

.wrapper {
  font-size: 1.6em;
  line-height: normal;
  color: #333;
  font-family: "Noto Serif JP", sans-serif;
  box-sizing: border-box;

  * {
    box-sizing: border-box;
  }
}

body.small {
  header,
  main,
  footer {
    font-size: 0.875em;
  }
}
body.large {
  header,
  main,
  footer {
    font-size: 1.125em;
  }
}

a {
  text-decoration: none;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
  color: inherit;

  &[href^="tel:"] {
    @media (839px < width) {
      color: var(--lblue) !important;
      text-decoration: none;
    }
  }

  @media (hover:hover) {
    transition: 0.2s ease;

    &:hover {
      text-decoration: none;
      opacity: 0.7;
    }
  }

  #header &,
  #footer & {
    text-decoration: none;
    color: inherit;

    @media (hover:hover) {
      &:hover {
        text-decoration: underline;
      }
    }
  }
}

h1,
h2,
h3,
h4,
h5 {
  margin: 0 auto;
  line-height: normal;
  font-weight: bold;
}

ul,
ol,
li {
  list-style: none;
}

ul,
ol,
li,
dl,
dt,
dd,
figure {
  margin: 0;
  padding: 0;
}

section:after,
ul:after,
ol:after,
dl:after {
  content: "";
  clear: both;
  display: block;
}

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

h2,
.h2 {
  font-size: 1.875em;
  font-weight: bold;
  position: relative;
  margin: 0 auto 30px;

  .sub {
    font-size: 0.5333333em;
    display: block;
  }

  &:before,
  &:after {
    @media (width <= 839px) {
      top: 17px;
      width: 30px;
    }
  }

  &:before {
    @media (width <= 839px) {
      left: -45px;
    }
  }

  &:after {
    @media (width <= 839px) {
      right: -45px;
    }
  }

  &.line2:before,
  &.line2:after {
    @media (width <= 839px) {
      top: 30px;
    }
  }

  & + p {
    @media (width <= 839px) {
      text-align: left;
    }
  }
}

h3,
.h3 {
  font-size: 1.5em;
  text-align: left;
  margin: 0 0 20px;
  border-bottom: double #333;
  padding-bottom: 5px;

  @media (width <= 839px) {
    font-size: 1.125em;
    margin: 0 0 15px;
  }

  & + .sub {
    @media (width <= 839px) {
      font-size: 1.25em;
    }
  }
}

h4,
.h4 {
  font-size: 1.125em;
  margin: 0 0 10px;
  padding-left: 10px;
  border-left: solid 5px var(--lblue);
  border-bottom: none;

  .bunka & {
    border-color: var(--bunka);
  }
  .yumenity & {
    border-color: var(--yume);
  }
  .hurusatopia & {
    border-color: var(--hurusatopia);
  }
}

h5,
.h5 {
  font-size: 1em;
  margin: 0 0 10px;
  padding-left: 0;
  border: none;
}

p {
  margin: 0 0 15px;
  word-break: break-word;
}
p:last-child {
  margin: 0;
}

.fs20 {
  font-size: 1.25em;
}

.fs18 {
  font-size: 1.125em;
}

.fs16 {
  font-size: 1em;
}

.fs14 {
  font-size: 0.875em;
}

.fs12 {
  font-size: 1.25em;
}

.fs115 {
  font-size: 115%;
  margin: 0 1px;
}

.fs85 {
  font-size: 85%;
}

.fwn {
  font-weight: normal;
}

.fwb {
  font-weight: bold;
}

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  height: 1px;
  overflow: hidden;
  position: absolute;
  width: 1px;
  word-wrap: normal;
}

.btn {
  text-align: center;
  width: auto;
  min-width: 300px;
  display: table;
  transition: 0.2s ease;
  font-size: 1.125em;
  font-weight: bold;
  cursor: pointer;
  padding: 10px 20px;
  margin: 30px auto 0;
  border-radius: 50px;
  color: #fff;
  background: var(--lblue);
  border: solid 2px var(--lblue);
  transition: 0.1s ease;
  text-decoration: none;

  @media (width <= 839px) {
    font-size: 0.875em;
  }

  &:hover {
    opacity: 1;
    background: #fff;
    color: var(--lblue);
  }

  &.left {
    margin: 30px auto 0 0;
  }

  &.mini {
    min-width: 200px;
    font-size: 0.875em;
    margin: 30px auto 0;
    padding: 5px 10px;

    @media (width <= 839px) {
      min-width: 120px;
    }
  }

  &.ghost {
    color: #4bacc6;
    background: #fff;

    &:after {
      border-color: #4bacc6;
    }
    &:hover {
      color: #fff;
      background: #4bacc6;

      &:after {
        border-color: #fff;
      }
    }
  }

  &.lg {
    width: min(400px, 100%);
  }

  &.thick {
    padding: 30px 10px;
    border-radius: 20px;

    @media (width <= 839px) {
      padding: 20px 10px;
    }
  }

  @media (width <= 839px) {
    width: min(100%, 240px);
    margin: 20px auto 0;
    padding: 8px 10px;
    border-width: 2px;
  }

}

.btn_small {
  display: inline-block;
  color: #fff;
  border-radius: 100vmax;
  padding: 2px 10px;
  text-decoration: none;

  .bunka & {
    background: var(--bunka);
  }
  .yumenity & {
    background: var(--yume);
  }
  .hurusatopia & {
    background: var(--hurusatopia);
  }
}

.page_ttl {
  height: 200px;
  background: url("../img/bg.jpg") no-repeat center/cover;
  display: flex;
  align-items: center;
  position: relative;
  text-align: center;
  font-weight: bold;
  overflow: hidden;

  .inner {
    z-index: 2;
  }

  h1,
  .title {
    font-size: 2.25em;

    br {
      display: none;
    }
  }

  .sub_title img {
    height: 40px;
  }

  .caption {
    font-size: 1em;
    margin-top: 10px;
  }

  .bg {
    background: #9BB9B0;
    z-index: 0;
    height: 100%;
    width: 100%;
    position: absolute;
    left: 0;
    top: 0;

    .bunka & {
      background: #A7DFAB;
    }
    .yumenity & {
      background: #D3E173;
    }
    .hurusatopia & {
      background: #CEE6C1;
    }
  }

  .obi {
    display: table;
    text-align: left;
    background: rgba(0, 71, 43, 0.5);
    position: relative;
    padding: 20px 20px 20px 0;

    &:after {
      content: "";
      display: block;
      height: 100%;
      position: absolute;
      width: 1000px;
      left: -1000px;
      top: 0;
      background: rgba(0, 71, 43, 0.5);
    }
  }

  .over {
    opacity: 0.5;
    z-index: 1;
    height: 100%;
    width: 100%;
    position: absolute;
    left: 0;
    top: 0;
    filter: brightness(0.6);
  }

  &.bunka {
    .bg {
      background-image: url("../img/bunka/ttl_bg.jpg");
    }
    .over {
      background: var(--bunka);
    }
  }

  &.yumenity {
    .bg {
      background-image: url("../img/yume/ttl_bg.jpg");
    }
    .over {
      background: var(--yume);
    }
  }

  &.hurusatopia {
    .bg {
      background-image: url("../img/hurusatopia/ttl_bg.jpg");
    }
    .over {
      background: var(--hurusatopia);
    }
  }

  @media (width <= 839px) {
    height: 160px;

    h1,
    .title {
      font-size: 1.625em;

      br {
        display: inline;
      }
    }

    .caption {
      font-size: 1.25em;
      margin-top: 5px;
    }
  }

  .bunka & .obi {
    background: rgba(76, 179, 83, 0.5);

    &::after {
      background: rgba(76, 179, 83, 0.5);
    }
  }
}

.intro {
  text-align: center;

  @media (width <= 839px) {
    text-align: left;

    br {
      display: none;
    }
  }
}

input[type="text"],
input[type="email"],
input[type="number"],
input[type="tel"],
select,
textarea {
  border: solid 1px #ccc;
  border-radius: 5px;
  height: 50px;
  padding: 10px;
  background-color: #fff;
  cursor: pointer;
}
input[type="text"].error:not(:disabled),
input[type="email"].error:not(:disabled),
input[type="number"].error:not(:disabled),
input[type="tel"].error:not(:disabled),
select.error:not(:disabled),
textarea.error:not(:disabled) {
  background-color: #fff3f2;
  border-color: #f75c4d;
}

input[type="text"]::placeholder,
input[type="email"]::placeholder,
input[type="tel"]::placeholder,
input[type="number"]::placeholder,
textarea::placeholder {
  color: #ccc;
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type="number"] {
  -moz-appearance: textfield;
}

select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  padding-right: 30px;
  background: #fff url("../img/select_icon.png") no-repeat center right 10px;
  background-size: 10px 6px;
}

select::-ms-expand {
  display: none;
}

select:-moz-focusring {
  color: transparent;
}

.event_list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;

  @media (width <= 839px) {
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
  }

  li {
    background: #fff;
    position: relative;

    .link {
      background: #fff;
      display: block;
      height: 100%;
      box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
      position: relative;

      > .tag {
        display: inline-block;
        text-align: center;
        color: #fff;
        background: var(--lblue);
        width: 80px;
        padding: 2px 5px;
        font-weight: bold;
        position: absolute;
        top: 0;
        left: 0;
        z-index: 2;
        font-size: 1.25em;

        @media (width <= 839px) {
          font-size: 0.875em;
        }
      }

      .picture {
        padding: 30% 50%;
        overflow: hidden;
        position: relative;

        .img {
          position: absolute;
          left: 0;
          top: 0;
          width: 100%;
          height: 100%;
          background: no-repeat center/cover;
        }
      }

      .text {
        padding: 10px 10px 35px;

        .title {
          line-height: 1.1;
          margin-bottom: 5px;
          line-height: 1.2;
          margin: 0;
        }
      }

      .detail {
        margin-bottom: 5px;

        .tag {
          display: inline-block;
          text-align: center;
          margin-right: 5px;
          color: #fff;
          background: var(--lblue);
          border-radius: 3px;
          padding: 2px 8px;
          font-weight: bold;
          margin-bottom: 5px;

          &.bunka {
            background-color: var(--bunka);
          }
          &.yumenity {
            background-color: var(--yume);
          }
          &.hurusatopia {
            background-color: var(--hurusatopia);
          }
        }
      }
    }
  }
}

.news_list {
  li {
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid #ccc;

    &:last-child {
      margin-bottom: 0;
    }
  }

  li a {
    .meta {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 10px;
    }

    time {
      width: 80px;
      font-size: 0.875em;

      @media (width <= 839px) {
        margin: 0 5px 0 0;
        font-weight: bold;
      }
    }

    .tag {
      display: inline-block;
      text-align: center;
      margin-right: 20px;
      color: #fff;
      background: var(--lblue);
      min-width: 60px;
      border-radius: 5px;
      padding: 2px 8px;
      font-weight: bold;
      font-size: 0.875em;

      @media (width <= 839px) {
        margin-right: 0;
        padding: 2px 4px;
        font-size: 0.875em;
      }
    }

    p {
      margin-top: 2px;
      white-space: nowrap;
      text-overflow: ellipsis;
      overflow: hidden;
      width: calc(100% - 220px);

      @media (width <= 839px) {
        width: 100%;
      }
    }
  }
}

.dot_list {
  li {
    &::before {
      display: inline-block;
      content: "・";
      margin-right: 5px;
      background-color: transparent;
    }
  }
}

.num_list {
  counter-reset: number;

  > li {
    position: relative;
    padding-left: 2em;

    &:not(:last-child) {
      margin-bottom: 5px;
    }

    &::before {
      counter-increment: number;
      content: counter(number) ".";
      display: inline-block;
      position: absolute;
      left: 3px;
      top: 0;
      width: 1.4em;
      text-align: right;
    }

    > ol {
      counter-reset: inner-number;
      margin-top: 5px;

      > li {
        position: relative;
        padding-left: 1.7em;

        &:not(:last-child) {
          margin-bottom: 5px;
        }

        &::before {
          counter-increment: inner-number;
          content: "(" counter(inner-number) ")";
          display: inline-block;
          position: absolute;
          left: 3px;
        }
      }

    }
  }
}

.num_parentheses_list {
  counter-reset: number;

  > li {
    position: relative;
    padding-left: 1.7em;

    &:not(:last-child) {
      margin-bottom: 5px;
    }

    &::before {
      counter-increment: number;
      content: "(" counter(number) ")";
      display: inline-block;
      position: absolute;
      left: 3px;
    }
  }
}

.table_dl {
  margin-top: 20px;

  dt {
    width: 10em;
    float: left;
    clear: both;
    font-weight: bold;
    margin-bottom: 10px;
    padding-left: 15px;
    position: relative;

    &:before {
      content: "";
      width: 6px;
      height: 6px;
      position: absolute;
      left: 0;
      top: 9px;
      background: var(--lblue);
      border-radius: 50%;
      display: inline-block;
    }
  }

  dd {
    display: table;
    float: left;
    width: calc(100% - 10em);
    margin-bottom: 10px;
  }

  &.doc {
    dt {
      float: none;
      width: 100%;
      font-size: 1.25em;
    }
    dd {
      float: none;
      padding: 0px 0 30px;

      .btn {
        margin: 10px 15px 0;
        display: inline-block;
        min-width: 120px;
      }
    }
  }

  @media (width <= 839px) {
    dt {
      width: 6.25em;
    }
    dd {
      width: calc(100% - 6.25em);
    }
  }
}

.pager {
  ul {
    display: flex;
    justify-content: center;

    li {
      margin: 0 5px;

      @media (width <= 839px) {
        margin: 0 3px;
      }

      a,
      span {
        height: 40px;
        min-width: 40px;
        padding: 7px;
        border: solid 1px #666;
        display: block;
        text-align: center;
        border-radius: 5px;

        @media (width <= 839px) {
          height: 32px;
          min-width: 32px;
          padding: 5px;
        }
      }

      .current {
        background: #666;
        color: #fff;
      }
    }
  }
}

.page_controls {
  display: flex;
  justify-content: center;
  margin-top: 50px;

  li {
    margin: 0 5px;

    a,
    span {
      min-width: 40px;
      padding: 7px;
      border: solid 1px #666;
      display: block;
      text-align: center;
      border-radius: 5px;
    }

    .current {
      background: #666;
      color: #fff;
    }
  }
}

.single {
  .info {
    margin-bottom: 30px;

    .tag {
      display: inline-block;
      text-align: center;
      color: #fff;
      background: var(--lblue);
      border-radius: 5px;
      padding: 2px 8px;
      font-weight: bold;
      font-size: 0.875em;
      margin-right: 10px;

      &.bunka {
        background-color: var(--bunka);
      }
      &.yumenity {
        background-color: var(--yume);
      }
      &.hurusatopia {
        background-color: var(--hurusatopia);
      }
    }

    h1 {
      width: min(100% - 20px, 800px);
      margin-inline: auto;
      margin-top: 15px;
      padding-bottom: 5px;
      text-align: center;
      border-bottom: solid 1px #ccc;
    }
  }
}

.flexible_content {
  p {
    margin-bottom: 20px;
  }

  a {
    text-decoration: underline;
  }

  .gray {
    font-size: 1.25em;
    color: #999;
  }

  .red {
    color: red;
  }

  .orange {
    color: #ff9900;
  }

  h2:not(:first-child),
  h3:not(:first-child) {
    margin-top: 40px;
  }

  .img_text {
    margin-bottom: 40px;

    @media (width <= 839px) {
      margin-bottom: 30px;
    }

    .img {
      width: calc(45% - 30px);
      margin-right: 30px;
      float: left;
      text-align: center;

      @media (width <= 839px) {
        width: calc(45% - 15px);
        margin-right: 15px;
      }
    }

    p {
      width: 55%;
      float: right;
    }

    &:nth-of-type(even) {
      p {
        float: left;
      }
      .img {
        float: right;
        margin: 0 0 0 30px;

        @media (width <= 839px) {
          margin: 0 0 0 15px;
        }
      }
    }

    &:last-child {
      margin-bottom: 0;
    }
  }

  .img_text .gray_box {
    background: #eee;
    padding: 15px;
  }

  .border_box {
    border: solid 1px #ccc;
    padding: 15px;
  }

  .picture {
    text-align: center;
    max-width: 800px;
    margin: 0 auto;

    &:not(:last-child) {
      margin-bottom: 40px;

      @media (width <= 839px) {
        margin-bottom: 30px;
      }
    }

    img {
      max-width: 100%;
      width: auto;
      height: auto;

      @media (width <= 839px) {
        width: auto;
        height: auto;
      }
    }
  }
}

.table_scroll_wrap {
  overflow-x: auto;

  table {
    min-width: 770px;
  }
}

.plane_table {
  width: 100%;
  word-break: break-all;

  th,
  td {
    padding: 10px;
    border: solid 1px #A2A2A2;
    background: #fff;

    @media (width <= 839px) {
      padding: 10px 5px;
      font-size: 0.875em;
      min-width: 60px;
    }
  }

  th {
    background: #eee;
  }

  &.instructions {
    tr {
      th {
        width: 23%;
      }
      td {
        width: 77%;
      }
    }
  }

  &.t-w-auto {
    width: auto;
    margin: 20px 0;
  }

  &.overview {
    tr {
      th,td {
        text-align: center;
      }

      th {
        background: #9EE5B1;
      }
    }

    tbody {
      tr {
        &:nth-of-type(even) {
          td {
            background: #DEEEE2;
          }
        }

        &:has(th[rowspan="2"]) + tr > th {
          background: #DEEEE2;
        }
      }
    }

    &.t-td-white {
      tr {
        &:nth-of-type(2n) {
          td {
            background: #fff;
          }
        }
      }
    }
  }

  .t-c-gray {
    background: #A2A2A2;
  }

  .t-c-dark-green {
    background: #5AC073 !important;
  }
}

hr.line {
  border: none;
  height: 25px;
  width: 100%;
  margin: 60px 0 0;
  background: url("../img/line.png") repeat-x center/contain;

  @media (width <= 839px) {
    margin: 30px 0 0;
  }
}

.sp {
  display: none;

  @media (width <= 839px) {
    display: inherit;
  }
}

.pc {
  @media (width <= 839px) {
    display: none;
  }
}

.bunka {
  .main {
    a {
      &:not(.btn):not(.btn_small) {
        color: var(--bunka);
      }
      &.btn
      &.btn_small {
        text-decoration: none;
      }
    }
    .news_list,
    .event_list {
      a {
        &:not(.btn):not(.btn_small) {
          color: var(--lblue);
          text-decoration: none;
        }
      }
    }
  }
  .table_dl dt:before {
    background: var(--bunka);
  }
  h4 {
    border-color: var(--bunka);
  }
  .btn {
    background: var(--bunka);
    border-color: var(--bunka);
    color: #fff;

    &:hover {
      background: #fff;
      color: var(--bunka);
    }
  }
}

.yumenity {
  .main {
    a {
      &:not(.btn):not(.btn_small) {
        color: var(--yume);
      }
      &.btn
      &.btn_small {
        text-decoration: none;
      }
    }
    .news_list,
    .event_list {
      a {
        &:not(.btn):not(.btn_small) {
          color: var(--lblue);
          text-decoration: none;
        }
      }
    }
  }
  .table_dl dt:before {
    background: var(--yume);
  }
  h4 {
    border-color: var(--yume);
  }
  .btn {
    background: var(--yume);
    border-color: var(--yume);
    color: #fff;

    &:hover {
      background: #fff;
      color: var(--yume);
    }
  }
}

.hurusatopia {
  .main {
    a {
      &:not(.btn):not(.btn_small) {
        color: var(--hurusatopia);
      }
      &.btn
      &.btn_small {
        text-decoration: none;
      }
    }
    .news_list,
    .event_list {
      a {
        &:not(.btn):not(.btn_small) {
          color: var(--lblue);
          text-decoration: none;
        }
      }
    }
  }
  .table_dl dt:before {
    background: var(--hurusatopia);
  }
  h4 {
    border-color: var(--hurusatopia);
  }
  .btn {
    background: var(--hurusatopia);
    border-color: var(--hurusatopia);
    color: #fff;

    &:hover {
      background: #fff;
      color: var(--hurusatopia);
    }
  }
}

/* header,footer,section等 */

html,
body {
  height: 100%;
  background: #fff;
}

.wrapper {
  padding-top: var(--header-h);
  min-height: 100%;
  position: relative;

  &.common-facility {
    padding-top: calc(var(--main-menu-h) + var(--sub-menu-h));

    #header .sub-menu {
      display: flex;
      justify-content: center;
      align-items: center;
    }

    @media (width <= 1200px) {
      padding-top: var(--header-h);
    }
  }
}

.anker {
  margin-top: -130px;
  padding-top: 130px;

  @media (width <= 900px) {
    margin-top: -95px;
    padding-top: 95px;
  }
}

main {
  position: relative;

  > section {
    padding: 80px 0 0;

    &:last-of-type {
      padding-bottom: 80px;
    }

    @media (width <= 900px) {
      padding: 40px 0 0;

      &:last-of-type {
        padding-bottom: 40px;
      }
    }

    > section {
      padding: 40px 0 0;

      &:first-of-type {
        padding-top: 0;
      }

      @media (width <= 900px) {
        padding: 30px 0 0;
      }
    }
  }

  .breadcrumb {
    margin-top: 15px;

    br {
      display: none;
    }
  }
}

.inner {
  max-width: 1230px;
  width: 100%;
  padding-left: 15px !important;
  padding-right: 15px !important;
  margin: auto;
  position: relative;
}

.inner_m {
  max-width: 1150px;
  width: 100%;
  padding-left: 15px !important;
  padding-right: 15px !important;
  margin: auto;
  position: relative;
}

.inner_s {
  max-width: 990px;
  width: 100%;
  padding-left: 15px !important;
  padding-right: 15px !important;
  margin: auto;
  position: relative;
}

@keyframes fadeinmenu {
  0% {
    height: 0;
  }
  100% {
    height: 40px;
  }
}
#header {
  height: var(--header-h);
  padding: var(--header-border-h) 0 0;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  background: #fff;
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);

  &:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--header-border-h);
    background: #00472B;
  }

  .inner {
    height: 100%;
  }

  &.bunka {
    &:before {
      background-color: var(--bunka);
    }
    #font li.active a {
      background: var(--bunka);
      border-color: var(--bunka);
    }
  }

  &.yumenity {
    &:before {
      background-color: var(--yume);
    }
    #font li.active a {
      background: var(--yume);
      border-color: var(--yume);
    }
  }

  &.hurusatopia {
    &:before {
      background-color: var(--hurusatopia);
    }
    #font li.active a {
      background: var(--hurusatopia);
      border-color: var(--hurusatopia);
    }
  }

  .menu-head {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 20px;
    align-items: center;
    height: 100%;
  }

  .logo {
    display: inline-block;
    font-size: 1.25em;
    font-weight: 900;
    line-height: 1.2;
    color: #282c45;

    img {
      height: 40px;
      width: auto;
    }

    @media (width <= 1200px) {
      font-size: 1em;
    }
  }

  .main-nav {
    display: flex;
    justify-self: end;
    align-items: center;

    @media (width <= 1200px) {
      padding: 4px 115px 0 0;

      #menu {
        overflow: auto;
        overscroll-behavior-y: contain;
        display: none;
        position: fixed;
        top: var(--header-h);
        left: 0;
        width: 100%;
        height: 100vh - var(--header-h);
        height: 100svh - var(--header-h);
        margin-right: 0;
        background: #fff;
        box-shadow: 0 3px 3px rgba(0, 0, 0, 0.1);
      }

      .menu {
        flex-direction: column;
        justify-content: center;
        padding: 20px 0;

        li {
          text-align: center;
        }

        .menu-item a {
          padding: 0;
          border-radius: 0;
        }

        .home & {
          background-color: #00472B;
        }
      }
    }

    @media (width <= 1080px) {
      #menu > li {
        font-size: 0.875em;
      }
      #menu > li:not(:last-child) {
        margin-right: 15px;
      }
      #menu > li span {
        display: none;
      }
    }

    @media (width <= 900px) {
      > ul:not(:last-of-type) {
        margin-right: 0;
        padding-right: 0;
        position: relative;
      }
      > ul:not(:last-of-type):after {
        content: none;
      }
      #menu > li {
        text-align: center;
        margin: 10px 0 0;
      }
      #menu > li:not(:last-child) {
        margin: 10px 0 0;
      }
      #menu > li span {
        display: inline;
      }
      /* #font {
        display: none;
      } */
    }

    .menu-wrap {
      margin-right: 15px;
      padding-right: 15px;
      position: relative;

      @media (width <= 1200px) {
        margin-right: 0;
        padding-right: 0;
      }

      &:after {
        content: "";
        position: absolute;
        inset-block: 0;
        right: 0;
        width: 1px;
        height: 20px;
        background: #333;
        margin-block: auto;
      }
    }

    .menu {
      position: relative;
      display: flex;
      gap: 30px;

      &:after {
        content: "";
        position: absolute;
        inset-block: 0;
        right: 0;
        width: 1px;
        height: 20px;
        margin-block: auto;
      }

      .menu-item a {
        @media (width <= 1200px) {
          color: #fff;
        }
      }
    }

    #menu-menu {
      .menu-item a {
        padding: 4px 10px;
        border-radius: 10px;

        &[aria-current="page"] {
          .bunka & {
            background: var(--bunka);
            color: #fff;
          }
          .yumenity & {
            background: var(--yume);
            color: #fff;
          }
          .hurusatopia & {
            background: var(--hurusatopia);
            color: #fff;
          }
        }
      }

      .current-menu-item,
      .current-page-ancestor {
        a {
          .bunka & {
            background: var(--bunka);
            color: #fff;
          }
          .yumenity & {
            background: var(--yume);
            color: #fff;
          }
          .hurusatopia & {
            background: var(--hurusatopia);
            color: #fff;
          }
        }
      }
    }
  }

  .sub-menu {
    position: fixed;
    top: var(--header-h);
    left: 0;
    display: none;
    width: 100%;
    height: var(--sub-menu-h);
    background-color: #fff;

    &::before {
      position: absolute;
      top: 0;
      left: 0;
      display: block;
      width: 100%;
      height: 100%;
      content: "";
      z-index: -1;
    }

    .menu {
      margin-right: 15px;
      padding-right: 15px;
      position: relative;

      &:after {
        content: "";
        position: absolute;
        inset-block: 0;
        right: 0;
        width: 1px;
        height: 20px;
        margin-block: auto;
      }

      .menu-item a {
        @media (width <= 1200px) {
          color: #00472B;
        }
      }
    }

    @media (width <= 1200px) {
      position: static;
      top: initial;
      left: initial;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      width: 100%;
      height: auto;
      padding: 20px;
      background-color: #fff;

      .menu {
        margin-right: 0;
        padding-right: 0;

        &::after {
          display: none;
        }
      }

      .sns {
        margin-top: 20px;
      }
    }
  }

  &.bunka .sub-menu,
  &.yumenity .sub-menu,
  &.hurusatopia .sub-menu {
    a {
      @media (1200px <= width) {
        color: #fff;
      }
    }
  }

  &.bunka .sub-menu::before {
    background-color: var(--bunka);
  }
  &.yumenity .sub-menu::before {
    background-color: var(--yume);
  }
  &.hurusatopia .sub-menu::before {
    background-color: var(--hurusatopia);
  }

  @media (width <= 1200px) {
    #menu_btn {
      display: block;
      right: 15px;
    }
  }

  #font {
    display: flex;

    li {
      position: relative;

      &:not(:last-child) {
        margin-right: 10px;
      }

      a {
        font-size: 0.875em;
        width: 24px;
        height: 24px;
        border-radius: 50%;
        display: grid;
        place-items: center;
        border: solid 1px #ccc;
      }

      &.active a {
        background: var(--lblue);
        border-color: var(--lblue);
        color: #fff;
      }
    }
  }

  .sns {
    display: flex;
    position: relative;

    li {
      &:not(:last-child) {
        margin-right: 10px;
      }
      img {
        width: 32px;
        height: auto;
      }
    }
  }
}

#menu_btn {
  display: none;
  cursor: pointer;
  position: absolute;
  right: 0px;
  top: 10px;
  padding: 4px 17.5px;
  z-index: 101;
  text-align: center;
  font-size: 10px;
  border-radius: 30px;
  background-color: #00472B;
  color: #fff;
  border: 1px solid #00472B;
  transition: 0.3s ease;
  font-weight: bold;

  .close {
    display: none;
  }

  &.open {
    background: #fff;
    color: #001ebf;

    .close {
      display: block;
    }
  }
}

#footer {
  padding: 60px 0 10px;
  background: #444;
  color: #fff;

  @media (width <= 1080px) {
    padding: 30px 0;
  }

  .inner {
    display: grid;
  }

  .address {
    display: grid;
    margin-top: 30px;
    font-size: 0.875em;
    font-style: normal;

    @media (width <= 839px) {
      gap: 20px;
    }

    .facility-name {
      display: inline-block;
      width: 11em;
    }

    a[href^="tel:"]{
      margin-left: 1em;
      color: #fff !important;

      @media (width <= 839px) {
        margin-left: 0;
        text-decoration: underline;
      }
    }
  }

  nav {
    .nav-1 {
    }

    .nav-2 {
      margin-top: 20px;
    }

    .menu {
      gap: 20px;
    }

    #footer_menu1 {
      display: flex;
      flex-wrap: wrap;
      justify-content: flex-end;

      > li {
        position: relative;

        &:not(:last-child) {
          margin-right: 15px;
          padding-right: 15px;

          &:after {
            content: "/";
            position: absolute;
            right: 0;
          }
        }
      }

      @media (width <= 1080px) {
        justify-content: flex-start;

        li {
          float: left;
        }

        li:not(:last-child) {
          margin-right: 0;
        }

        > li {
          padding-left: 15px;
          position: relative;
        }

        > li:before {
          content: ">";
          position: absolute;
          left: 0;
        }

        > li:not(:last-child):after {
          content: none;
        }
      }
    }

    #footer_menu2 {
      display: flex;
      flex-wrap: wrap;
      justify-content: flex-end;

      > li {
        padding-left: 15px;
        position: relative;

        &:before {
          content: ">";
          position: absolute;
          left: 0;
        }
        &:not(:last-child) {
          margin-right: 15px;
        }
      }

      @media (width <= 1080px) {
        justify-content: flex-start;

        li {
          float: left;
        }

        li:not(:last-child) {
          margin-right: 0;
        }
      }
    }
  }

  .licence {
    font-size: 0.875em;
    margin-top: 30px;
    align-self: end;
    justify-self: end;

    @media (width <= 1080px) {
      position: relative;
      bottom: 0;
      right: 0;
    }
  }
}

/* Slick初期化前の縦並び防止 */
.slider:not(.slick-initialized) > * {
  display: none;
}
.slider:not(.slick-initialized) > *:first-child {
  position: relative;
  display: block;
  width: 100%;
  height: 412px;

  img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

.slider {
  .slick-list {
    height: 412px;

    .slick-track,
    .slick-slide {
      height: 100%;
    }
  }

  .slick-prev,
  .slick-next {
    top: auto;
    bottom: -40px;
    left: auto;
    right: 72px;
    width: 42px;
    height: 12px;

    &:before {
      content: "";
      background-repeat: no-repeat;
      background-size: 42px 12px;
      display: block;
      width: 42px;
      height: 12px;
    }
  }

  .slick-prev {
    right: 72px;

    &:before {
      background-image: url("../img/control_l.png");
    }
  }

  .slick-next {
    right: 20px;

    &:before {
      background-image: url("../img/control_r.png");
    }
  }

  .slick-slide {
    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }

  #slider_box .slick-dots {
    bottom: -35px;
    right: 145px;
    width: auto;
  }
}

/* 固有 */
#top {
  section {
    padding: 80px 0;

    @media (width <= 839px) {
      padding: 80px 0 40px;
    }
  }

  > .mainvisual {
    padding: 0;
  }

  > #news.event {
    h2 {
      color: #333;
      text-shadow: none;
    }
  }

  > #event.event {
    position: relative;

    &::before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 300px;

      @media (width <= 839px) {
        height: 200px;
      }
    }
  }

  > #event.event {
    margin-top: 40px;

    .bunka & {
      &::before {
        background: #A7DFAB;
      }
    }

    .yumenity & {
      &::before {
        background: #D3E173;
      }
    }
    .hurusatopia & {
      &::before {
        background: #CEE6C1;
      }
    }
  }

  > .about {
    display: flex;

    @media (width <= 839px) {
      display: grid;
    }

    > img {
      width: calc(100% - 680px);
      height: auto;

      @media (width <= 839px) {
        order: 2;
        width: 80%;
        max-width: 500px;
        margin: auto;
      }
    }

    .text {
      width: 620px;
      margin-left: 60px;

      @media (width <= 839px) {
        order: 1;
        width: 100%;
        margin: 0 0 20px;
      }

      .table_dl {
        dt {
          width: 11.25em;

          @media (width <= 839px) {
            width: 6.25em;
          }
        }
        dd {
          width: calc(100% - 11.25em);

          @media (width <= 839px) {
            width: calc(100% - 6.25em);
          }
        }
      }

      .qr img {
        width: 150px;
        height: 150px;
        border: solid 1px #ccc;
      }
    }
  }

  #reserve {
    background: #eee;

    .reserve-btn {
      display: flex;

      @media (width <= 839px) {
        display: block;
        text-align: center;
      }

      a {
        padding: 12px 20px;
        line-height: 1.8;

        @media (width <= 839px) {
          min-width: 280px;
        }
      }

      .manual {
        font-size: 0.9375em;
        line-height: 1.2;

        @media (width <= 839px) {
          margin: 10px auto;
        }
      }
    }
  }

  > .pickup {
    ul {
      display: grid;
      gap: 40px;
      width: min(100%, 1200px);

      li {
        a {
          display: block;

          img {
            width: 100%;
          }
        }
      }
    }
  }
}

#sitemap {
  .root {
    .main {
      display: none;
    }

    @media (width <= 839px) {
      margin-top: 5px;
    }
  }

  ul.under {
    display: flex;
    position: relative;
    margin-top: 30px;
    padding-top: 30px;

    @media (width <= 839px) {
      display: block;
      position: relative;
      margin-top: 20px;
      padding-top: 20px;
    }

    li {
      &:first-child {
        position: absolute;
        font-weight: bold;
        top: 0;
      }
      &:not(:last-child) {
        margin-right: 20px;

        @media (width <= 839px) {
          margin-right: 0;
        }
      }
      &:nth-child(n + 2) a:before {
        content: none;
      }

      @media (width <= 839px) {
        width: 100%;
      }

      &:nth-child(n + 4) {
        @media (width <= 839px) {
          margin-top: 5px;
        }
      }
    }
  }
}

#privacy_policy {
  iframe {
    width: 100%;
    height: 1600px;
    border: solid 1px #000;
    padding: 30px 1%;
  }
}

#circle {
  .plane_table {
    td:nth-child(1) {
      width: 35%;
    }
    td:nth-child(2) {
      width: 25%;
    }
    td:nth-child(3) {
      width: 15%;
    }
    td:nth-child(4) {
      width: 15%;
      text-align: center;
    }
    td:nth-child(5) {
      width: 10%;
      text-align: center;
    }
  }
}

#links {
  a {
    color: #00472B;
  }
}

.image_list {
  display: flex;

  li {
    width: 50%;
    padding-right: 10px;
  }
}

.gallery .caption {
  position: absolute;
  bottom: 0;
  width: 100%;
  line-height: 1.875em;
  background: rgba(0, 0, 0, 0.5);
  color: #fff;
  text-align: center;
  text-shadow: 0 0 3px rgba(0, 0, 0, 0.4);
  font-size: 1.25em;

  @media (width <= 839px) {
    font-size: 0.875em;
  }
}

.plane_table {
  td.gallery {
    text-decoration: underline;

    &:hover {
      background: #eee;
      transition: 0.2s ease;
      cursor: pointer;
    }
  }

  &.price {
    tbody tr td {
      position: relative;

      &:nth-child(1) {
        width: 120px;
      }
      &:nth-last-child(3) {
        width: 110px;
      }
      &:nth-last-child(-n + 2) {
        width: 150px;
      }

      &.docking {
        width: 40px;
        min-width: 34px;
        text-align: center;
        line-height: 1.2;
      }

      a.gallery {
        display: flex;
        width: 100%;
        height: 100%;
        text-decoration: underline;
        position: absolute;
        left: 0;
        top: 0;
        align-items: center;
        padding-left: 10px;

        &:hover {
          background: #eee;
          transition: 0.2s ease;
          cursor: pointer;
        }
      }

      @media (width <= 839px) {
        &:nth-child(1),
        &:nth-last-child(3),
        &:nth-last-child(-n + 2) {
          width: auto;
        }
      }
    }
  }
}

/* ここから新規 */
.page-header {
  position: relative;
  height: 495px;
}

.about-head {
  width: min(100% - 40px, 1200px);
  padding-block: 50px;
  margin-inline: auto;
}
.about-head_ttl {
  text-align: center;
  font-size: 2em;
}
.about-head_lead {
  font-size: 1.125em;
}

.page-content {
  padding-block: 80px;
}

.page-lead p {
  margin: 0;
}

.page-content-ttl {
  width: min(100%, 400px);
  margin: 50px auto 30px;
  font-size: 20px;
  text-align: center;
}

.page-btn-group {
  display: grid;
  gap: 20px;
  margin-top: 10px;

  .btn {
    margin-top: 0;
  }
}

.form_group {
  display: grid;
  gap: 20px;
}

.form_row {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 15px;

  @media (width <= 839px) {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

.form_input input[type="text"],
.form_input input[type="email"],
.form_input input[type="tel"] {
  width: 100%;
  height: 40px;
  padding: 1em;
  background-color: #fff;
  border: 1px solid #bbbcbc;

  &::placeholder {
    color: #bbbcbc;
  }
}

.form_input textarea {
  width: 100%;
  height: 200px;
  padding: 1em;
  resize: vertical;
  border: 1px solid #bbbcbc;

  &::placeholder {
    color: #bbbcbc;
  }
}

.form_input input[type="checkbox"],
.form_input input[type="radio"] {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);

  + label {
    cursor: pointer;
  }
}

.form_radio {
  display: grid;
}

.form_radio label {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 5px;
  position: relative;
}

.form_radio label input[type="radio"] {
  position: relative;
  top: 0.2em;
  border: 1px solid #9e9e9f;
  border-radius: 50%;
  background-color: #fff;
  width: 20px;
  height: 20px;
  vertical-align: -0.15em;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.form_radio label input[type="radio"]:checked::before {
  background-color: #00472B;
}

.form_radio label input[type="radio"]::before {
  content: "";
  display: block;
  position: absolute;
  top: 4px;
  left: 4px;
  border-radius: 50%;
  background-color: transparent;
  width: 10px;
  height: 10px;
  transition: background 0.5s ease;
}

.form_checkbox {
  display: grid;
}

.form_checkbox label {
  position: relative;
}

.form_checkbox label input[type="checkbox"] {
  position: relative;
  border: 1px solid #9e9e9f;
  background-color: #fff;
  width: 1.2em;
  height: 1.2em;
  margin: 0;
  vertical-align: -0.2em;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font-size: 0.875em;
}

.form_checkbox label input[type="checkbox"]::before {
  transition: background 0.5s ease;
}

.form_checkbox label input[type="checkbox"]:checked {
  background-color: #00472B;
}

.form_checkbox label input[type="checkbox"]:checked::before {
  content: "";
  display: block;
  position: absolute;
  top: 0.2em;
  left: 0.15em;
  width: 0.7em;
  height: 0.4em;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg);
}

.form_label {
  display: flex;
  align-items: center;
  gap: 10px;
}

.form_label-text {
  font-weight: 700;

  a {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
  }
}

.form_required {
  border: 1px solid red;
  background-color: red;
  padding: 0.2em 0.5em;
  font-size: 0.625em;
  line-height: 1;
  color: #fff;
}

.form_privacy-policy {
  margin-top: 50px;
  text-align: center;
}

.form_submit {
  margin-top: 40px;
  text-align: center;

  &.is-disabled {
    pointer-events: none;
    opacity: 0.3;
  }
}

.form_submit-btn {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 200px;
  height: 40px;
  border: 1px solid #00472B;
  border-radius: 100vmax;
  transition: 0.3s;
  transition-property: background, color;

  &:hover {
    background-color: #00472B;
    color: #fff;
  }

  input {
    position: absolute;
    width: 100%;
    height: 100%;
    cursor: pointer;
  }
}

.wpcf7-list-item {
  margin-left: 0 !important;
}

.wpcf7-spinner {
  position: absolute !important;
  left: 50%;
  transform: translateX(-50%);
  margin: 70px 0 0 !important;
}

.wpcf7-list-item {
  & + .wpcf7-list-item {
    margin-top: 5px !important;
  }
}


.editor {
  width: min(100% - 20px, 800px);
  margin-top: 50px;
  margin-inline: auto;

  /* 段落・見出し */
  p {
    margin: 0 0 1.2em;
    line-height: 1.8;

    &:last-child {
      margin-bottom: 0;
    }
  }

  h2 {
    margin: 2em 0 0.8em;
    font-size: 1.125em;

    &:first-child {
      margin-top: 0;
    }
  }

  h3 {
    margin: 1.8em 0 0.6em;
    font-size: 1em;
  }

  h4 {
    margin: 1.5em 0 0.5em;
    font-size: 0.875em;
  }

  h5,
  h6 {
    margin: 1.2em 0 0.4em;
    font-size: 1.875em;
  }

  /* リスト */
  ul {
    margin: 0 0 1.2em 1.5em;
    padding: 0;

    > li {
      list-style: disc;
    }

    ul {
      margin-top: 0.3em;

      > li {
        list-style: circle;
      }
    }
  }

  ol {
    margin: 0 0 1.2em 1.5em;
    padding: 0;

    > li {
      list-style: decimal;
    }

    ol {
      margin-top: 0.3em;

      > li {
        list-style: lower-alpha;
      }
    }
  }

  li {
    margin: 0.3em 0;
    line-height: 1.8;
  }

  /* リンク */
  a {
    color: var(--lblue);
    text-decoration: underline;

    &:hover {
      text-decoration: none;
    }
  }

  /* 強調 */
  strong,
  b {
    font-weight: bold;
  }

  em,
  i {
    font-style: italic;
  }

  /* 引用 */
  blockquote {
    margin: 1.5em 0;
    padding: 1em 1.5em;
    border-left: solid 4px var(--lblue);
    background: #f8f8f8;
    color: #555;

    p:last-child {
      margin-bottom: 0;
    }
  }

  /* テーブル */
  table {
    width: 100%;
    margin: 1.5em 0;
    border-collapse: collapse;
    font-size: 0.95em;
  }

  th,
  td {
    border: solid 1px #ccc;
    padding: 0.6em 1em;
    text-align: left;
  }

  th {
    background: #f5f5f5;
    font-weight: bold;
  }

  /* 画像 */
  img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
  }

  figure {
    margin: 1.5em 0;

    figcaption {
      margin-top: 0.5em;
      font-size: 0.9em;
      color: #666;
    }
  }

  /* コード */
  code,
  kbd {
    padding: 0.2em 0.4em;
    font-size: 0.9em;
    background: #f0f0f0;
    border-radius: 3px;
  }

  pre {
    margin: 1.5em 0;
    padding: 1em;
    overflow-x: auto;
    background: #f5f5f5;
    border-radius: 4px;
    font-size: 0.9em;
    line-height: 1.6;

    code {
      padding: 0;
      background: none;
    }
  }

  /* 水平線 */
  hr {
    margin: 2em 0;
    border: none;
    border-top: solid 1px #ddd;
  }

  /* flexible_content との連携 */
  .flexible_content + * {
    margin-top: 1em;
  }
}

.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.alignright {
  display: block;
  margin-left: auto;
}
.alignleft {
  display: block;
}

html :where(img[class*="wp-image-"]) {
  width: revert-layer;
}
