@charset "UTF-8";
* {
  box-sizing: border-box;
}

html {
  letter-spacing: 0.05em;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
img:hover {
  opacity: 1;
}

a {
  color: #000;
  text-decoration: none;
}
a:hover, a:active, a:focus {
  color: rgb(25.5, 25.5, 25.5);
  text-decoration: none;
}
a {
  /*&:visited {
   color: darken($color, $amount) ;
  }*/
}
a img {
  transition: 0.3s;
  opacity: 1;
}
a:hover img {
  opacity: 0.7;
  transition: 0.3s;
}

@media print, screen and (min-width: 480px) {
  a[href^="tel:"] {
    pointer-events: none;
    display: inline-block;
  }
}

/* Layout */
.m-container {
  max-width: 935px;
  margin: 0 auto;
  padding: 0 20px;
}

.s-container {
  max-width: 740px;
  margin: 0 auto;
  padding: 0 20px;
}

.content-wrapper {
  padding-top: 10px;
}

.icon-text {
  padding: 0.25rem 0.5rem;
  font-size: 0.8rem;
  font-weight: normal;
  line-height: 1;
  text-decoration: none;
  border: 1px solid #000;
  border-radius: 50px;
  padding: 3px 12px 5px;
  color: #000;
  background: #E3E1C6;
}
.icon-text.-dark {
  background: #816700;
  color: #fff;
  border: none;
}

@media screen and (max-width: 480px) {
  .hide-sp {
    display: none;
  }
}

@media print, screen and (min-width: 480px) {
  .hide-pc {
    display: none;
  }
}

/* ------------------------------
　　ボタン
------------------------------ */
.c-btn--gold {
  height: auto;
  width: auto;
  padding: 15px 90px 15px 50px;
}

.btn-wrap {
  text-align: center;
  margin-top: 40px;
  margin-bottom: 60px;
}

.btn-01 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 17px;
  transition: opacity 0.3s;
  background-color: #E3E1C6;
  border: 1px solid #d9d9d9;
  color: #000;
  border-radius: 100px;
  width: auto;
  height: auto;
  position: relative;
  padding: 15px 60px 15px 50px;
}
.btn-01::after {
  content: "";
  display: block;
  width: 8px;
  height: 15px;
  background-image: url("../img/arrow_right.svg");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  position: absolute;
  right: 30px;
  top: 50%;
  transform: translateY(-50%);
}
.btn-01:hover {
  opacity: 0.8;
}
.btn-01.-white {
  background: #fff;
  border: 1px solid #fff;
}
.btn-01.-gold {
  color: #fff;
  background: #816700;
  border: 1px solid #816700;
}
.btn-01.-gold::after {
  background-image: url("../img/arrow_right_w.svg");
  background-size: contain;
}
.btn-01.-back::after {
  right: auto;
  left: 30px;
  top: 50%;
  transform: translateY(-50%), rotate(-90deg);
}
@media print, screen and (min-width: 768px) {
  .btn-01.-long {
    padding: 15px 90px 15px 85px;
  }
  .btn-01.-long::after {
    right: 50px;
  }
}
@media screen and (max-width: 768px) {
  .btn-01 {
    width: 100%;
    max-width: 375px;
  }
}

/* ------------------------------
　　カレンダー
------------------------------ */
/* 曜日・日付 テーブル
------------------------------ */
.calendar {
  width: 100%;
}

/* 曜日セル */
.calendar-label {
  box-sizing: border-box;
  height: 2rem;
  padding: 0 0 0.5rem;
  font-weight: normal;
  vertical-align: middle;
  text-align: center;
}

/* 年間カレンダーレイアウト
------------------------------ */
.calendar-header-title {
  margin: 0;
  font-weight: bold;
}
.calendar-header-title a {
  color: inherit;
  text-decoration: none;
}

/* 年間カレンダーとイベントカレンダーのページネーション
------------------------------ */
.calendar-pagination {
  position: relative;
  text-align: center;
}

.calendar-pagination-title {
  position: relative;
  z-index: 1;
  display: inline-block;
  margin: 0;
  color: #816700;
}

.calendar-pagination-link {
  display: flex;
  gap: 0.25rem;
  align-items: center;
  padding-block: 0.5rem;
  line-height: 1;
  text-decoration: none;
}

.calendar-pagination-link-text {
  display: flex;
  align-items: center;
}
.calendar-pagination-link-text:after {
  content: "";
  display: inline-block;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 50%;
  background-image: url("../img/arrow_right.svg");
  background-repeat: no-repeat;
  background-size: 10px;
  background-position: right center;
}
@media (hover: hover) {
  .calendar-pagination-link-text {
    transition: background-color 0.3s ease;
  }
}

.calendar-pagination-item-previous .calendar-pagination-link-text:after {
  content: none;
}
.calendar-pagination-item-previous .calendar-pagination-link-text:before {
  content: "";
  display: inline-block;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 50%;
  background-image: url("../img/arrow_right.svg");
  background-repeat: no-repeat;
  background-size: 10px;
  background-position: right center;
  transform: rotate(180deg);
}

.calendar-event-item-link:-moz-any-link:hover {
  background: #fff;
}

.calendar-event-item-link:any-link:hover {
  background: #fff;
}

/* サイドカラムカレンダー
------------------------------ */
/* サイドカラムの「年間カレンダーで見る」リンク */
.section-side-link {
  display: flex;
  gap: 0.25rem;
  align-items: center;
  justify-content: flex-end;
  padding-block: 0.25rem;
  margin: 0;
  line-height: 1;
  text-decoration: none;
}

.section-side-link-icon {
  box-sizing: border-box;
  display: grid;
  place-items: center;
  width: 1rem;
  height: auto;
  aspect-ratio: 1/1;
  border-radius: 50%;
}

.calendar-event-fore-spacer,
.calendar-event-rear-spacer {
  background: #E3E1C6;
}

.badge-day {
  background-color: #fff;
}

/* ------------------------------
　　お問い合わせ
------------------------------ */
.contact-box .error-text {
  /* エラー文 */
  margin: 5px 0 0 0;
  color: red;
}
.contact-box {
  /* a-blog cmsでエラー時に付与されるクラスや、フォームの各項目に対して指定します */
}
.contact-box input.invalid,
.contact-box select.invalid,
.contact-box textarea.invalid,
.contact-box .acms-admin-form-group {
  scroll-margin-top: 87px; /* ※ヘッダーの高さ + 20px程度の余白を指定してください */
}
@media screen and (max-width: 1023px) {
  .contact-box input.invalid,
  .contact-box select.invalid,
  .contact-box textarea.invalid,
  .contact-box .acms-admin-form-group {
    scroll-margin-top: 65px;
  }
}

.contact-form,
.form-group-list {
  width: 100%;
  padding: 0;
  list-style: none;
}
.contact-form td, .contact-form th,
.form-group-list td,
.form-group-list th {
  padding: 15px 0;
}
@media screen and (max-width: 768px) {
  .contact-form td, .contact-form th,
  .form-group-list td,
  .form-group-list th {
    display: block;
  }
}
.contact-form th,
.form-group-list th {
  padding-bottom: 0;
}
@media print, screen and (min-width: 768px) {
  .contact-form th,
  .form-group-list th {
    width: 30%;
    text-align: left;
  }
}
@media screen and (max-width: 768px) {
  .contact-form th,
  .form-group-list th {
    border: 0;
    text-align: left;
    padding-bottom: 0;
  }
}

.contact-form-group::after,
.form-group::after {
  content: "";
  display: block;
  clear: both;
}

