@charset "utf-8";

html {
  overflow-y: scroll;
  height: 100%;
}

body {
  height: 100%;
  font-family: "Noto Sans JP",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
}

body.tbg {
  background-color: #f6fce6;
}

body.bird {
  background-color: #d0ebf4;
}

a {
  color: #1a0dab;
  text-decoration: underline;
}

.wrapper {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.container {
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto
}

header {
  border-bottom: 10px solid #95b009;
  box-shadow: 0 1px 2px rgb(95 95 95 / 50%);
  background-color: #fff;
  z-index: 2;
}

.header_inner {
  height: 70px;
  display: flex;
  align-items: center;
}

.header_inner img {
  width: 165px;
  height: 48px;
  flex: none;
}

.header_inner p {
  margin-bottom: 0;
}

.breadcrumb {
  background-color: #efefef;
  border-bottom: 1px solid #ccc;
}

.breadcrumb ul {
  display: flex;
  margin: 0;
  padding: 5px 0;
  list-style-type: none;
  font-size: .75rem;
  overflow-x: scroll;
  scrollbar-width: 0;
}

.breadcrumb ul::-webkit-scrollbar {
  display: none;
}

.breadcrumb li {
  display: flex;
  color: #333;
  white-space: nowrap;
}

.breadcrumb li:not(:first-child)::before {
  content: "≫";
  display: block;
  margin-left: .5rem;
  margin-right: .5rem;
}

.breadcrumb a {
  color: #333;
  text-decoration: underline;
}

main {
  margin: 0 0 1rem 0;
}

h1.main_visual {
  margin-top: 0;
  margin-bottom: 0;
}

h1.main_visual img {
  max-width: 100%;
}

h1.main_visual img.pc {
  display: none;
}

main h2 {
  background-image: url(../images/TTL.svg);
  background-repeat: no-repeat;
  padding-left: 1.5rem;
  margin-bottom: 1rem;
  filter: invert(40%) sepia(28%) saturate(688%) hue-rotate(30deg) brightness(85%) contrast(81%);
}

main h3 {
  color: #646d3f;
  border-bottom: 1px dotted #646d3f;
}

.anker_link {
  margin: 0 auto;
  padding: 1rem;
}

.event_menu {
  display: flex;
  flex-wrap: wrap;
  flex-wrap: wrap;
  justify-content: space-around;
  margin-bottom: 0;
}

.event_menu span:first-child {
  margin-right: 1rem;
  margin-bottom: 1.5rem;
}

.event_menu .flex-button {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.event_menu .flex-button span:first-child {
  margin-bottom: 0;
}

section {
  margin-bottom: 1rem;
}

.icon_before_link::before {
  content: "";
  display: inline-block;
  width: 1rem;
  height: 1rem;
  margin-right: .5rem;
  background-image: url(../images/fa_link.svg);
  background-repeat: no-repeat;
  background-size: contain;
}

.icon_before_link.white::before {
  background-image: url(../images/fa_link_white.svg);
}

.icon_after_link::after {
  content: "";
  display: inline-block;
  width: 1rem;
  height: 1rem;
  margin-left: .5rem;
  background-image: url(../images/fa_link.svg);
  background-repeat: no-repeat;
  background-size: contain;
}

.icon_after_link.white::after {
  background-image: url(../images/fa_link_white.svg);
}

.icon_before_web::before {
  content: "";
  display: inline-block;
  width: 1rem;
  height: 1rem;
  margin-right: .5rem;
  background-image: url(../images/fa_globe.svg);
  background-repeat: no-repeat;
  background-size: contain;
}

.icon_before_web.white::before {
  background-image: url(../images/fa_globe_white.svg);
}

.icon_after_web::after {
  content: "";
  display: inline-block;
  width: 1rem;
  height: 1rem;
  margin-left: .5rem;
  background-image: url(../images/fa_globe.svg);
  background-repeat: no-repeat;
  background-size: contain;
}

.icon_after_web.white::after {
  background-image: url(../images/fa_globe_white.svg);
}

.icon_before_phone::before {
  content: "";
  display: inline-block;
  width: 1rem;
  height: 1rem;
  margin-right: .5rem;
  background-image: url(../images/fa_phone_white.svg);
  background-repeat: no-repeat;
  background-size: contain;
}

.icon_before_phone.white::before {
  background-image: url(../images/fa_phone_white.svg);
}

.icon_after_phone::after {
  content: "";
  display: inline-block;
  width: 1rem;
  height: 1rem;
  margin-left: .5rem;
  background-image: url(../images/fa_phone.svg);
  background-repeat: no-repeat;
  background-size: contain;
}

.icon_after_phone.white::after {
  background-image: url(../images/fa_phone_white.svg);
}

.lead {
  padding: .9375rem;
  border: 1px solid #b9c4b3;
  border-radius: 3px;
  background-color: #fff;
}

.flex_p {
  display: flex;
  flex-direction: column;
  margin-bottom: 0;
}

.flex_dl {
  margin: 0 0 1.5rem 0;
}

.flex_dl dt,
.flex_dl dd {
  padding: 5px;
  margin: 0;
  border: 1px solid #b9c4b3;
  border-bottom-width: 0;
}

.flex_dl dt {
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  background-color: #f1f5ef;
  color: #5f6838;
}

.flex_dl dd:last-child {
  border-bottom-width: 1px;
}

.flex_dl .asterisk {
  list-style-type: "※";
  margin-bottom: 0;
  padding-left: 1rem;
}

.flex_dl .online_reservation {
  display: flex;
  flex-direction: column;
}

a.link_button {
  margin-bottom: .5rem;
  padding: .3125rem .625rem;
  text-decoration: none;
  background-color: #728568;
  border-radius: .375rem;
  color: #fff;
}

a.link_button.disable {
  pointer-events: none !important;
  cursor: inherit !important;
  background-color: gray !important;
  color: #fff !important;
}

.flex_summary {
  display: flex;
  justify-content: space-between;
}

.flex_summary p:first-child {
  width: 60%;
  flex-grow: 1;
}

.flex_summary p:last-child {
  width: 40%;
  padding: 0 0 0 .5rem;
}

.flex_summary img {
  flex: none;
  border: 1px solid #ccc;
}

.flex_2column {
  margin-top: 1rem;
}

.flex_2column figure {
  display: flex;
  flex-direction: column;
}

.flex_2column figure:last-child {
  margin-bottom: 0;
}

.flex_2column figcaption {
  display: flex;
  align-items: center;
  justify-content: center;
}

.flex_2column img {
  flex: none;
}

.flex_2column hr {
  border-width: 0;
}

.table {
  width: 100%;
  border-top: 1px solid #b9c4b3;
  border-left: 1px solid #b9c4b3;
}

.table th {
  text-align: center;
  border-top: 1px solid #b9c4b3;
  background-color: #728568;
  color: #fff;
}

.table td {
  border-bottom: 1px solid #b9c4b3;
  border-right: 1px solid #b9c4b3;
  padding: 5px;
}

.table td {
  background: #fff;
}

.linkto-access {
  margin: .5rem 0;
}

.flyer-dl {
  display: flex;
  flex-direction: column;
}

.flyer-dl p {
  margin-bottom: 0;
}

.flyer-dl p:first-child {
  padding: 0 0 .625rem 0;
}

.flyer-dl p:first-child img {
  border: 1px solid #ccc;
}

.flyer-dl p:last-child {
  padding: 0 .625rem .625rem .625rem;
}

.flyer-dl img {
  flex: none;
  max-width: 100%;
}

.flyer-icon::before {
  content: "";
  display: inline-block;
  width: 1rem;
  height: 1rem;
  margin-right: .2rem;
  background-image: url(../images/fa_download.svg);
  background-repeat: no-repeat;
  background-size: contain;
}

.flyer-icon.white::before {
  background-image: url(../images/fa_download_white.svg);
}

main .summer h2 {
  color: #1e8ed4;
  background-image: url(../images/TTL_summer.svg);
  filter: none;
}

main .summer h3 {
  color: #1e8ed4;
  border-bottom: 1px dotted #1e8ed4;
}

.summer .lead {
  border-color: #b6d5e8;
}

.summer .flex_dl dt,
.summer .flex_dl dd {
  border-color: #b6d5e8;
}

.flex_center {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.summer .flex_dl dt {
  color: #1e8ed4;
  background-color: #f0f8fd;
}

.summer a.link_button {
  background-color: #1e8ed4;
}

.summer .table {
  border-color:#b6d5e8;
  background-color: #1e8ed4;
}

.summer .table th {
  border-color: #b6d5e8;
}

.summer .table td {
  border-color: #b6d5e8;
}

footer {
  margin-top: auto;
}

.footer-wraper {
  background-color: #778b0f;
}

.footer_inner {
  display: flex;
  flex-direction: column;
  padding-top: 5px;
  padding-bottom: 10px;
}

.footer_inner p {
  margin-bottom: 0;
}

.copy_rights {
  font-size: .5rem;
  color: #333;
}

/* 太めのフッター */
.footer-inner {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  position: relative;
  background-color: #778b0f;
  margin: 2.5rem auto 0;
}

.footer-inner .copy-rights {
  margin-bottom: 0;
  margin-left: auto;
  font-size: .75rem;
  color: #fff;
}

.footer-inner .footer-logo {
  display: flex;
  width: 100%;
  justify-content: space-between;
  height: 50px;
  margin-top: .625rem;
  margin-bottom: 0;
}

.footer-inner .footer-logo-tbg {
  display: block;
  background: url(../../imgs/logo_tbg.svg) no-repeat;
  width: 145px;
  height: 45px;
  font-size: 0;
}

.footer-inner .footer-logo-kahaku {
  display: block;
  background: url(../../shared/images/kahaku_footer_top-WH.svg) no-repeat;
  width: 185px;
  height: 40px;
  font-size: 0;
}

.footer-inner .totop a {
  display: block;
  background: #778b0f url(../../shared/images/btn_totop-WH.svg) no-repeat 11px 11px;
  background-size: 80%;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  border-bottom: none;
  width: 100px;
  height: 0;
  padding: 35px 5px 0px 28px;
  position: absolute;
  right: 10px;
  top: -35px;
  overflow: hidden;
  font-size: 0px;
}

@media(min-width: 576px) {

  .container,
  h1.main_visual {
    max-width:540px;
  }

  h1.main_visual {
    margin-right: auto;
    margin-left: auto;
  }

  .footer_inner {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
    padding-top: 10px;
  }

  .copy_rights {
    font-size: .75rem;
  }
}

@media(min-width: 768px) {

  .container,
  h1.main_visual {
    max-width:720px;
  }

  h1.main_visual {
    width: 100%;
    margin-bottom: 2rem;
  }

  .breadcrumb ul {
    overflow: hidden;
  }

  .event_menu {
    justify-content: center;
  }

  .event_menu .flex-button {
    display: inline;
  }

  h1.main_visual img.pc {
    display: block;
  }

  h1.main_visual img.sp {
    display: none;
  }

  .summer .lead {
    border-width: 0;
    padding: 0;
  }

  .lead {
    border-width: 0;
    padding: 0;
  }

  section {
    padding: 1rem;
    margin-bottom: 2rem;
    border: 2px solid #b9c4b3;
    background-color: #fff;
  }

  section.summer {
    border-color: #c6e5f8;
  }

  .flex_dl {
    display: flex;
    flex-wrap: wrap;
  }

  .flex_dl dt {
    width: 30%;
    border-right-width: 0;
  }

  .flex_dl dt:nth-last-child(2) {
    border-bottom-width: 1px;
  }

  .flex_dl dd {
    width: 70%;
  }

  .flex_2column {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }

  .flex_2column > * {
    width: calc(50% - 1rem);
  }

  .flex_2column figure {
    margin-bottom: 0;
  }
  .flex_2column figure img {
    max-width: calc(100% - 1rem);
  }

  .flex_2column hr {
    width: 100%;
    margin: 1rem 0 1rem 0;
    border-style: dashed;
    border-width: 0;
    border-top-width: 1px;
    border-color: #1e8ed4;
  }

  .after_border,
  .before_border {
    position: relative;
  }

  .after_border::after {
    content: "";
    position: absolute;
    top: 0;
    right: -1rem;
    height: 100%;
    border-right: 1px dashed #1e8ed4;
  }

  .before_border::before {
    content: "";
    position: absolute;
    top: 0;
    left: -1rem;
    height: 100%;
    border-left: 1px dashed #1e8ed4;
  }

  .flyer-dl {
    flex-direction: row;
  }

  .flyer-dl p:first-child {
    padding: 0;
    width: 60%;
    border-right: 1px solid #fff;
  }

  .flyer-dl p:last-child {
    padding-left: 1rem;
  }

  .footer-inner {
    height: 120px;
  }

  .footer-inner .footer-logo {
    justify-content: flex-start;
    margin-top: 1.25rem;
  }

  .footer-inner .footer-logo-tbg {
    width: 162px;
    height: 50px;
    margin-right: 1.25rem;
  }

  .footer-inner .footer-logo-kahaku {
    width: 216px;
    height: 44px;
  }
}

/* PC */
@media(min-width: 992px) {

  a:hover {
    text-decoration: none;
  }

  .container,
  h1.main_visual {
    max-width:960px;
  }

  main h1 {
    margin-top: .5rem;
    font-size: 1.4rem;
  }
}

@media(max-width: 410px) {
  .event_menu {
    flex-wrap: wrap;
  }

  .event_menu span:first-child {
    margin-right: 0;
    margin-bottom: 1.5rem;
  }
}

/* util */
.mt-05 {
  margin-top: .5rem;
}

.mt-0-5 {
  margin-top: -.5rem;
}

.mt-1 {
  margin-top: 1rem;
}

.mt-2 {
  margin-top: 2rem;
}

.mb-0 {
  margin-bottom: 0;
}

.mb-1 {
  margin-bottom: 1rem;
}

.mb-1_5 {
  margin-bottom: 1.5rem;
}

.mb-2 {
  margin-bottom: 2rem;
}

.p-1 {
  padding: .9375rem;
}

.w-100 {
  width: 100%;
}

.mw-100 {
  max-width: 100%;
}

.fs-large {
  font-size: 1.3rem;
}

.text-center {
  text-align: center;
}

.text-danger {
  color: rgb(220, 53, 69);
}
