@charset "UTF-8";
body {
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #414141;
  font-size: 14px;
  line-height: 1.75;
  overflow-x: hidden;
  position: relative;
  -webkit-font-smoothing: antialiased; }

body::before {
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100vw;
  height: 100vh;
  background: url(../img/back02_pc.png) 50% 0 repeat-x;
  content: ""; }

img {
  width: 100%; }

a,
a img {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  color: rgba(0, 0, 0, 0.87);
  font-weight: bold;
  text-decoration: none;
  opacity: 1;
  -webkit-transition: opacity 0.2s linear, color 0.2s linear, background 0.2s linear;
  transition: opacity 0.2s linear, color 0.2s linear, background 0.2s linear;
  cursor: pointer; }

.clearfix::after,
div::after,
ul::after,
section::after,
header::after,
nav::after,
footer::after {
  content: "";
  display: block;
  clear: both; }

img {
  width: 100%; }

a img {
  display: block; }

a:focus,
*:focus {
  outline: none; }

a:hover {
  opacity: 0.6; }

ul,
li {
  list-style: none; }

.red {
  color: #912727; }

.center {
  text-align: center; }

.acf-map {
  width: 100%;
  height: 400px;
  border: #ccc solid 1px;
  margin: 20px 0; }

.acf-map img {
  max-width: inherit !important; }

.pc_none {
  display: none !important; }

.sp_none {
  display: block !important; }

@media screen and (max-width: 786px) {
  body::before {
    background: url(../img/back02_sp.png) 50% 0 repeat-y; } }
@media screen and (max-width: 480px) {
  .pc_none {
    display: block !important; }

  .sp_none {
    display: none !important; } }
.mt20 {
  margin-top: 20px !important; }

.mb20 {
  margin-bottom: 20px !important; }

.mb40 {
  margin-bottom: 40px !important; }

header .topText01 {
  height: 40px;
  background: var(--white) 0% 0% no-repeat padding-box;
  background: #ffffff 0% 0% no-repeat padding-box;
  opacity: 0.9;
  font-size: 14px;
  display: flex;
  justify-content: center;
  align-items: center; }
  @media (max-width: 576px) {
    header .topText01 {
      font-size: 13px; } }
header .mainVisual {
  max-width: 1330px;
  margin: 0 auto; }
  header .mainVisual h1 img {
    max-width: 1216px;
    margin: 0 auto; }
  header .mainVisual .topText02 {
    color: #ffffff;
    text-align: center;
    font-size: 16px; }
    @media (max-width: 768px) {
      header .mainVisual .topText02 {
        font-size: 14px; } }

main section {
  margin: 5em auto; }
  @media (max-width: 768px) {
    main section {
      margin: 3em 0; } }
  @media (max-width: 576px) {
    main section {
      margin: 1em 10px; } }
  main section h2 {
    text-align: center;
    margin-bottom: 1em; }
    @media (max-width: 768px) {
      main section h2 {
        margin-bottom: 0.5em; } }
    main section h2 img {
      max-width: 500px; }
      @media (max-width: 768px) {
        main section h2 img {
          max-width: 400px; } }
main section.gallery {
  max-width: 1110px; }
  main section.gallery .listProduct {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin: 0 20px; }
    @media (max-width: 992px) {
      main section.gallery .listProduct {
        margin: 0 10px; } }
    @media (max-width: 768px) {
      main section.gallery .listProduct {
        margin: 0;
        padding: 10px 20px; } }
    @media (max-width: 576px) {
      main section.gallery .listProduct {
        display: block;
        padding: 10px 0; } }
    main section.gallery .listProduct__item {
      width: calc(91% / 3);
      padding: 25px 20px;
      background-color: #ffffff;
      margin: 15px;
      min-width: 324px; }
      @media (max-width: 768px) {
        main section.gallery .listProduct__item {
          width: calc(91% / 2);
          padding: 20px; } }
      @media (max-width: 576px) {
        main section.gallery .listProduct__item {
          padding: 15px;
          width: 100%;
          margin: 0 0 15px 0; } }
      main section.gallery .listProduct__item .itemImage {
        width: 220px;
        margin: 0 auto 10px; }
        @media (max-width: 768px) {
          main section.gallery .listProduct__item .itemImage {
            width: 60%;
            margin: 0 auto; } }
        @media (max-width: 576px) {
          main section.gallery .listProduct__item .itemImage {
            margin: 0 auto 15px; } }
      main section.gallery .listProduct__item .itemDescription {
        padding: 10px 0 0;
        border-top: solid #c9c9c9 1px; }
        @media (max-width: 768px) {
          main section.gallery .listProduct__item .itemDescription {
            border: none;
            padding: 0; } }
        @media (max-width: 768px) {
          main section.gallery .listProduct__item .itemDescription .itemShop {
            font-size: 13px; } }
        @media (max-width: 576px) {
          main section.gallery .listProduct__item .itemDescription .itemShop {
            font-size: 12px;
            line-height: 0.9rem;
            margin-bottom: 5px;
            text-align: justify; } }
        main section.gallery .listProduct__item .itemDescription .itemName {
          color: #24295c;
          color: #1f2c5c;
          line-height: 1.2;
          height: 65px;
          text-align: justify; }
          @media (max-width: 992px) {
            main section.gallery .listProduct__item .itemDescription .itemName {
              height: 45px; } }
          @media (max-width: 576px) {
            main section.gallery .listProduct__item .itemDescription .itemName {
              font-size: 14px;
              height: auto;
              margin-bottom: 7px; } }
        main section.gallery .listProduct__item .itemDescription .itemText {
          height: 70px;
          line-height: 1.4;
          text-align: justify; }
          @media (max-width: 576px) {
            main section.gallery .listProduct__item .itemDescription .itemText {
              font-size: 13px;
              height: auto; } }
        main section.gallery .listProduct__item .itemDescription a {
          width: 60%;
          display: block;
          float: right;
          border: 0.5px solid #707070;
          border-radius: 3px;
          padding: 8px 20px;
          position: relative;
          font-weight: normal;
          margin-top: 14px; }
          @media (max-width: 576px) {
            main section.gallery .listProduct__item .itemDescription a {
              width: 100%;
              padding: 13px 20px; } }
          main section.gallery .listProduct__item .itemDescription a .fa-position-right {
            position: absolute;
            top: calc(50% - 0.7em);
            right: 1rem;
            background-color: #0783cd;
            border-radius: 50%;
            color: #fff;
            width: 20px;
            height: 20px;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0 0 1px 1px; }
main .mapImg {
  max-width: 1000px;
  margin: -100px auto 0; }
  @media (max-width: 768px) {
    main .mapImg {
      margin: -70px auto 0;
      padding: 10px; } }
  @media (max-width: 576px) {
    main .mapImg {
      margin: -40px auto 20px;
      padding: 0; } }
main .tableBox {
  margin: 0 20px; }
  @media (max-width: 576px) {
    main .tableBox {
      margin: 0; } }
  main .tableBox table {
    border-collapse: collapse;
    color: #ffffff;
    max-width: 1090px;
    margin: 30px auto 0;
    width: 100%;
    font-size: 16px;
    background-color: #005b73; }
    @media (max-width: 576px) {
      main .tableBox table {
        margin: 0; } }
    main .tableBox table th,
    main .tableBox table td {
      border: solid 1px #ffffff;
      padding: 20px;
      text-align: left; }
      @media (max-width: 576px) {
        main .tableBox table th,
        main .tableBox table td {
          font-size: 14px;
          padding: 10px; } }
      main .tableBox table th a,
      main .tableBox table td a {
        display: block;
        font-size: 22px;
        color: #fffbd0;
        font-weight: bold; }
        @media (max-width: 576px) {
          main .tableBox table th a,
          main .tableBox table td a {
            font-size: 16px; } }
    main .tableBox table th {
      width: 40%; }
      @media (max-width: 576px) {
        main .tableBox table th {
          width: 36%; } }

/* これが無いとモーダルウィンドウ表示の際に余白が出る */
* {
  margin: 0;
  padding: 0; }

.modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 999999; }
  .modal .modal-bg {
    position: absolute;
    height: 100vh;
    width: 100%;
    background: rgba(31, 44, 92, 0.8); }
  .modal .js-modal-close {
    position: absolute;
    top: 0;
    right: 0;
    color: #fff;
    cursor: pointer; }
    .modal .js-modal-close a {
      position: absolute;
      right: 20px;
      top: 20px;
      color: #fff; }
    .modal .js-modal-close .my_modal_close_icon {
      display: inline-block;
      width: 20px;
      height: 20px;
      position: relative;
      cursor: pointer; }
    .modal .js-modal-close .my_modal_close_icon span::before,
    .modal .js-modal-close .my_modal_close_icon span::after {
      display: block;
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      width: 150%;
      height: 15%;
      margin: -1% 0 0 -25%;
      background: #ffffff; }
      @media (max-width: 576px) {
        .modal .js-modal-close .my_modal_close_icon span::before,
        .modal .js-modal-close .my_modal_close_icon span::after {
          background: #aaa; } }
    .modal .js-modal-close .my_modal_close_icon span::before {
      transform: rotate(-45deg); }
    .modal .js-modal-close .my_modal_close_icon span::after {
      transform: rotate(45deg); }
  .modal .modal-content {
    position: relative;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: white;
    padding: 30px;
    width: 860px;
    height: 72%;
    overflow: scroll; }
    @media (max-width: 768px) {
      .modal .modal-content {
        width: 100%;
        padding: 10px;
        height: auto; } }
    @media (max-width: 576px) {
      .modal .modal-content {
        height: 70%; } }
    .modal .modal-content .modalBox {
      display: grid;
      grid-template-columns: 435px 1fr; }
      @media (max-width: 768px) {
        .modal .modal-content .modalBox {
          grid-template-columns: 370px 1fr; } }
      @media (max-width: 576px) {
        .modal .modal-content .modalBox {
          display: block; } }
      .modal .modal-content .modalBox .modalBoxLeft {
        grid-row: 1;
        grid-column: 1;
        margin: 10px; }
        .modal .modal-content .modalBox .modalBoxLeft__image {
          max-width: 435px; }
          @media (max-width: 576px) {
            .modal .modal-content .modalBox .modalBoxLeft__image {
              max-width: 250px;
              margin: 0 auto; } }
    .modal .modal-content .modalBoxRight {
      grid-row: 1;
      grid-column: 2;
      margin: 10px; }
      .modal .modal-content .modalBoxRight__shop {
        line-height: 1.2rem;
        margin-bottom: 8px; }
      .modal .modal-content .modalBoxRight__name {
        font-size: 18px;
        color: #24295c;
        font-weight: bold;
        line-height: 1.2; }
      .modal .modal-content .modalBoxRight__price {
        width: 100%;
        border-top: dotted 1px #1f2c5c;
        border-bottom: dotted 1px #1f2c5c;
        margin: 9px 0 15px; }
        .modal .modal-content .modalBoxRight__price th {
          width: 10%;
          text-align: left;
          font-weight: normal; }
        .modal .modal-content .modalBoxRight__price td {
          text-align: right; }
          .modal .modal-content .modalBoxRight__price td span {
            font-size: 18px;
            font-weight: bold; }
      .modal .modal-content .modalBoxRight__contactArea {
        background-color: #ffedd8;
        padding-bottom: 15px; }
        .modal .modal-content .modalBoxRight__contactArea h4 {
          background-color: #f8b666;
          padding: 10px;
          text-align: center;
          color: #fff; }
        .modal .modal-content .modalBoxRight__contactArea .telButton {
          padding: 10px 0;
          margin: 15px 20px 10px;
          display: flex;
          background-color: #fff;
          border-radius: 10px;
          justify-content: center;
          align-items: center; }
          .modal .modal-content .modalBoxRight__contactArea .telButton img {
            display: block;
            width: 41px;
            height: 41px; }
          .modal .modal-content .modalBoxRight__contactArea .telButton .telButtonBox {
            color: #f8b666;
            text-align: center; }
            .modal .modal-content .modalBoxRight__contactArea .telButton .telButtonBox .telNumber {
              font-size: 19px; }
        .modal .modal-content .modalBoxRight__contactArea p {
          padding: 0 20px;
          line-height: 1.3rem; }
          .modal .modal-content .modalBoxRight__contactArea p a {
            text-decoration: underline; }
    .modal .modal-content .modalText {
      line-height: 1.3rem;
      margin: 15px 10px 40px; }
      @media (max-width: 576px) {
        .modal .modal-content .modalText {
          margin-bottom: 20px; } }

body.fixed {
  position: fixed;
  width: 100%;
  height: 100%;
  left: 0;
  overflow: hidden; }

footer {
  padding: 4em 0 0; }
  @media (max-width: 768px) {
    footer {
      padding: 2em 0 0; } }
  @media (max-width: 576px) {
    footer {
      padding: 1em 0 0; } }
  footer .footerText {
    color: #ffffff;
    text-align: center;
    font-size: 17px; }
    @media (max-width: 576px) {
      footer .footerText {
        font-size: 14px;
        padding: 0 10px; } }
  footer .footerImg {
    max-width: 430px;
    margin: 20px auto 50px; }
    @media (max-width: 576px) {
      footer .footerImg {
        padding: 0 10px;
        margin: 20px auto 0; } }
  footer .copyRight {
    height: 50px;
    background: var(--white) 0% 0% no-repeat padding-box;
    background: #ffffff 0% 0% no-repeat padding-box;
    opacity: 0.9;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center; }
    @media (max-width: 576px) {
      footer .copyRight {
        font-size: 12px;
        height: 40px; } }

.pageTop {
  width: 70px;
  height: 70px;
  position: fixed;
  right: 20px;
  bottom: 20px;
  background: #3f98ef;
  opacity: 0.6;
  border-radius: 50%;
  z-index: 9999; }
  @media (max-width: 768px) {
    .pageTop {
      width: 70px;
      height: 70px;
      right: 10px;
      bottom: 20px; } }
  .pageTop a {
    position: relative;
    display: block;
    width: 87px;
    height: 50px;
    text-decoration: none; }
    @media (max-width: 768px) {
      .pageTop a {
        width: 50px;
        height: 50px; } }
    .pageTop a::before {
      font-family: "Font Awesome 5 Free";
      font-weight: 900;
      content: "\f102";
      font-size: 40px;
      color: #fff;
      position: absolute;
      width: 50px;
      height: 50px;
      top: 0px;
      bottom: 0;
      right: 15px;
      left: 0;
      margin: auto;
      text-align: center; }
      @media (max-width: 768px) {
        .pageTop a::before {
          width: 70px;
          height: 70px;
          font-size: 35px;
          top: 25px; } }