.contact-form-label,
.form-label {
  display: block;
  text-align: left;
  margin: 0;
  padding: 10px 10px 0 10px;
  font-weight: normal;
}

.contact-form-control,
.form-control {
  display: block;
  padding: 10px;
}

.contact-form-grid,
.form-grid {
  margin: 0 -5px;
}

.contact-form-col,
.acms-entry .contact-form-col,
.form-col {
  margin: 0 0 10px 0;
  padding: 0 5px;
}
.contact-form-col:last-child,
.acms-entry .contact-form-col:last-child,
.form-col:last-child {
  margin: 0;
}

@media print, screen and (min-width: 768px) {
  .contact-form,
  .form-group-list {
    width: 100%;
  }
  .contact-form-label,
  .form-label {
    padding: 25px 15px 0 15px;
    font-weight: bold;
  }
  .contact-form-control,
  .form-control {
    padding: 15px;
  }
  .contact-form-col,
  .form-col {
    margin: 0;
  }
}
.form-group .form-control input[type=text],
.form-group .form-control input[type=number],
.form-group .form-control input[type=email],
.form-group .form-control input[type=tel],
.form-group .form-control select,
.form-group .form-control textarea,
.contact-form input[type=text],
.contact-form input[type=number],
.contact-form input[type=email],
.contact-form input[type=tel],
.contact-form select,
.contact-form textarea {
  border: 1px solid #ddd;
  border-radius: 3px;
  background-color: #fff;
  box-shadow: none;
  font-size: 16px;
  padding: 1em 1.5em !important;
}
.form-group .form-control input[type=text]:hover,
.form-group .form-control input[type=number]:hover,
.form-group .form-control input[type=email]:hover,
.form-group .form-control input[type=tel]:hover,
.form-group .form-control select:hover,
.form-group .form-control textarea:hover,
.contact-form input[type=text]:hover,
.contact-form input[type=number]:hover,
.contact-form input[type=email]:hover,
.contact-form input[type=tel]:hover,
.contact-form select:hover,
.contact-form textarea:hover {
  border: 1px solid rgba(0, 0, 0, 0.2);
}

/* 送信ボタン
------------------------------ */
.form-btn-box {
  margin: 30px 10px 50px 10px;
  text-align: center;
}
.form-btn-box .btn-01 {
  padding: 0;
}
.form-btn-box .btn-01 .btn-form {
  padding: 18px 60px 18px 50px;
  border: none;
  background: none;
}
@media print, screen and (min-width: 768px) {
  .form-btn-box .btn-01 .btn-form {
    width: 300px;
  }
}

.form-btn {
  display: inline-block;
}

.form-btn-return {
  float: left;
}

.form-btn-send {
  float: right;
}

@media print, screen and (min-width: 768px) {
  .form-btn-return {
    float: none;
  }
  .form-btn-send {
    float: none;
    max-width: 360px;
    width: 100%;
  }
}
/* ラベル
------------------------------ */
.label-required {
  margin: 0 1em;
  padding: 2px 1em;
  color: #FFF;
  font-size: 12px;
  border-radius: 3px;
  background: #C74D4D;
  line-height: 1.2;
  font-weight: normal;
}

.label-optional {
  display: none !important;
}

/* フォーム要素
------------------------------ */
.contact-form select[required]:required {
  border: 1px solid #C49511;
}
.contact-form select.focused:invalid {
  border: 1px solid #c41134;
}
.contact-form select[required]:valid {
  border: 1px solid #A7A7AA;
}
.contact-form input[required]:required,
.contact-form textarea[required]:required {
  background: #FFFDEB;
}
.contact-form input.focused:invalid,
.contact-form textarea.focused:invalid {
  background: #FFEBEE;
}
.contact-form input[required]:valid,
.contact-form textarea[required]:valid {
  background: #FFF;
}
.contact-form input[type=text],
.contact-form input[type=password],
.contact-form input[type=datetime],
.contact-form input[type=datetime-local],
.contact-form input[type=date],
.contact-form input[type=month],
.contact-form input[type=time],
.contact-form input[type=week],
.contact-form input[type=number],
.contact-form input[type=email],
.contact-form input[type=url],
.contact-form input[type=search],
.contact-form input[type=tel] {
  padding: 14px 5px 10px 5px;
}
.contact-form textarea {
  padding: 5px 5px 4px;
}
.contact-form select {
  padding: 11px 30px 11px 10px;
  vertical-align: top;
}

/* バリデーター
------------------------------ */
.valid-mark {
  display: none;
}

.valid-mark.valid {
  display: inline;
  color: #5cb85c;
  float: right;
}

.invalid {
  background: #ffebee !important;
}

/* ------------------------------
　　リスト
------------------------------ */
/* ページ内リンク
------------------------------ */
.list-within {
  padding: 0;
  list-style: none;
  display: flex;
  gap: 30px;
}
.list-within li {
  font-size: 14px;
  font-weight: normal;
}
.list-within li a {
  color: #816700;
  text-decoration: underline;
}
.list-within li a:hover {
  text-decoration: none;
}
.list-within li:after {
  content: "";
  display: inline-block;
  margin-left: 7px;
  width: 10px;
  height: 9px;
  background-image: url("../img/arrow_down.svg");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

.rice-list {
  padding-left: 1.2em !important;
  list-style-type: none;
}
.rice-list li {
  text-indent: -0.65em;
  margin: 0 0 3px !important;
}
.rice-list li::before {
  content: "※";
  margin-right: 5px;
  display: inline-block;
}
.rice-list li.important {
  color: #FF0000;
}

/* ------------------------------
　　表組
------------------------------ */
table.table-01 {
  width: 100%;
  border-collapse: collapse;
  border: none;
  border-top: 1px solid #d6d8e8;
  border-bottom: 1px solid #d6d8e8;
  margin: 1em 0;
}
table.table-01 tr {
  border: none;
  border-top: 1px solid #d6d8e8;
}
table.table-01 th, table.table-01 td {
  border: none;
  padding: 10px;
  border-left: 0;
  border-radius: 0;
}
@media screen and (max-width: 768px) {
  table.table-01 th, table.table-01 td {
    display: block;
  }
}
table.table-01 th {
  color: #816700;
  text-align: left;
}

/* ------------------------------
　　ローカルナビゲーション
------------------------------ */
.local-nav-wrap {
  width: 100%;
}
.local-nav-wrap:after {
  content: none;
}

.local-nav-list {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin: 20px 0 30px;
  flex-wrap: wrap;
}

.local-nav-item {
  display: block;
  text-decoration: none;
  color: #000;
  font-family: "Zen Old Mincho", serif;
  font-size: 17px;
  letter-spacing: 0.05em;
  padding: 0;
}
.local-nav-item a {
  display: block;
  width: 100%;
  text-align: center;
  padding: 10px 25px 12px;
  transition: all 0.3s;
  background: #fff;
  border: 1px solid #000;
  border-radius: 50px;
}
.local-nav-item.stay a, .local-nav-item:hover a {
  background: #E3E1C6;
}

/*
.local-nav-wrap {
  position: relative;
  margin-bottom: 2rem;

  &::after {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    display: block;
    width: 1rem;
    content: "";
    background: linear-gradient(90deg, rgb(255 255 255 / 0%), var(--color-white));
  }

  @include acms.media-breakpoint-up(md) {
    margin-bottom: 3rem;
  }
}

.local-nav-inner {
  width: 100%;
  overflow: auto hidden;
  scroll-behavior: smooth;
  white-space: nowrap;
}

.local-nav {
  font-weight: bold;
}

.local-nav-list {
  display: flex;
  padding: 0;
  margin: 0;
  list-style: none;
}

.local-nav-item {
  padding: 0 1.5rem 0 0;
}

.local-nav-link {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  text-decoration: none;

  @media (hover: hover) {
    &:hover {
      .local-nav-link-icon {
        background-color: var(--color-icon-bg-hover);
      }
    }
  }
}

.local-nav-link-icon {
  box-sizing: border-box;
  display: grid;
  place-items: center;
  width: 1.25rem;
  height: auto;
  aspect-ratio: 1 / 1;
  background-color: var(--color-icon-bg);
  border-radius: 50%;

  &.is-left {
    rotate: 180deg;
  }

  &.is-down {
    rotate: 90deg;
  }

  svg {
    width: 0.625rem;
    height: 0.625rem;
    color: var(--color-white);
    object-fit: contain;

    path {
      stroke: currentcolor;
    }
  }

  @media (hover: hover) {
    transition: background-color 0.3s ease;
  }
}

.local-nav-link-text {
  font-size: map.get(global.$font-scales, body-m);
  font-weight: bold;
  line-height: var(--line-height-base);
  color: var(--color-text);
}
*/
/* ------------------------------
　　タイトル
------------------------------ */
.section-title {
  font-size: 28px;
  color: #816700;
  font-weight: 700;
  margin-bottom: 20px;
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
}
.section-title.-left {
  text-align: left;
}

.section-sub-title {
  font-size: 18px;
  color: #816700;
  font-weight: 700;
  margin-bottom: 20px;
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
}

/* ------------------------------
　　ページタイトル
------------------------------ */
.c-page-title {
  border-top: 1px solid #D9D9D9;
  border-bottom: 1px solid #D9D9D9;
  margin-bottom: 0;
}
.c-page-title .c-page-title__category {
  margin-bottom: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 12px;
}
.c-page-title .c-page-title__category::before {
  content: "●";
  font-size: 10px;
  margin-right: 3px;
  display: inline-block;
  color: #F2925E;
}
.c-page-title h1 {
  margin: 0;
}

/* ------------------------------
　　ページャー
------------------------------ */
.pager-list li.forward-link .pager-link:-moz-any-link, .pager-list li.back-link .pager-link:-moz-any-link {
  background: none;
}
.pager-list li.forward-link .pager-link:any-link, .pager-list li.back-link .pager-link:any-link {
  background: none;
}

.pager-link {
  border: none;
}

.serial-nav .serial-nav-item {
  background: #fff;
  color: #816700;
}
.serial-nav .serial-nav-item-title {
  padding: 0 1.7em;
  font-size: 15px;
}
.serial-nav .pager-simple-arrow-text, .serial-nav .serial-nav-arrow-text {
  color: #816700;
}
.serial-nav .pager-simple-arrow-icon, .serial-nav .serial-nav-arrow-icon {
  background: #816700;
}
.serial-nav .serial-nav-item-prev a, .serial-nav .serial-nav-item-next a {
  background: #fff;
  border: none;
}
.serial-nav .serial-nav-item-prev a:hover, .serial-nav .serial-nav-item-next a:hover {
  background: #E3E1C6;
  color: #000;
}
.serial-nav .serial-nav-item-prev a:hover .pager-simple-arrow-text, .serial-nav .serial-nav-item-prev a:hover .serial-nav-arrow-text, .serial-nav .serial-nav-item-next a:hover .pager-simple-arrow-text, .serial-nav .serial-nav-item-next a:hover .serial-nav-arrow-text {
  color: #000;
}
.serial-nav .serial-nav-item-prev a:hover .pager-simple-arrow-icon, .serial-nav .serial-nav-item-prev a:hover .serial-nav-arrow-icon, .serial-nav .serial-nav-item-next a:hover .pager-simple-arrow-icon, .serial-nav .serial-nav-item-next a:hover .serial-nav-arrow-icon {
  background: #000;
}

/* ------------------------------
　　googlemap
------------------------------ */
.googlemap {
  position: relative;
  padding-bottom: 56.25%;
  padding-top: 30px;
  height: 0;
  margin-top: 30px;
  overflow: hidden;
}
.googlemap iframe, .googlemap object, .googlemap embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* ------------------------------
　　カード
------------------------------ */
.card-list .card-wrap {
  display: flex;
  flex-wrap: wrap;
}
.card-list .card-wrap .card-item {
  width: 50%;
  padding: 10px;
}
.card-list .card-wrap .card-item .inner {
  height: 100%;
  background: #fff;
}
.card-list .card-wrap .card-item .card-thumb {
  aspect-ratio: 29/19;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
.card-list .card-wrap .card-item .card-body {
  padding: 0 15px 10px;
}
.card-list .card-wrap .card-item .card-body dl dd .label {
  background: #E3E1C6;
  border-radius: 50px;
  padding: 3px 12px 4px;
  border: 1px solid #000;
  margin-right: 5px;
}
.card-list .card-wrap .card-item .card-title {
  color: #000;
  font-size: 16px;
  padding: 5px 0 10px;
}
.card-list .card-wrap .card-item .card-description {
  color: #000;
  font-size: 15px;
}
.card-list .card-wrap .card-item .card-group-wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 15px;
}
.card-list .card-wrap .card-item .card-group-wrap .cat-list {
  font-size: 12px;
}
.card-list .card-wrap .card-item .card-group-wrap .cat-list .category-label:before {
  content: "●";
  display: inline-block;
  margin-right: 3px;
}
@media print, screen and (min-width: 768px) {
  .card-list .card-wrap .card-item {
    width: 33.3333333333%;
    padding: 17px;
  }
  .card-list .card-wrap .card-item .card-body {
    padding: 0 30px 25px;
  }
}

/* カード全体リンク */
.card-link {
  position: relative;
  box-sizing: border-box;
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
}
.card-link::after {
  position: absolute;
  inset: calc(var(--card-bg-space) * -1);
  z-index: 1;
  content: "";
  background-color: transparent;
  border-radius: var(--border-radius-lg);
}
@media (hover: hover) {
  .card-link::after {
    transition: background-color 0.3s ease;
  }
}

/* ------------------------------
　　タグ
------------------------------ */
/* ------------------------------
　　トピックパス
------------------------------ */
.topicpath {
  margin-bottom: 0;
}
.topicpath:after {
  content: none;
}
.topicpath ul {
  gap: 0;
}
.topicpath .topicpath-item::after {
  margin: 0;
}

/* ------------------------------
　　タイポグラフィ
------------------------------ */
/* 見出し
------------------------------ */
/* 本文
------------------------------ */
/* インラインスタイル
------------------------------ */
.text-word-break {
  display: inline-block;
}

.center {
  text-align: center;
}

/* リスト
------------------------------ */
/* ------------------------------
　　エントリー
------------------------------ */
@media screen and (max-width: 768px) {
  .caption {
    padding: 0.3em;
  }
  .topicpath-item {
    padding: 1em 0;
  }
}
.event-main-image {
  text-align: center;
}
.event-main-image img {
  margin: 0 auto;
}

.detail__content {
  margin-bottom: 8vw;
}
@media screen and (max-width: 768px) {
  .detail__content {
    padding: 0;
  }
}
.detail__tag {
  margin: 5px;
}
.detail__section-title {
  margin-bottom: 40px;
}
.detail__info-section .googlemap {
  padding-bottom: 80.2%;
}
.detail__info-box {
  margin: 45px 0;
}
.detail__info-title {
  text-align: center;
}
.detail__info-row {
  border-bottom: 1px solid #D9D9D9;
}
.detail__info-row dt {
  font-weight: normal;
}
.detail .main-image {
  text-align: center;
  margin-bottom: 40px;
}
.detail .column-block-editor h3 {
  font-size: 26px;
  color: #816700;
  font-weight: 700;
  margin-bottom: 30px;
  font-family: "Noto Sans JP", sans-serif;
}
.detail .swiper {
  padding-bottom: 40px;
}
.detail .swiper-pagination {
  bottom: 0;
}

.p-related-spot-card__category-text .category-label:before {
  content: "●";
  display: inline-block;
  margin-right: 3px;
}
.p-related-spot-card__category-text .category-label.category-buy:before {
  color: #C270B2;
}
.p-related-spot-card__category-text .category-label.category-eat:before {
  color: #F2925E;
}
.p-related-spot-card__category-text .category-label.category-hotel:before {
  color: #619CCC;
}
.p-related-spot-card__category-text .category-label.category-see:before {
  color: #9AC796;
}

.detail-panel {
  gap: initial;
}
.detail-panel.is-event {
  background-color: #fff;
  border: 3px solid #d9d9d9;
  padding: 40px;
  margin: 40px 0;
}
.detail-panel .detail-panel-group {
  border-bottom: 1px solid #D9D9D9;
  padding: 15px 0;
  font-size: 18px;
}
.detail-panel .detail-panel-group dt {
  font-weight: normal;
  color: #816700;
  width: 150px;
}
.detail-panel .detail-panel-group:last-child {
  border-bottom: none;
}
@media print, screen and (min-width: 768px) {
  .detail-panel .detail-panel-group {
    display: flex;
  }
  .detail-panel .detail-panel-group dt {
    width: 150px;
  }
  .detail-panel .detail-panel-group dd {
    flex: 1;
  }
}

.entry-share-modal .button {
  background: #816700;
  color: #fff;
  border: none;
}
.entry-share-modal .button:hover {
  background: #fff;
  color: #816700;
}

/* ------------------------------
　　一覧ページ
------------------------------ */
.index .category-nav-group {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-bottom: 60px;
  flex-wrap: wrap;
}
.index .category-nav-item {
  display: block;
  width: 140px;
  text-decoration: none;
  color: #000;
  font-family: "Zen Old Mincho", serif;
  font-size: 17px;
  letter-spacing: 0.05em;
  transition: all 0.3s;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-image: url("../img/category_off.svg");
  border: none; /* Remove CSS border if using image */
  background-color: transparent;
}
.index .category-nav-item.stay, .index .category-nav-item:hover {
  background-image: url("../img/category_on.svg");
  border: none;
}
.index .category-nav-item a {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  width: 100%;
  padding-bottom: 10px;
  text-align: center;
  padding: 10px 10px 20px;
  line-height: 1;
}

.index-list.-spot {
  position: relative;
}
.index-list.-spot:before, .index-list.-spot:after {
  content: "";
  display: block;
  width: calc(100% + 170px);
  height: 1px;
  position: absolute;
  background: #D9D9D9;
}
.index-list.-spot:before {
  top: 0;
  left: -84px;
}
.index-list.-spot:after {
  bottom: 0;
  left: -84px;
}
.index-list.-spot .line:before, .index-list.-spot .line:after {
  content: "";
  display: block;
  width: 1px;
  height: calc(100% + 170px);
  position: absolute;
  background: #D9D9D9;
}
.index-list.-spot .line:before {
  top: -44px;
  left: 0;
}
.index-list.-spot .line:after {
  top: -44px;
  right: 0;
}
.index-list .index-wrap {
  display: flex;
  flex-wrap: wrap;
  overflow: hidden;
}
.index-list .index-wrap .index-item {
  width: 50%;
  border-right: 1px solid #D9D9D9;
  border-bottom: 1px solid #D9D9D9;
  position: relative;
  bottom: -1px;
  right: -1px;
  padding: 20px;
}
.index-list .index-wrap .index-item .card-thumb {
  aspect-ratio: 29/19;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
.index-list .index-wrap .index-item .card-title {
  color: #000;
  font-size: 22px;
  padding: 10px 0 20px;
}
.index-list .index-wrap .index-item .card-description {
  color: #000;
  font-size: 15px;
}
.index-list .index-wrap .index-item .card-group-wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 15px;
}
.index-list .index-wrap .index-item .card-group-wrap .btn {
  display: block;
  width: 20%;
  height: 30px;
  background-image: url("../img/card-list-btn_off.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center center;
}
.index-list .index-wrap .index-item:hover .card-group-wrap .btn {
  background-image: url("../img/card-list-btn_on.svg");
  background-size: contain;
}
.index-list .index-wrap.-spot {
  /*&:before,&:after{
  	content: "";
  	display: block;
  	width: 85px;
  	height: 45px;
  	position: absolute;
  }
  &:before{
  	border-right: 1px solid #D9D9D9;
  	border-top: 1px solid #D9D9D9;
  	bottom: -44px;
  	left: -84px;
  }
  &:after{
  	border-left: 1px solid #D9D9D9;
  	border-top: 1px solid #D9D9D9;
  	bottom: -44px;
  	right: -86px;
  }
  	*/
}
.index-list .index-wrap.-spot .index-item {
  background: none;
}
@media print, screen and (min-width: 768px) {
  .index-list .index-wrap .index-item {
    width: 33.3333333333%;
    padding: 40px;
  }
}

.not-found .index-list {
  display: none;
}

.cat-list {
  font-size: 12px;
}
.cat-list .category-label:before {
  content: "●";
  display: inline-block;
  margin-right: 3px;
}
.cat-list .category-label.category-buy:before {
  color: #C270B2;
}
.cat-list .category-label.category-eat:before {
  color: #F2925E;
}
.cat-list .category-label.category-hotel:before {
  color: #619CCC;
}
.cat-list .category-label.category-see:before {
  color: #9AC796;
}

/* ------------------------------
　　セクション
------------------------------ */
.sec-margin {
  padding: 4em 0 0;
}

.sec-pamphlet-sample {
  padding: 2em 0 4em;
}
.sec-pamphlet-sample .caption {
  width: 100%;
  font-size: 14px;
  font-weight: bold;
  margin-bottom: 0.5em;
}

.pamphlet-wrap {
  display: flex;
  justify-content: space-around;
  flex-wrap: wrap;
  margin-left: -15px;
  margin-right: -15px;
  margin-bottom: 3em;
}
.pamphlet-wrap .item {
  padding: 0 20px 10px;
  width: 50%;
}
.pamphlet-wrap .item .btn {
  text-align: center;
  font-weight: bold;
  margin-top: 0.5em;
  font-size: 14px;
}
.pamphlet-wrap .item .btn a {
  color: #0F65D5;
  text-decoration: underline;
}
.pamphlet-wrap .item .btn a:hover {
  text-decoration: none;
}
@media print, screen and (min-width: 768px) {
  .pamphlet-wrap .item {
    width: 33.3333333333%;
  }
}

/* ------------------------------
　　フッター
------------------------------ */
.l-footer {
  margin-top: 0;
}
@media screen and (max-width: 768px) {
  .l-footer__sp-nav li a {
    justify-content: flex-start;
    padding: 10px;
  }
  .l-footer__sp-nav li .ja {
    margin-left: 1em;
  }
  .l-footer__sp-nav li .en {
    font-size: 22px;
  }
  .l-footer .c-btn--gold {
    padding: 15px 60px 15px 25px;
    font-size: 15px;
  }
  .l-footer .c-btn--gold:after {
    width: 20px;
  }
}

/* ------------------------------
　　ヘッダー
------------------------------ */
.l-header__inner {
  flex-wrap: wrap;
}
@media print, screen and (min-width: 768px) {
  .l-header__logo {
    width: 163px;
  }
}
@media screen and (max-width: 768px) {
  .l-header__logo {
    width: 100px;
  }
}
@media print, screen and (min-width: 768px) {
  .l-header__content {
    width: calc(100% - 163px);
    padding-left: 110px;
  }
}
.l-header__lang {
  overflow: visible;
}
.l-header__lang .gtranslate_wrapper select.gt_selector {
  background: none !important;
  text-align: center;
  border: none;
  -webkit-appearance: none;
  padding: 0 50px 0 20px;
  -moz-appearance: none;
       appearance: none; /* デフォルトの矢印を非表示 */
  color: #816700;
  font-family: "Forum", sans-serif;
}
.l-header__lang .gtranslate_wrapper select::-ms-expand {
  display: none; /* デフォルトの矢印を非表示(IE用) */
}
.l-header__nav {
  width: 100%;
}
.l-header__nav ul {
  width: 100%;
  flex-wrap: wrap;
  gap: 0 20px;
  justify-content: space-around;
}
.l-header__nav li a {
  white-space: nowrap;
}
.l-header__utility-nav {
  width: 100%;
  flex-wrap: wrap;
  gap: 0 20px;
  justify-content: space-around;
}
.l-header__utility-nav li a {
  white-space: nowrap;
}

/* ------------------------------
　　特集
------------------------------ */
/* タグ
------------------------------ */
.tag-box {
  border-radius: 15px;
  background: #fff;
  padding: 15px 50px;
}
.tag-box .tag-title {
  text-align: center;
  display: flex;
  align-items: center;
  font-weight: normal;
}
.tag-box .tag-title:before {
  content: "";
  display: block;
  width: 19px;
  height: 19px;
  background: url("../img/search.svg") no-repeat center center;
  background-size: contain;
  position: relative;
  top: 3px;
  margin-right: 10px;
}
.tag-box .tag-body {
  padding: 10px;
}
.tag-box .tag-body .tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 15px;
}
.tag-box .tag-body .tag-list .tag-label {
  padding: 3px 13px 5px;
  display: inline-block;
  border-radius: 50px;
  border: 1px solid #000;
  color: #000;
  background: #E3E1C6;
}
.tag-box .tag-body .tag-list .tag-label:hover {
  background: #816700;
  border: 1px solid #816700;
}
.tag-box .tag-body .tag-list .tag-label:hover a {
  color: #fff;
}
@media print, screen and (min-width: 768px) {
  .tag-box .wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
  }
  .tag-box .wrap .tag-title {
    width: 20%;
  }
  .tag-box .wrap .tag-body {
    width: 80%;
    padding: 10px 40px;
    border-left: 1px solid #D9D9D9;
  }
}

.feature .tag-box {
  border: 1px solid #D9D9D9;
}
.feature .card-list {
  margin-top: 4em;
}
.feature .card-wrap {
  margin-right: -17px;
  margin-left: -17px;
}

/* ------------------------------
　　観光の基本情報
------------------------------ */
.first .section-top {
  padding: 5vw 0;
}
.first .section-top--gold {
  background: rgba(227, 225, 198, 0.3);
}
.first .section-top .description p {
  text-align: center;
  font-size: 14px;
  color: #555;
  margin: 1em 0 3em;
}
.first .section-title {
  font-size: 26x;
  color: #816700;
  font-weight: bold;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .first .section-title {
    font-size: 24px;
  }
}

/* ------------------------------
　　メイン
------------------------------ */
.sec-first_main {
  padding-bottom: 3vw;
}
.sec-first_main .info-text {
  text-align: center;
  margin: 2em 0;
  font-weight: 500;
}

/* ------------------------------
　　琴平町ってどんなところ？
------------------------------ */
@media screen and (max-width: 768px) {
  .sec-first_about .about-wrap {
    margin: 0 auto;
    width: 80%;
  }
}
@media print, screen and (min-width: 768px) {
  .sec-first_about .about-wrap {
    display: flex;
    flex-wrap: wrap;
    margin-left: -10px;
    margin-right: -10px;
  }
  .sec-first_about .about-wrap .about-item {
    padding: 10px;
    width: 33.3333333333%;
  }
}
.sec-first_about .about-wrap .about-item .card-body {
  padding: 0 1em;
}
.sec-first_about .about-wrap .about-item .card-body .title {
  font-weight: bold;
  font-size: 20px;
}
.sec-first_about .about-wrap .about-item .card-body .text {
  margin-top: 1em;
  font-size: 14px;
  color: #555;
}
.sec-first_about .about-wrap .about-item .card-body .text-link {
  margin-top: 1.5em;
}
.sec-first_about .about-wrap .about-item .card-body .text-link li {
  list-style: none;
  font-weight: bold;
  font-size: 16px;
}
.sec-first_about .about-wrap .about-item .card-body .text-link li a {
  text-decoration: underline;
  color: #0F65D5;
}
.sec-first_about .about-wrap .about-item .card-body .text-link li a:hover {
  text-decoration: none;
}
@media screen and (max-width: 768px) {
  .sec-first_about .about-wrap .about-item {
    margin-bottom: 3em;
  }
  .sec-first_about .about-wrap .about-item .card-body .text-link {
    margin-top: 1em;
  }
}

/* ------------------------------
　　まず行きたい、琴平の定番スポット
------------------------------ */
.sec-first_spot .spot-wrap {
  display: flex;
  flex-wrap: wrap;
  margin-left: -10px;
  margin-right: -10px;
}
.sec-first_spot .spot-wrap .spot-item {
  width: 50%;
  padding: 10px;
}
.sec-first_spot .spot-wrap .spot-item .inner {
  height: 100%;
  background: #fff;
}
.sec-first_spot .spot-wrap .spot-item .card {
  gap: 0;
}
.sec-first_spot .spot-wrap .spot-item .card .card-body {
  padding: 1em 1.5em 1.5em;
}
.sec-first_spot .spot-wrap .spot-item .card .title {
  font-size: 16px;
  font-weight: bold;
  color: #000;
  line-height: 1.5;
}
.sec-first_spot .spot-wrap .spot-item .card .copy {
  color: #816700;
  margin: 0.5em 0;
  line-height: 1.5;
  font-weight: bold;
  font-size: 14px;
}
.sec-first_spot .spot-wrap .spot-item .card .text {
  color: #555;
  font-size: 14px;
  line-height: 1.5;
}
@media print, screen and (min-width: 768px) {
  .sec-first_spot .spot-wrap {
    margin-left: -20px;
    margin-right: -20px;
  }
  .sec-first_spot .spot-wrap .spot-item {
    width: 33.3333333333%;
    padding: 20px;
  }
}

/* ------------------------------
　　目的にあわせて、もっと琴平を楽しむ
------------------------------ */
.sec-first_goal .goal-wrap {
  display: flex;
  flex-wrap: wrap;
  margin-left: -10px;
  margin-right: -10px;
}
.sec-first_goal .goal-wrap .goal-item {
  width: 50%;
  padding: 10px;
}
.sec-first_goal .goal-wrap .goal-item .card {
  height: 100%;
  background: #fff;
  border: 1px solid #E3E1C6;
  padding: 1em 1.5em;
  height: 100%;
}
.sec-first_goal .goal-wrap .goal-item .card dl dt {
  font-weight: bold;
  font-size: 18px;
  color: #816700;
}
.sec-first_goal .goal-wrap .goal-item .card dl dd {
  margin-top: 0.5em;
  font-size: 14px;
  color: #333;
}
@media print, screen and (min-width: 768px) {
  .sec-first_goal .goal-wrap {
    margin-left: -15px;
    margin-right: -15px;
  }
  .sec-first_goal .goal-wrap .goal-item {
    width: 33.3333333333%;
    padding: 15px;
  }
}

/* ------------------------------
　　交通アクセス
------------------------------ */
/* ===== ACCESS BLOCKS ===== */
.access-block {
  background: var(--color-white);
  border: 1px solid var(--color-border-light);
  padding: 1em;
  margin-bottom: 24px;
  transition: var(--transition);
}

.access-block-header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
}

.access-block h3 {
  font-family: var(--font-serif);
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.access-block h4 {
  font-family: var(--font-serif);
  font-size: 0.95rem;
  font-weight: 600;
  margin: 20px 0 12px;
  letter-spacing: 0.03em;
  color: var(--color-text);
}

.access-block p {
  font-size: 0.85rem;
  color: var(--color-text-light);
  line-height: 1.85;
  margin-bottom: 8px;
}

/* ROUTE TABLE */
.route-table {
  width: 100%;
  border-collapse: collapse;
  margin: 16px 0;
}

.route-table th, .route-table td {
  padding: 12px 16px;
  font-size: 0.83rem;
  text-align: left;
  border-bottom: 1px solid var(--color-border-light);
}

.route-table th {
  font-weight: 600;
  color: var(--color-text);
  background: var(--color-bg-warm);
  font-size: 0.76rem;
  letter-spacing: 0.04em;
}

.route-table td {
  color: var(--color-text-light);
}

.route-table .time-hl {
  font-weight: 600;
  color: var(--color-primary-dark);
}

.route-table .route-arrow {
  color: var(--color-text-muted);
  font-size: 0.75rem;
}

.access-table th,
.route-table th {
  background: #E3E1C6;
  border-bottom: 1px solid #E3E1C6;
}
.access-table td,
.route-table td {
  border-bottom: 1px solid #E3E1C6;
}

/* ------------------------------
　　共通
------------------------------ */
.access section {
  padding: 3em 0;
}
.access section p, .access section ul {
  margin-top: 1.5em;
}
.access section .nomargintop {
  margin-top: 0 !important;
}

.white-box {
  background: #fff;
  padding: 1.5em 2em;
  margin-top: 1em;
}
.white-box .strong {
  font-weight: bold;
}
.white-box .margin {
  margin-top: 3em;
}
.white-box .btn-wrap {
  margin: 1.5em 0 0;
}
.white-box table.simple-tbl {
  width: 100%;
  border-collapse: collapse;
  border-left: 1px solid #E3E1C6;
  margin: 0;
}
.white-box table.simple-tbl thead th {
  font-weight: 500;
}
.white-box table.simple-tbl th, .white-box table.simple-tbl td {
  border: 1px solid #E3E1C6;
  padding: 0.5em 1.5em;
  border-left: 0;
  text-align: center;
  color: #000;
  font-weight: 500;
}

h3.h3 {
  color: #000;
  font-weight: bold;
  font-size: 22px;
  margin-bottom: 0.5em;
  margin-top: 2.5em;
}

/* ------------------------------
　　エリアガイド
------------------------------ */
.map-area area:hover {
  opacity: 0.9;
}
.map-area img {
  max-width: 100%;
  height: auto;
}

.area .section-top {
  padding: 5vw 0;
}
.area .section-title {
  font-size: 26x;
  color: #816700;
  font-weight: bold;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .area .section-title {
    font-size: 24px;
  }
}
.area .category-nav {
  margin-top: 40px;
}

/* ------------------------------
　　area-list-wrap
------------------------------ */
.area-list-wrap {
  display: flex;
  flex-wrap: wrap;
  margin-top: 2.5em;
}
.area-list-wrap .area-list-item {
  width: 50%;
}
.area-list-wrap .area-list-item ul li {
  font-size: 30px;
  font-weight: bold;
  margin-bottom: 0.5em;
}
.area-list-wrap .area-list-item ul li a {
  color: #0F65D5;
  text-decoration: underline;
}
.area-list-wrap .area-list-item ul li a:hover {
  text-decoration: none;
}

/* ------------------------------
　　琴平町ってどんなところ？
------------------------------ */
@media screen and (max-width: 768px) {
  .sec-first_about .about-wrap {
    margin: 0 auto;
    width: 80%;
  }
}
@media print, screen and (min-width: 768px) {
  .sec-first_about .about-wrap {
    display: flex;
    flex-wrap: wrap;
    margin-left: -10px;
    margin-right: -10px;
  }
  .sec-first_about .about-wrap .about-item {
    padding: 10px;
    width: 33.3333333333%;
  }
}
.sec-first_about .about-wrap .about-item .card-body {
  padding: 0 1em;
}
.sec-first_about .about-wrap .about-item .card-body .title {
  font-weight: bold;
  font-size: 20px;
}
.sec-first_about .about-wrap .about-item .card-body .text {
  margin-top: 1em;
  font-size: 14px;
  color: #555;
}
.sec-first_about .about-wrap .about-item .card-body .text-link {
  margin-top: 1.5em;
}
.sec-first_about .about-wrap .about-item .card-body .text-link li {
  list-style: none;
  font-weight: bold;
  font-size: 16px;
}
.sec-first_about .about-wrap .about-item .card-body .text-link li a {
  text-decoration: underline;
  color: #0F65D5;
}
.sec-first_about .about-wrap .about-item .card-body .text-link li a:hover {
  text-decoration: none;
}
@media screen and (max-width: 768px) {
  .sec-first_about .about-wrap .about-item {
    margin-bottom: 3em;
  }
  .sec-first_about .about-wrap .about-item .card-body .text-link {
    margin-top: 1em;
  }
}

/* ------------------------------
　　まず行きたい、琴平の定番スポット
------------------------------ */
.sec-first_spot .spot-wrap {
  display: flex;
  flex-wrap: wrap;
  margin-left: -10px;
  margin-right: -10px;
}
.sec-first_spot .spot-wrap .spot-item {
  width: 50%;
  padding: 10px;
}
.sec-first_spot .spot-wrap .spot-item .inner {
  height: 100%;
  background: #fff;
}
.sec-first_spot .spot-wrap .spot-item .card {
  gap: 0;
}
.sec-first_spot .spot-wrap .spot-item .card .card-body {
  padding: 1em 1.5em 1.5em;
}
.sec-first_spot .spot-wrap .spot-item .card .title {
  font-size: 16px;
  font-weight: bold;
  color: #000;
  line-height: 1.5;
}
.sec-first_spot .spot-wrap .spot-item .card .copy {
  color: #816700;
  margin: 0.5em 0;
  line-height: 1.5;
  font-weight: bold;
  font-size: 14px;
}
.sec-first_spot .spot-wrap .spot-item .card .text {
  color: #555;
  font-size: 14px;
  line-height: 1.5;
}
@media print, screen and (min-width: 768px) {
  .sec-first_spot .spot-wrap {
    margin-left: -20px;
    margin-right: -20px;
  }
  .sec-first_spot .spot-wrap .spot-item {
    width: 33.3333333333%;
    padding: 20px;
  }
}

/* ------------------------------
　　目的にあわせて、もっと琴平を楽しむ
------------------------------ */
.sec-first_goal .goal-wrap {
  display: flex;
  flex-wrap: wrap;
  margin-left: -10px;
  margin-right: -10px;
}
.sec-first_goal .goal-wrap .goal-item {
  width: 50%;
  padding: 10px;
}
.sec-first_goal .goal-wrap .goal-item .card {
  height: 100%;
  background: #fff;
  border: 1px solid #E3E1C6;
  padding: 1em 1.5em;
  height: 100%;
}
.sec-first_goal .goal-wrap .goal-item .card dl dt {
  font-weight: bold;
  font-size: 18px;
  color: #816700;
}
.sec-first_goal .goal-wrap .goal-item .card dl dd {
  margin-top: 0.5em;
  font-size: 14px;
  color: #333;
}
@media print, screen and (min-width: 768px) {
  .sec-first_goal .goal-wrap {
    margin-left: -15px;
    margin-right: -15px;
  }
  .sec-first_goal .goal-wrap .goal-item {
    width: 33.3333333333%;
    padding: 15px;
  }
}

/* ------------------------------
　　お知らせ
------------------------------ */
.news-contents {
  border-top: 1px solid #ddd;
}
@media print, screen and (min-width: 768px) {
  .news-contents .news-item {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
  }
  .news-contents .news-item .date {
    width: 8em;
  }
  .news-contents .news-item .title {
    width: calc(100% - 8em);
  }
}
.news-contents .news-item {
  border-bottom: 1px solid #ddd;
  padding: 1.8em 1em;
}
.news-contents .news-item .date {
  font-size: 16px;
  color: #727272;
}
.news-contents .news-item .title {
  font-size: 16px;
  color: #000;
}
.news-contents .news-item .title a {
  display: block;
}

/* ------------------------------
　　会員専用ページ
------------------------------ */
.member-contents {
  border-top: 1px solid #ddd;
}
.member-contents .member-item {
  border-bottom: 1px solid #ddd;
  padding: 1.8em 1em;
}
.member-contents .member-item .summary {
  font-size: 16px;
  color: #727272;
}
.member-contents .member-item .title {
  font-size: 18px;
  color: #000;
  font-weight: bold;
}
.member-contents .member-item .title a {
  display: block;
}

/* ------------------------------
　　ブログ
------------------------------ */
/* ブログ一覧
------------------------------ */
.blog-wrap .blog-card__image {
  aspect-ratio: 396/230;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
.blog-wrap .blog-card__content .date {
  font-size: 17px;
}
.blog-wrap .blog-card__title {
  font-size: 22px;
  font-weight: bold;
}

@media screen and (max-width: 768px) {
  .blog-wrap {
    width: 80%;
    margin: 0 auto;
  }
}
@media print, screen and (min-width: 768px) {
  .blog-wrap {
    display: flex;
    flex-wrap: wrap;
    margin-left: -10px;
    margin-right: -10px;
  }
  .blog-wrap .blog-item {
    width: 33.3333333333%;
    padding: 10px;
  }
}
/* ------------------------------
　　トップページ
------------------------------ */
.section-top {
  padding: 6.6vw 0;
}

.top-title {
  font-size: 48px;
  color: #816700;
  font-family: "Zen Old Mincho", serif;
  letter-spacing: 0.05em;
  font-weight: normal;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 768px) {
  .top-title {
    font-size: 36px;
  }
}

/* ------------------------------
　　スライダー
------------------------------ */
/* --- キービジュアル --- */
.sec-keyv {
  position: relative;
  width: 100%;
  overflow: hidden;
  background-color: #fff;
  padding: 0 0 50px; /* 下部にページネーション用の余白(60px)を確保 */
}

.keyv-swiper {
  width: 100%;
  padding-bottom: 25px !important;
}
.keyv-swiper .swiper-wrapper {
  transition-timing-function: linear;
}
.keyv-swiper .swiper-slide {
  width: auto;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  margin-right: 20px !important;
}
.keyv-swiper .img-wrap {
  display: block;
}
.keyv-swiper .img-wrap img {
  height: 400px;
  width: auto;
  display: block;
}
.keyv-swiper .text-wrap {
  margin-top: 20px;
  padding: 0 10px;
  width: 0;
  min-width: 100%;
  box-sizing: border-box;
}
.keyv-swiper .slide-title {
  font-size: 1.2rem;
  font-weight: bold;
  margin: 0 0 10px 0;
  letter-spacing: 0.05em;
}
.keyv-swiper .slide-desc {
  font-size: 0.9rem;
  color: #333;
  margin: 0 0 15px 0;
  line-height: 1.5;
}
.keyv-swiper .swiper-pagination.custom-pagination {
  bottom: 0; /* スライダー下部からの位置 */
  display: flex;
  justify-content: center;
  align-items: center;
}
.keyv-swiper .swiper-pagination-bullet {
  width: 120px;
  height: 3px;
  border-radius: 0; /* 丸みを無くす */
  background-color: #E3E1C6; /* ご指定のカラー */
  opacity: 1; /* Swiperデフォルトの半透明を解除 */
  margin: 0 !important; /* Swiperデフォルトのmarginを無効化しgapで管理 */
  transition: background-color 0.3s ease; /* 色が変わるときのフワッとしたアニメーション */
}
.keyv-swiper .swiper-pagination-bullet-active {
  background-color: #816700; /* ご指定のアクティブカラー */
}

/* イベント */
.event-wrap,
.special-wrap {
  margin-bottom: 60px;
  position: relative;
  width: 100%; /* ブラウザ幅いっぱい */
  margin-left: auto;
  margin-right: auto;
  padding: 40px 0; /* 上下の余白 */
}
.event-wrap .swiper-wrapper,
.special-wrap .swiper-wrapper {
  transition-timing-function: linear;
}
.event-wrap .swiper-pagination,
.special-wrap .swiper-pagination {
  bottom: 0 !important;
  display: flex;
  justify-content: center;
}
.event-wrap .swiper-pagination-bullet,
.special-wrap .swiper-pagination-bullet {
  width: 120px;
  height: 3px;
  background-color: #fff;
  opacity: 1;
  border-radius: 0;
  margin: 0 !important; /* 余白なし */
}
.event-wrap .swiper-pagination-bullet.swiper-pagination-bullet-active,
.special-wrap .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background-color: #816700;
}

.event-slider,
.special-slider {
  width: 100%;
  padding: 0 0 50px; /* 下部にページネーション用のスペース確保 */
}

.event-card,
.special-card {
  display: block;
  background-color: #fff;
  text-decoration: none;
  color: #000;
  transition: opacity 0.3s;
  height: 100%;
}
.event-card:hover,
.special-card:hover {
  opacity: 0.8;
}
.event-card__image,
.special-card__image {
  width: 100%;
  aspect-ratio: 361/203;
  overflow: hidden;
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.event-card__content,
.special-card__content {
  padding: 16px 9px;
}
.event-card__title,
.special-card__title {
  font-weight: 500;
  font-size: 16px;
  line-height: 1.5;
  margin-bottom: 10px;
  letter-spacing: 0.05em;
}

@media screen and (max-width: 768px) {
  .event-slider,
  .special-slider {
    padding: 0 30px;
  }
}
/* ------------------------------
　　お知らせ
------------------------------ */
.sec-news {
  background: url("../img/circle.svg") no-repeat;
  background-position: top -19.2vw left -6.9vw;
  background-size: 43.7vw auto;
}
.sec-news .news-title .top-title {
  font-size: 36px;
}
@media screen and (max-width: 768px) {
  .sec-news .news-title .top-title {
    font-size: 30px;
  }
}
@media screen and (max-width: 768px) {
  .sec-news .news-wrap {
    margin-bottom: 2em;
  }
}
@media print, screen and (min-width: 768px) {
  .sec-news .news-wrap {
    display: flex;
    flex-wrap: wrap;
  }
  .sec-news .news-wrap .news-title {
    width: 25%;
  }
  .sec-news .news-wrap .news-contents {
    width: 75%;
  }
}
.sec-news .news-contents {
  border-top: none;
}
.sec-news .news-contents .news-item {
  border-bottom: none;
  padding: 0;
  margin-bottom: 2em;
}

/* ------------------------------
　　初めて訪れる方へ
------------------------------ */
.sec-first {
  background: url("../img/top/bg_first.jpg") no-repeat center center;
  background-size: cover;
  text-align: center;
  padding: 10vw 0 8vw;
}
.sec-first .first-title .top-title {
  color: #fff;
}
.sec-first .description {
  color: #fff;
  margin-top: 1em;
}

/* ------------------------------
　　イベント
------------------------------ */
.sec-event {
  background: url("../img/circle.svg") no-repeat;
  background-position: top -10.7vw right -10.7vw;
  background-size: 58vw auto;
  padding: 4vw 0 3vw;
}
.sec-event .sec-title {
  text-align: center;
}
.sec-event .swiper-pagination-bullet {
  background: #E3E1C6;
}
.sec-event .event-wrap {
  margin-bottom: 0;
}
.sec-event .event-card {
  background: none;
}
.sec-event .event-card__content {
  padding: 0 0 40px;
}
.sec-event .event-card__content .event-card-date {
  display: none;
}
.sec-event .event-card__content .event-card-time {
  font-size: 17px;
}
.sec-event .event-card__image {
  aspect-ratio: 350/230;
}
.sec-event .event-card__title {
  font-size: 17px;
  font-weight: bold;
}
.sec-event .banner-wrap {
  display: flex;
  flex-wrap: wrap;
}
.sec-event .banner-wrap .banner-item {
  width: 50%;
  padding: 12px;
}
@media print, screen and (min-width: 768px) {
  .sec-event .banner-wrap {
    width: 62%;
    margin: 0 auto;
  }
}

/* ------------------------------
　　特集
------------------------------ */
.sec-special {
  background: #E3E1C6;
  padding: 4vw 0 2vw;
}
.sec-special .sec-title {
  text-align: center;
  margin-bottom: 1em;
}
.sec-special .special-wrap .special-slider {
  padding-bottom: 90px;
}
.sec-special .special-wrap .special-card {
  background: #fff;
}
.sec-special .special-wrap .special-card__content {
  padding: 0;
}
.sec-special .special-wrap .special-card__title {
  padding: 0 25px 20px;
  font-size: 22px;
  margin-bottom: 0;
}
.sec-special .special-wrap .special-card__image {
  aspect-ratio: 550/350;
}
.sec-special .special-wrap .special-card__tag {
  border-top: 1px solid #E3E1C6;
  padding: 20px 25px;
}
.sec-special .special-wrap .special-card__tag .taglabel {
  border-radius: 50px;
  padding: 3px 10px 5px;
  border: 1px solid #000;
  display: inline-block;
  margin-right: 10px;
  font-size: 14px;
}

/* ------------------------------
　　スポット・体験
------------------------------ */
.sec-spot .sec-title {
  text-align: center;
  margin-bottom: 3em;
}
.sec-spot .btn-wrap {
  margin-top: 60px;
}

/* ------------------------------
　　スタッフブログ
------------------------------ */
.sec-blog .sec-title {
  text-align: center;
  margin-bottom: 2em;
}

/* ------------------------------
　　ピックアップ
------------------------------ */
.sec-pickup {
  background: url("../img/circle.svg") no-repeat, url("../img/circle.svg") no-repeat;
  background-position: top 0 left -35vw, top 40vw right -34.7vw;
  background-size: 58.5vw auto, 58.5vw auto;
}
@media screen and (max-width: 768px) {
  .sec-pickup {
    background-position: top 0 left -35vw, bottom 40vw right -34.7vw;
  }
}
.sec-pickup .pickup-item {
  display: grid;
  /* 基本：左がテキスト幅(428px)、右が画像幅(600px) */
  grid-template-columns: 50% 50%;
  grid-template-rows: 1fr auto auto 1fr;
  justify-content: space-between;
  margin-bottom: 9vw;
}
.sec-pickup .pickup-item__title {
  grid-column: 1/2; /* 左側に配置 */
  grid-row: 2/3;
  margin-bottom: 30px;
  line-height: 1.2;
  padding: 0 60px;
}
@media screen and (max-width: 768px) {
  .sec-pickup .pickup-item__title {
    padding: 0;
    margin: 30px 0 0;
  }
}
.sec-pickup .pickup-item__content {
  grid-column: 1/2; /* 左側に配置 */
  grid-row: 3/4;
  padding: 0 60px;
}
@media screen and (max-width: 768px) {
  .sec-pickup .pickup-item__content {
    padding: 0;
  }
}
@media screen and (max-width: 768px) {
  .sec-pickup .pickup-item__text br {
    display: none;
  }
}
.sec-pickup .pickup-item__image {
  grid-column: 2/3; /* 右側に配置 */
  grid-row: 1/5;
  position: relative;
}
.sec-pickup .pickup-item__btn {
  margin-top: 2em;
  text-align: right;
}
.sec-pickup .pickup-item {
  /* --- ★リバース時の配置入れ替え --- */
}
.sec-pickup .pickup-item.-reverse {
  grid-template-columns: 50% 50%;
}
.sec-pickup .pickup-item.-reverse .pickup-item__title,
.sec-pickup .pickup-item.-reverse .pickup-item__content {
  grid-column: 2/3; /* テキスト群を右側へ移動！ */
}
.sec-pickup .pickup-item.-reverse .pickup-item__image {
  grid-column: 1/2; /* 画像を左側へ移動！ */
}
.sec-pickup .pickup-item.-last {
  margin-bottom: 0;
}
@media (max-width: 1100px) {
  .sec-pickup .pickup-item {
    display: flex;
    flex-direction: column;
    gap: 30px;
    align-items: center;
    text-align: center;
  }
  .sec-pickup__title {
    margin-bottom: 0;
  }
  .sec-pickup__image {
    width: 80%;
    max-width: 600px;
    margin: 0 auto;
  }
  .sec-pickup__content {
    width: 100%;
  }
  .sec-pickup__text {
    margin-bottom: 30px;
  }
}

/* ------------------------------
　　よくあるご質問
------------------------------ */
.sec-faq {
  padding: 3vw 0;
}
.sec-faq .detail__section-title {
  font-size: 36px;
  color: #816700;
  font-family: "Zen Old Mincho", serif;
  letter-spacing: 0.05em;
  font-weight: normal;
  letter-spacing: 0.1em;
  text-align: center;
}

/* ------------------------------
　　バナー
------------------------------ */
.sec-banner .banner-wrap {
  display: flex;
  flex-wrap: wrap;
  margin-left: -15px;
  margin-right: -15px;
}
.sec-banner .banner-wrap .banner-item {
  width: 50%;
  padding: 15px;
}
@media print, screen and (min-width: 768px) {
  .sec-banner .banner-wrap .banner-item {
    width: 25%;
  }
}