@charset "UTF-8";
:root {
  --vk-color-text-body: #000;
  /* 既定文色を #000 に */
  --vk-color-text-link-hover: #A09B57;
  --vk-color-primary:#A09B57; }

dl + h1, dl + h2, dl + h3, dl + h4, dl + h5, dl + h6, ol + h1, ol + h2, ol + h3, ol + h4, ol + h5, ol + h6, p + h1, p + h2, p + h3, p + h4, p + h5, p + h6, table + h1, table + h2, table + h3, table + h4, table + h5, table + h6, ul + h1, ul + h2, ul + h3, ul + h4, ul + h5, ul + h6 {
  margin-top: 3em; }

.card {
  border-radius: 0 !important; }

.vk_post_imgOuter, .vk_post {
  border: none; }

#mega-menu-wrap-global-nav #mega-menu-global-nav > li.mega-menu-item.mega-current-menu-item > a.mega-menu-link, #mega-menu-wrap-global-nav #mega-menu-global-nav > li.mega-menu-item.mega-current-menu-ancestor > a.mega-menu-link, #mega-menu-wrap-global-nav #mega-menu-global-nav > li.mega-menu-item.mega-current-page-ancestor > a.mega-menu-link {
  font-weight: 800 !important;
  color: #716C2B; }
  @media (max-width: 991.98px) {
    #mega-menu-wrap-global-nav #mega-menu-global-nav > li.mega-menu-item.mega-current-menu-item > a.mega-menu-link, #mega-menu-wrap-global-nav #mega-menu-global-nav > li.mega-menu-item.mega-current-menu-ancestor > a.mega-menu-link, #mega-menu-wrap-global-nav #mega-menu-global-nav > li.mega-menu-item.mega-current-page-ancestor > a.mega-menu-link {
      font-weight: 400 !important;
      color: #fff !important; } }

.card-img-overlay span {
  background-color: #A09B57 !important; }

.small {
  font-size: 90%; }

html {
  font-size: 62.5%; }

.serif {
  font-family: "Noto Serif JP", serif; }

h1, h2, h3, h4 {
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  padding: 0;
  border: none;
  color: #000 !important; }
  h1::after, h1::before, h2::after, h2::before, h3::after, h3::before, h4::after, h4::before {
    content: none !important; }

p, li {
  font-weight: 400;
  font-family: "Noto Sans JP", serif;
  font-size: 1.6rem;
  line-height: 2; }
  @media (max-width: 991.98px) {
    p, li {
      line-height: 1.6; } }

li {
  margin: 0; }

li a, p a {
  font-weight: bold;
  text-decoration: none; }

a {
  color: #716C2B;
  text-decoration: none; }

table td, table th {
  font-size: 1.5rem !important;
  line-height: 2;
  font-family: "Noto Sans JP", serif; }
table a {
  font-family: "Noto Sans JP", serif !important; }

.border {
  border: 1px solid #000; }

ul.no-disc li {
  list-style: none; }

.bg-light-olive {
  background-color: #EDECE1; }

.br-sp {
  display: none; }
  @media (max-width: 575.98px) {
    .br-sp {
      display: block; } }

input {
  border-radius: 0 !important;
  border: solid 1px #A09B57 !important;
  font-size: 1.6rem !important; }

html, body {
  overflow-x: inherit !important; }

.image-group {
  display: flex;
  gap: 2rem; }
  @media (max-width: 991.98px) {
    .image-group {
      display: block; } }

.wp-block-image figcaption {
  font-size: 1.4rem !important;
  margin-top: 1rem;
  line-height: 1.6; }

.is-layout-grid {
  margin-top: 1rem !important;
  margin-bottom: 3rem !important; }
  .is-layout-grid figure img {
    width: 100%; }
  @media (max-width: 767.98px) {
    .is-layout-grid {
      grid-template-columns: repeat(1, minmax(0, 1fr)) !important; } }

.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: 100% !important; }

.wp-embed-responsive .wp-has-aspect-ratio iframe {
  height: 100% !important; }

.d-lg-flex {
  margin-top: 0 !important; }

:root {
  --header-total-h: 0px; }

/* 初期値（安全） */
main {
  padding-top: var(--header-total-h) !important;
  min-height: 70vh;
  margin-top: 0 !important; }

main.top-text-area {
  padding-top: 0 !important; }

#site-header {
  position: fixed !important;
  background: #fff; }

body.header_scrolled .site-header {
  box-shadow: none !important; }
body.header_scrolled .site-header-logo {
  display: flex; }
@media (min-width: 992px) {
  body.home .site-header-logo {
    font-size: 3vw;
    top: 3rem;
    width: 110px !important; }
    body.home .site-header-logo .mv-logo-en {
      width: 6vw; } }

#vk-mobile-nav-menu-btn {
  display: none; }

.site-header {
  width: 100%;
  overflow: visible;
  z-index: 1000;
  position: relative;
  align-items: center;
  box-shadow: none; }
  .site-header-logo {
    white-space: nowrap;
    line-height: var(--vk-line-height-low);
    position: fixed;
    top: 3rem;
    left: 0;
    z-index: 10000;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    font-size: 3.5rem;
    transform: translateY(var(--logo-shift, 0px));
    /* JS から上方向に押し上げる */
    will-change: transform;
    position: fixed;
    top: 0 !important;
    padding: 1rem 1.4rem 0rem !important; }
    @media (max-width: 991.98px) {
      .site-header-logo {
        position: relative;
        font-size: 2rem;
        top: initial;
        left: inherit;
        padding: 2.4rem;
        display: inline-flex;
        align-items: start;
        margin-bottom: 0 !important; }
        .site-header-logo a {
          display: flex;
          flex-direction: column; } }
    .site-header-logo .mv-logo-ja {
      writing-mode: vertical-lr;
      text-orientation: upright;
      font-family: 'Noto Serif JP', serif;
      font-size: 1em;
      font-weight: 500;
      letter-spacing: 0.1em;
      line-height: 1;
      padding: 0 0 3em 0; }
      @media (max-width: 991.98px) {
        .site-header-logo .mv-logo-ja {
          writing-mode: initial;
          padding: 0;
          margin-bottom: 1rem; } }
    .site-header-logo .mv-logo-en {
      transform: rotate(-90deg);
      font-size: 0.35em;
      font-weight: 400;
      line-height: 1.4;
      width: 100px;
      font-family: 'Noto Sans JP', serif;
      transform-origin: center; }
      @media (max-width: 991.98px) {
        .site-header-logo .mv-logo-en {
          transform: initial;
          width: auto;
          text-align: left; } }
  .site-header-container {
    justify-content: flex-end; }
    @media (max-width: 991.98px) {
      .site-header-container {
        display: block;
        overflow: hidden; } }

/*.site-header--layout--center {
	.site-header-logo {
		width:fit-content;
		margin-left:auto;
		margin-right:auto;
	}
    @media ( min-width: $lg-min ){
        .site-header-logo {
            text-align: center;
        }
    }
}*/
@media (max-width: 991.98px) {
  .site-header--layout--nav-float .site-header-logo {
    padding: 1rem; } }

.site-header-logo {
  margin-right: 0;
  width: auto;
  white-space: nowrap;
  line-height: var(--vk-line-height-low);
  position: fixed;
  top: 3rem;
  left: 0;
  z-index: 10000;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  font-size: 3.5rem;
  transform: translateY(var(--logo-shift, 0px));
  /* JS から上方向に押し上げる */
  will-change: transform; }
  @media (max-width: 991.98px) {
    .site-header-logo {
      font-size: 2rem;
      top: initial;
      left: inherit;
      padding: 2.4rem;
      display: inline-flex;
      align-items: start;
      margin-top: 10px; }
      .site-header-logo a {
        display: flex;
        flex-direction: column; } }
  @media (min-width: 992px) {
    .site-header-logo {
      position: sticky;
      padding: 2.4rem !important; } }
  .site-header-logo .mv-logo-ja {
    writing-mode: vertical-lr;
    text-orientation: upright;
    font-family: 'Noto Serif JP', serif;
    font-size: 0.8em;
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1;
    padding: 0 0 3em 0; }
    @media (max-width: 991.98px) {
      .site-header-logo .mv-logo-ja {
        writing-mode: initial;
        padding: 0;
        margin-bottom: 0.4rem; } }
  .site-header-logo .mv-logo-en {
    transform: rotate(-90deg);
    font-size: 0.35em;
    font-weight: 400;
    line-height: 1.4;
    width: 100px;
    font-family: 'Noto Sans JP', serif;
    transform-origin: center; }
    @media (max-width: 991.98px) {
      .site-header-logo .mv-logo-en {
        transform: initial;
        width: auto;
        text-align: left; } }
  .site-header-logo img {
    margin-left: 0; }
  .site-header-logo a {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: fit-content; }
    @media (max-width: 991.98px) {
      .site-header-logo a {
        align-items: baseline; } }

/*.site-header--layout--sub-active {
    @media ( min-width: $lg-min ){
        .site-header-logo {
            float:left;
        }
    }
}*/
@media (min-width: 992px) {
  .header-bar {
    padding-left: 110px !important; }

  .header-logo {
    width: 110px !important; }

  .main-wrapper {
    width: calc(100vw - 110px) !important; }

  .mainv_wrapper {
    padding-left: 0 !important; } }
@media (max-width: 1199.98px) {
  .breadcrumbs .l-container {
    padding: 2% 5%; } }

.event-title div {
  font-family: "Noto Sans JP", serif !important; }

.mc-main .my-calendar-date-switcher .mc-date-switcher > div > * {
  margin: 0 0.5rem;
  border-radius: 0 !important; }

.mc-nav-disabled {
  display: inline-block;
  padding: .45em .9em;
  margin: 0 .25em;
  color: #9aa0a6;
  background: #f1f3f4;
  border: 1px solid #e0e3e7;
  border-radius: 4px;
  cursor: not-allowed;
  opacity: .85;
  user-select: none;
  pointer-events: none;
  /* 念のため */ }

.mc-nav-disabled.mc-prev {
  margin-right: .5em; }

.mc-nav-disabled.mc-next {
  margin-left: .5em; }

/* =========================
   Header Layout (logo + status / utility + gnav)
   ========================= */
.header-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-left: 10vw;
  /* 左：ロゴ + 開室情報 */
  /* 右：上=サブナビ / 下=グロナビ */ }
  @media (max-width: 991.98px) {
    .header-bar {
      padding-left: 0;
      align-items: center;
      gap: 12px; } }
  .header-bar__left {
    display: flex;
    align-items: center;
    gap: 24px; }
    .header-bar__left .site-header-logo {
      margin: 0; }
    .header-bar__left .header-bar__status {
      margin: 0; }
    @media (max-width: 991.98px) {
      .header-bar__left {
        flex-wrap: wrap;
        gap: 12px; } }
  .header-bar__right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px; }
    @media (max-width: 991.98px) {
      .header-bar__right {
        flex-direction: inherit;
        align-items: center !important; } }
    .header-bar__right .utility-upper {
      font-size: 13px;
      line-height: 1.6;
      color: #000;
      text-align: right; }
    @media (max-width: 991.98px) {
      .header-bar__right .utility-lower {
        display: none; } }
    .header-bar__right .utility-lower .header-utility .utility-list {
      position: relative;
      display: flex;
      gap: .2rem;
      margin: 0;
      padding: 0;
      list-style: none;
      align-items: center; }
      .header-bar__right .utility-lower .header-utility .utility-list .menu-item-gtranslate {
        margin-right: 2rem;
        margin-top: -10px;
        position: absolute;
        top: 20px;
        left: -180px;
        z-index: 99; }
        .header-bar__right .utility-lower .header-utility .utility-list .menu-item-gtranslate .gt_float_switcher {
          font-size: 1.4rem !important; }
          .header-bar__right .utility-lower .header-utility .utility-list .menu-item-gtranslate .gt_float_switcher img {
            width: 25px !important; }
          .header-bar__right .utility-lower .header-utility .utility-list .menu-item-gtranslate .gt_float_switcher .gt-current-lang img {
            width: 25px !important; }
          .header-bar__right .utility-lower .header-utility .utility-list .menu-item-gtranslate .gt_float_switcher .gt-current-lang .gt-lang-code {
            font-size: 1.4rem; }
      .header-bar__right .utility-lower .header-utility .utility-list > li > a {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 80px;
        height: 70px;
        text-align: center;
        padding: .6rem .8rem;
        text-decoration: none;
        font-size: 1.2rem;
        line-height: 1.4;
        background: #A09B57;
        color: #fff; }
        .header-bar__right .utility-lower .header-utility .utility-list > li > a:hover {
          background-color: #716C2B; }
        .header-bar__right .utility-lower .header-utility .utility-list > li > a i {
          font-size: 22px;
          margin-bottom: 6px;
          margin-right: 0; }
        .header-bar__right .utility-lower .header-utility .utility-list > li > a:hover {
          opacity: .9; }
    .header-bar__right .header-bar__gnav {
      padding-right: 2rem;
      width: 100%; }
      .header-bar__right .header-bar__gnav .mega-menu-wrap,
      .header-bar__right .header-bar__gnav #global-nav {
        width: 100%; }
      @media (max-width: 991.98px) {
        .header-bar__right .header-bar__gnav {
          padding-right: 0; } }
    @media (max-width: 991.98px) {
      .header-bar__right {
        align-items: flex-start; }
        .header-bar__right .utility-upper {
          text-align: left; } }

/* =========================
   Header Status (開室時間) - 独立ブロック
   ========================= */
.header-bar__status {
  font-family: 'Noto Serif JP', serif;
  flex: 0 0 auto;
  margin: 0;
  width: auto;
  max-width: none; }
  .header-bar__status .today-status {
    display: flex;
    align-items: center;
    margin: 0;
    padding: .8rem 1.2rem;
    font-size: 1.4rem;
    background-color: #A09B57;
    color: #fff; }
    @media (max-width: 1199.98px) {
      .header-bar__status .today-status {
        display: block; } }
    @media (max-width: 991.98px) {
      .header-bar__status .today-status {
        height: 100px;
        display: flex;
        padding: .8rem 2rem; } }
    @media (max-width: 575.98px) {
      .header-bar__status .today-status {
        display: flex;
        padding: .8rem 1.2rem; } }
    .header-bar__status .today-status .top-date {
      border-right: 1px solid #fff;
      margin-right: 12px; }
      @media (max-width: 1199.98px) {
        .header-bar__status .today-status .top-date {
          margin-bottom: .5rem;
          border-right: none; } }
      @media (max-width: 991.98px) {
        .header-bar__status .today-status .top-date {
          border-right: 1px solid #fff;
          margin-right: 12px; } }
      .header-bar__status .today-status .top-date .top-day {
        font-size: 2.0rem; }
    .header-bar__status .today-status .top-room {
      margin-top: 0.5rem;
      margin-bottom: 0.5rem;
      display: flex;
      align-items: center;
      gap: 8px; }
      .header-bar__status .today-status .top-room span {
        font-size: 1.6rem;
        margin: 0; }
      .header-bar__status .today-status .top-room .badge {
        background: #fff;
        color: #716C2B;
        padding: .5rem 1rem;
        font-size: 1.6rem; }

.anc-link {
  display: flex; }
  .anc-link li {
    width: 150px;
    list-style: none;
    border-bottom: 1px solid #A09B57;
    margin-right: 2rem; }
    .anc-link li:before {
      font: var(--fa-font-solid);
      content: "\f078" !important;
      margin-right: 1rem;
      font-size: 1.6rem;
      color: #A09B57; }

/* メガメニューのフォント */
/* 任意：SP時にヘッダー分だけ上を空けたい場合は値を入れる */
:root {
  --sp-header-h: 0px; }

/* =========== Mega Menu (global-nav) =========== */
@media (min-width: 768px) and (max-width: 1199.98px) {
  #mega-menu-wrap-global-nav #mega-menu-global-nav > li.mega-menu-item > a.mega-menu-link {
    font-size: 1.5rem; } }

#mega-menu-wrap-global-nav {
  font-family: 'Noto Serif JP', serif;
  background-color: transparent !important;
  /* ---- 装飾（既存仕様を踏襲） ---- */
  /* ===== Util buttons inside Mega Menu ===== */ }
  #mega-menu-wrap-global-nav .mega-menu-toggle .mega-toggle-blocks-left, #mega-menu-wrap-global-nav .mega-menu-toggle .mega-toggle-blocks-center {
    display: none !important; }
  @media (max-width: 991.98px) {
    #mega-menu-wrap-global-nav {
      font-family: "Noto Sans JP", serif !important; } }
  #mega-menu-wrap-global-nav .top-level-1 > a.mega-menu-link {
    padding: 0 1.5rem !important; }
    @media (max-width: 1280px) {
      #mega-menu-wrap-global-nav .top-level-1 > a.mega-menu-link {
        padding: 0 0.9rem !important; } }
    @media (max-width: 1199.98px) {
      #mega-menu-wrap-global-nav .top-level-1 > a.mega-menu-link {
        padding: 0 0.5rem !important; } }
    @media (max-width: 991.98px) {
      #mega-menu-wrap-global-nav .top-level-1 > a.mega-menu-link {
        padding: 0 1rem !important; } }
  #mega-menu-wrap-global-nav .top-level-1 > ul {
    background: #EDECE1 !important;
    z-index: 99999 !important;
    padding: 6rem 0 !important;
    box-shadow: 1px 10px 10px rgba(0, 0, 0, 0.05) !important; }
    @media (max-width: 991.98px) {
      #mega-menu-wrap-global-nav .top-level-1 > ul {
        background: #EDECE1 !important;
        padding: 0 !important;
        box-shadow: none !important; } }
    @media (max-width: 991.98px) {
      #mega-menu-wrap-global-nav .top-level-1 > ul > li {
        max-width: 95% !important; } }
    #mega-menu-wrap-global-nav .top-level-1 > ul > li > ul {
      display: flex !important;
      align-items: center !important; }
      #mega-menu-wrap-global-nav .top-level-1 > ul > li > ul .mega-menu-columns-4-of-12 h4 {
        font-size: 2.5rem !important;
        margin-bottom: 0 !important;
        font-weight: 500 !important; }
        #mega-menu-wrap-global-nav .top-level-1 > ul > li > ul .mega-menu-columns-4-of-12 h4:after {
          font: var(--fa-font-solid);
          content: "\f105" !important;
          margin-left: 4rem;
          font-size: 1.6rem; }
      @media (max-width: 991.98px) {
        #mega-menu-wrap-global-nav .top-level-1 > ul > li > ul .mega-menu-columns-4-of-12 {
          display: none !important; } }
  @media (max-width: 991.98px) {
    #mega-menu-wrap-global-nav .top-level-1 {
      border-bottom: 0.5px solid #D9D9D9 !important; } }
  #mega-menu-wrap-global-nav .top-level-2 {
    width: 50% !important;
    border-bottom: 1px solid #D9D9D9 !important;
    padding: 2rem 15px !important; }
    @media (max-width: 991.98px) {
      #mega-menu-wrap-global-nav .top-level-2 {
        width: 100% !important;
        padding: 1rem !important; } }
    #mega-menu-wrap-global-nav .top-level-2 > a {
      font-size: 2rem !important;
      color: #000 !important;
      font-weight: 500 !important; }
      @media (max-width: 1199.98px) {
        #mega-menu-wrap-global-nav .top-level-2 > a {
          font-size: 1.8rem !important; } }
      @media (max-width: 991.98px) {
        #mega-menu-wrap-global-nav .top-level-2 > a {
          font-size: 1.6rem !important; }
          #mega-menu-wrap-global-nav .top-level-2 > a:before {
            content: none !important; } }
    #mega-menu-wrap-global-nav .top-level-2 > ul.mega-sub-menu {
      padding-left: 0.8rem !important; }
      #mega-menu-wrap-global-nav .top-level-2 > ul.mega-sub-menu li {
        padding: .5rem 0 !important; }
        #mega-menu-wrap-global-nav .top-level-2 > ul.mega-sub-menu li a {
          color: #000 !important;
          font-size: 1.5rem !important; }
  #mega-menu-wrap-global-nav .mega-menu-item.util-group {
    border-bottom: none !important; }
    #mega-menu-wrap-global-nav .mega-menu-item.util-group > .utility-grid {
      display: grid !important;
      grid-template-columns: repeat(2, 40%) !important;
      /* 2列、幅40%ずつ */
      gap: 12px !important;
      justify-content: center !important;
      justify-items: center !important;
      padding: 2rem 0 0 !important;
      margin: 0 auto !important;
      background-color: #716C2B !important;
      box-shadow: none !important; }
      #mega-menu-wrap-global-nav .mega-menu-item.util-group > .utility-grid > li {
        list-style: none !important;
        padding: 0 !important;
        margin: 0 !important;
        width: 100%;
        /* li 自体はグリッドの幅に合わせる */ }
      #mega-menu-wrap-global-nav .mega-menu-item.util-group > .utility-grid > li > a.mega-menu-link {
        display: block !important;
        width: 100% !important;
        /* li 幅いっぱいに広げる */
        padding: 1.2rem 0 !important;
        box-sizing: border-box !important;
        text-align: center !important;
        text-decoration: none !important;
        line-height: 1.3 !important;
        margin: 0 !important;
        background-color: #EDECE1 !important;
        color: #716C2B !important;
        font-size: 1.6rem !important;
        border-radius: 4px; }
        #mega-menu-wrap-global-nav .mega-menu-item.util-group > .utility-grid > li > a.mega-menu-link i {
          margin-right: .4em !important; }
      #mega-menu-wrap-global-nav .mega-menu-item.util-group > .utility-grid > li > a.mega-menu-link:hover,
      #mega-menu-wrap-global-nav .mega-menu-item.util-group > .utility-grid > li > a.mega-menu-link:focus-visible {
        filter: brightness(0.95); }
      #mega-menu-wrap-global-nav .mega-menu-item.util-group > .utility-grid > li > a.mega-menu-link:active {
        transform: translateY(1px); }

/* =========== モバイル時の挙動（JSなし） =========== */
@media (max-width: 991.98px) {
  /* 閉じている時：プラグインの位置制御を尊重（何もしない） */
  #mega-menu-wrap-global-nav #mega-menu-global-nav {
    position: static;
    height: auto;
    max-height: none;
    overflow: visible; }

  /* 開いた時だけ：ULを全画面に固定して中でスクロール */
  #mega-menu-wrap-global-nav:has(.mega-toggle-animated[aria-expanded="true"]) #mega-menu-global-nav {
    position: fixed;
    top: calc(var(--header-total-h, var(--sp-header-h, 0px)));
    left: 0;
    right: 0;
    bottom: 0;
    width: auto !important;
    /* プラグインの inline width / left を無効化 */
    left: 0 !important;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    /* 必要なら背景色を付ける
    background: $back-beige;
    */ } }
:root {
  --header-total-h: 0px; }

/* JSが上書き */
.ltg-slide .swiper-slide > a {
  width: auto;
  height: 100%; }

.mini-content-container-1 .ltg-slide-text-caption {
  color: #000 !important;
  text-shadow: none !important; }
  @media (max-width: 991.98px) {
    .mini-content-container-1 .ltg-slide-text-caption {
      display: none; } }

.mainv_wrapper {
  padding-top: var(--header-offset, 0px);
  padding-left: 10vw;
  width: 100%; }
  @media (max-width: 991.98px) {
    .mainv_wrapper {
      padding-left: 0; } }
  .mainv_wrapper .mv-slider-area {
    height: calc(100vh  - var(--header-offset, 0px));
    height: calc(100svh - var(--header-offset, 0px));
    height: calc(100dvh - var(--header-offset, 0px));
    min-height: 700px;
    margin-left: 0;
    width: 100% !important; }
    @media (max-width: 991.98px) {
      .mainv_wrapper .mv-slider-area {
        max-height: calc(100dvh - 150px) !important; } }
    .mainv_wrapper .mv-slider-area .swiper-slide {
      height: 100dvh;
      width: 100% !important;
      background-color: #fff; }
      .mainv_wrapper .mv-slider-area .swiper-slide picture, .mainv_wrapper .mv-slider-area .swiper-slide picture img {
        width: 100%;
        height: 100%;
        display: block;
        object-fit: cover;
        object-position: center; }
  .mainv_wrapper .swiper-pagination, .mainv_wrapper .ltg-slide-button-next, .mainv_wrapper .ltg-slide-button-prev {
    display: none; }
  .mainv_wrapper .swiper-slide {
    position: relative; }
    .mainv_wrapper .swiper-slide .ltg-slide-text-set {
      position: absolute;
      top: auto;
      bottom: 0; }
      .mainv_wrapper .swiper-slide .ltg-slide-text-set .container {
        max-width: 100%; }
        .mainv_wrapper .swiper-slide .ltg-slide-text-set .container .ltg-slide-text-caption {
          font-size: 1.2rem; }

.top-container {
  padding-left: 10vw;
  padding-right: 10vw;
  width: 100%; }
  @media (max-width: 991.98px) {
    .top-container {
      padding: 3rem; } }

/* Swiper の器を 100% 高さに */
.home .mv-slider-area .swiper,
.home .mv-slider-area .swiper-wrapper,
.home .mv-slider-area .swiper-slide {
  height: 100% !important; }

/* 画像をコンテナいっぱいにフィット（上下のレターボックス対策） */
.home .mv-slider-area picture,
.home .mv-slider-area img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  /* 余計な行ボックスを消す */ }

/* 念のため（ブラウザ初期値の8pxマージン対策） */
html, body {
  height: 100%; }

body {
  margin: 0; }

.l-container {
  max-width: 1600px;
  margin: 0 auto;
  padding: 3rem; }
  @media (max-width: 1800px) {
    .l-container {
      width: 100%; } }
  @media (max-width: 991.98px) {
    .l-container {
      width: 100%;
      padding: 5%; } }

.l-subsection-page__inner {
  display: flex;
  gap: 100px; }
  @media (max-width: 1199.98px) {
    .l-subsection-page__inner {
      flex-flow: wrap-reverse; } }

.section-heading {
  border-bottom: 1px solid #A09B57; }
  .section-heading .section-heading__title {
    font-size: 3.4rem; }
    @media (max-width: 991.98px) {
      .section-heading .section-heading__title {
        font-size: 2.5rem; } }

.page-title {
  font-family: "Noto Serif JP", serif;
  padding-bottom: 0.5rem;
  border-left: none !important;
  font-weight: 600;
  color: #716C2B !important;
  font-size: 2.4rem;
  border-bottom: 1px #716C2B solid;
  margin-bottom: 1rem; }

.page-subtitle {
  font-family: "Noto Serif JP", serif;
  padding-left: 1rem;
  font-weight: 600;
  font-size: 1.9rem;
  border-left: 5px #716C2B solid;
  margin-top: 3rem; }
  @media (max-width: 991.98px) {
    .page-subtitle {
      font-size: 1.8rem; } }

.dotted-btm {
  margin: 0 0 0.5em 0 !important;
  padding: 0 0 0.5em 0 !important;
  border-bottom: 1px dotted #ccc; }

.box-txt-lb {
  margin: 24px 0;
  padding: 6px;
  background: #EDECE1;
  border: 6px solid #A09B57;
  text-align: left; }

.pd0 {
  padding: 0 !important; }

.breadcrumb {
  font-size: 1.2rem;
  line-height: 1.6; }
  .breadcrumb a {
    color: #555;
    text-decoration: none; }
    .breadcrumb a:hover {
      text-decoration: underline; }
  .breadcrumb span {
    font-weight: bold;
    color: #000; }

.no-after a[target="_blank"]::after {
  content: none !important; }

.post-password-form input {
  margin-top: 2rem; }
.post-password-form button[type=submit] {
  border: none !important;
  padding: .6rem 1rem;
  font-size: 1.6rem;
  border-radius: inherit !important;
  margin-top: 2rem;
  background-color: #A09B57;
  color: #fff; }
  .post-password-form button[type=submit]:hover {
    background-color: #716C2B; }

/* =========================
   TOPページ　トップページ
   ========================= */
.card-body {
  padding: 1rem 0; }
  .card-body .vk_post_date {
    font-size: 1.4rem !important; }

.status-1 {
  /* 展覧会: 3=開催終了 */
  background: #989696;
  color: #fff;
  border-color: #989696; }
  .status-1:hover {
    background: #6e6e6e; }

.category-exhibition .status-0, .category-exhibition .status-1, .category-exhibition .status-2 {
  background-color: #A09B57 !important; }
  .category-exhibition .status-0:hover, .category-exhibition .status-1:hover, .category-exhibition .status-2:hover {
    background-color: #716C2B !important; }
.category-exhibition .status-3 {
  background: #989696 !important;
  color: #fff;
  border-color: #989696 !important; }
  .category-exhibition .status-3:hover {
    background: #6e6e6e !important; }

.vk_post_body .vk_post_title {
  font-size: 16px !important;
  margin-top: .8rem;
  margin-bottom: .8rem;
  line-height: 1.6 !important; }
  .vk_post_body .vk_post_title a {
    display: block; }
    .vk_post_body .vk_post_title a:hover {
      color: #A09B57 !important; }

.top-text-area .vk_posts {
  margin-top: 2rem; }
.top-text-area .category-news {
  display: grid;
  border-bottom: 1px solid #A09B57;
  padding: 1.6rem 0; }
  .top-text-area .category-news .postListText_date {
    margin-bottom: .8rem;
    font-size: 1.6rem;
    font-family: "Aboreto", system-ui; }
  .top-text-area .category-news .postListText_title {
    font-size: 1.6rem; }
    .top-text-area .category-news .postListText_title a {
      text-decoration: none; }

.viewall {
  width: 200px !important; }
  .viewall a {
    font-family: "Aboreto", system-ui;
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 1.2em;
    padding: .75em 3.5em .75em 1.5em;
    border: 1px solid currentColor;
    color: #333;
    text-decoration: none;
    letter-spacing: .08em; }
    .viewall a::before {
      content: "";
      position: absolute;
      top: 52%;
      right: 1.5em;
      width: 18px;
      height: 0px;
      border-top: 1px solid currentColor;
      border-right: 1px solid currentColor;
      transform: rotate(30deg); }
    .viewall a::after {
      content: "" !important;
      position: absolute;
      top: 63%;
      right: 25px;
      width: 53px;
      height: 1px;
      background: currentColor; }

.kb-badge {
  font-size: 1rem;
  padding: .6rem;
  background-color: #A09B57;
  display: inline-block;
  margin-right: .6rem;
  color: #fff !important;
  border: 1px solid #A09B57; }
  .kb-badge:hover {
    background-color: #716C2B; }

/* VKブロックのバッジ */
.red {
  color: #c00; }

.kb-cat {
  font-size: 1rem;
  padding: .6rem;
  border: 1px solid #A09B57;
  display: inline-block;
  margin-right: .6rem; }

.kb-date {
  font-size: 1.4rem !important;
  line-height: 1.6; }

.kb-excerpt {
  font-size: 1.4rem !important;
  margin-top: 1rem;
  line-height: 1.6; }
  .kb-excerpt p {
    font-size: 1.4rem !important;
    line-height: 1.6; }

.top-title-box {
  display: flex;
  align-items: baseline; }
  @media (max-width: 991.98px) {
    .top-title-box {
      display: inline-block; } }
  .top-title-box .toppage-title {
    font-family: "Aboreto", system-ui;
    font-weight: 400;
    color: #716C2B !important;
    font-style: normal;
    font-size: 6rem;
    margin: 10rem 2rem 1rem 0 !important; }
    @media (max-width: 991.98px) {
      .top-title-box .toppage-title {
        font-size: 4.5rem;
        margin: 3rem 0 0rem 0 !important; } }
  .top-title-box .sub-title {
    font-size: 2rem;
    font-family: 'Noto Serif JP';
    line-height: normal;
    margin: 6rem 0 1rem !important; }
    @media (max-width: 991.98px) {
      .top-title-box .sub-title {
        text-align: left;
        margin: 0 !important;
        font-size: 1.6rem; } }

.grid-exhi {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 40px 32px; }

.exhi-post .exhi-thumb img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px; }

.exhi-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px; }

.badge {
  display: inline-block;
  padding: 1rem 1.2rem;
  border: 1px solid #A09B57;
  /* 線ありの四角 */
  /* 角丸（必要なら0で角張らせる） */
  font-size: 14px;
  line-height: 1;
  background: #fff; }

.badge-status {
  font-weight: 600;
  background: #A09B57;
  border-color: #A09B57;
  color: #fff; }

.badge-cat {
  font-weight: 600;
  background: #fff;
  border-color: #716C2B;
  color: #716C2B; }

/* ステータス別の色（例） */
.status-0 {
  background: #A09B57;
  border-color: #A09B57;
  color: #fff; }

/* 開催中 */
.status-1 {
  background: #A09B57;
  border-color: #A09B57;
  color: #fff; }

/* 次回開催 */
.status-2 {
  background: #A09B57;
  border-color: #A09B57;
  color: #fff; }

/* 開催予定 */
.is-ended {
  background: #989696 !important;
  border-color: #A09B57;
  color: #fff; }

/* 開催終了 */
.exhi-title {
  margin: 10px 0 4px;
  font-size: 18px;
  line-height: 1.4; }

.exhi-date {
  font-size: 14px;
  color: #333; }

.kikanshi-table {
  margin-bottom: 8rem; }
  .kikanshi-table table th {
    padding-left: 2rem; }
  .kikanshi-table table td {
    background-color: #A09B57;
    color: #fff;
    padding-left: 2rem;
    min-width: 90px; }
  @media (max-width: 767.98px) {
    .kikanshi-table td, .kikanshi-table th {
      width: 100% !important;
      display: block !important; } }

.kikanshi-list table, .nenpyo-list table {
  margin-bottom: 2rem;
  margin-top: 2rem; }
  .kikanshi-list table caption, .nenpyo-list table caption {
    font-weight: bold;
    margin-bottom: 1rem;
    text-align: left; }

.kikanshi-contents table tr td:last-child {
  width: 30%; }

.nenpyo-list p {
  margin-bottom: 5rem; }
.nenpyo-list table {
  margin-top: 0rem; }
  .nenpyo-list table td:nth-child(1) {
    width: 6rem !important; }
  .nenpyo-list table td:nth-child(2) {
    width: 60% !important; }
.nenpyo-list td {
  font-size: 1.6rem !important; }
.nenpyo-list > .nenpyo-block:first-of-type {
  margin-top: 5rem; }
.nenpyo-list .nenpyo-caption {
  margin-top: 2rem;
  margin-bottom: .5rem; }
  .nenpyo-list .nenpyo-caption caption, .nenpyo-list .nenpyo-caption > caption {
    display: block;
    font-weight: 700;
    text-align: left;
    font-size: 1.8rem !important; }
.nenpyo-list .nenpyo-block {
  margin-bottom: 2rem; }

/* テーブルだけ横スクロール */
.nenpyo-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch; }
  .nenpyo-scroll > table {
    border-collapse: collapse;
    width: max-content;
    /* 中身に合わせて必要幅だけ確保 */
    width: 100%; }
    @media (max-width: 767.98px) {
      .nenpyo-scroll > table {
        width: 780px; } }

/* お好みで：セルの余白や罫線 */
.nenpyo-scroll table td,
.nenpyo-scroll table th {
  padding: .5rem .75rem;
  border-bottom: 1px solid #e5e7eb; }

.timeline-nav {
  padding: 2rem;
  font-size: 1.4rem;
  margin: 0 0 3rem 0;
  background: #FAF7F2;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem; }
  @media (max-width: 991.98px) {
    .timeline-nav {
      grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (max-width: 575.98px) {
    .timeline-nav {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      padding: 1rem; } }
  .timeline-nav li {
    margin: 0;
    text-align: left;
    list-style: none; }
    .timeline-nav li a {
      display: block;
      text-align: left;
      text-decoration: underline; }

.inline-list {
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0 .5rem;
  margin: 0;
  list-style: none; }
  .inline-list li {
    list-style: none;
    white-space: nowrap; }
    .inline-list li a {
      text-decoration: underline;
      display: inline-block; }

/* ===============================
  サイドメニュー
=============================== */
.submenu-nav {
  font-size: 1.4rem !important;
  /* 階層クラスが付かないテーマでも動くよう保険（WP標準の深さクラスを別名扱い） */
  /* 矢印ボタン（共通 / 右端固定・回転） */
  /* 親 <li> を2行グリッド化：1行目=見出し行、2行目=サブメニュー */
  /* 親リンクは左カラム1行目 */
  /* トグルは右カラム1行目（位置は“固定”・絶対配置やtopは使わない） */
  /* 開状態：アイコンだけ上下反転。位置はそのまま */
  /* サブメニューは2行目・全幅、開閉は class で制御 */
  /* 既存の “トップ位置固定” 用の absolute は不要なので削除
     （以前の）.has-children > .submenu-toggle { position:absolute; top:3rem; transform:translateY(-50%) ... }
     などは消してOK
  */ }
  .submenu-nav a {
    line-height: 2.5;
    font-family: "Noto Serif JP", serif; }
  .submenu-nav .submenu-list > .current-page-ancestor > a,
  .submenu-nav .submenu-list > .current-menu-ancestor > a,
  .submenu-nav .submenu-list > .current_menu_item > a,
  .submenu-nav .submenu-list > .current-menu-item > a,
  .submenu-nav .submenu-list > .current_page_parent > a,
  .submenu-nav .submenu-list > .current_menu_parent > a,
  .submenu-nav .submenu-list > .current_page_item > a,
  .submenu-nav .submenu-list > .current_page_ancestor > a {
    font-weight: 700;
    border-left: 3px solid #716C2B;
    color: #716C2B;
    padding: 1rem 1.3rem; }
  .submenu-nav .sub-menu > .current-menu-parent > a,
  .submenu-nav .sub-menu > .current-menu-item > a,
  .submenu-nav .sub-menu > .current_page_item > a,
  .submenu-nav .sub-menu > .current_menu_item > a,
  .submenu-nav .sub-menu > .current_page_ancestor > a,
  .submenu-nav .sub-menu > .current-page-ancestor > a {
    position: relative;
    font-weight: 700;
    color: #716C2B; }
    .submenu-nav .sub-menu > .current-menu-parent > a::before,
    .submenu-nav .sub-menu > .current-menu-item > a::before,
    .submenu-nav .sub-menu > .current_page_item > a::before,
    .submenu-nav .sub-menu > .current_menu_item > a::before,
    .submenu-nav .sub-menu > .current_page_ancestor > a::before,
    .submenu-nav .sub-menu > .current-page-ancestor > a::before {
      content: "";
      position: absolute;
      top: 50%;
      left: -20px;
      transform: translateY(-50%);
      width: 25px;
      height: 1px;
      background: #716C2B; }
  .submenu-nav .level-1, .submenu-nav .menu-item-depth-0 {
    padding-bottom: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #D9D9D9; }
    .submenu-nav .level-1:last-child, .submenu-nav .menu-item-depth-0:last-child {
      border-bottom: 1px solid #D9D9D9; }
    .submenu-nav .level-1 > .open, .submenu-nav .menu-item-depth-0 > .open {
      margin-top: 1rem;
      margin-bottom: 1rem; }
    .submenu-nav .level-1 > a, .submenu-nav .menu-item-depth-0 > a {
      padding: .5rem 1.3rem;
      display: block;
      line-height: 1.5; }
  .submenu-nav .level-2 > a, .submenu-nav .menu-item-depth-1 > a {
    font-size: 1.5rem;
    padding: 0.5rem 0 0.5rem 1.3rem;
    margin-bottom: 0.5rem;
    display: inline-block;
    line-height: 1.5; }
  .submenu-nav .has-children {
    display: grid;
    grid-template-columns: 1fr auto;
    /* 左=テキスト、右=トグル */
    grid-auto-rows: auto;
    align-items: center;
    /* 1行目で縦センター */
    position: relative;
    /* 保険 */ }
  .submenu-nav .has-children > a {
    grid-column: 1;
    grid-row: 1;
    padding: .5rem 1.3rem;
    /* 既存の指定そのままでもOK */ }
  .submenu-nav .has-children > .submenu-toggle {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    align-self: center;
    width: 1.5rem;
    height: 1.5rem;
    border: 0;
    background: transparent;
    cursor: pointer;
    /* ここが肝：回転ではなく、scaleYで上下反転。位置は変えない */ }
    .submenu-nav .has-children > .submenu-toggle::before {
      content: "\f078";
      /* Font Awesome の ▼（fas fa-chevron-down） */
      font: var(--fa-font-solid);
      font-size: .9em;
      display: inline-block;
      transform: scaleY(1);
      /* 閉じてる時 */
      transform-origin: 50% 50%;
      transition: transform .18s ease;
      color: #000 !important; }
  .submenu-nav .has-children.is-open > .submenu-toggle::before {
    transform: scaleY(-1); }
  .submenu-nav .has-children > .sub-menu {
    grid-column: 1 / -1;
    grid-row: 2;
    display: none;
    margin: 1rem 0;
    /* 既存の .open に付けてた余白はここでOK */ }
  .submenu-nav .has-children > .sub-menu.open {
    display: block; }

/* サイドバーとコンテンツのレイアウト */
.subsection-nav {
  width: 22%; }
  @media (max-width: 1199.98px) {
    .subsection-nav {
      flex: 0 0 100% !important;
      margin-top: 8rem; } }
  @media (max-width: 991.98px) {
    .subsection-nav {
      flex: 0 0 100% !important;
      margin-top: 0rem; } }

.subsection-content {
  width: 70%; }
  @media (max-width: 1199.98px) {
    .subsection-content {
      width: 100%; } }

@media (max-width: 991.98px) {
  .vk_timeline_item_content .wp-block-columns {
    display: block; }
    .vk_timeline_item_content .wp-block-columns p {
      text-align: left !important;
      padding-left: 5rem !important; } }
/* ===============================
  リンク関係
=============================== */
.contact-target-btn {
  width: 380px !important; }
  .contact-target-btn a {
    margin-bottom: 0 !important; }
  @media (max-width: 767.98px) {
    .contact-target-btn {
      width: 100% !important; } }

.blank::after, a[target="_blank"]::after {
  content: "" !important;
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  margin-left: 1rem;
  margin-right: 1rem;
  font-size: 1em;
  color: #716C2B; }

.pdf::after {
  content: "" !important;
  font-family: "Font Awesome 5 Free";
  font-weight: 400;
  margin-left: 1rem;
  margin-right: 1rem;
  font-size: 1em;
  color: #716C2B; }

.word::after {
  content: "" !important;
  font-family: "Font Awesome 5 Free";
  font-weight: 400;
  margin-right: 1rem;
  margin-left: 1rem;
  font-size: 1em;
  color: #716C2B; }

.pdf-table a {
  font-family: "Noto Sans JP", serif !important; }
  .pdf-table a::after {
    content: "" !important;
    font-family: "Font Awesome 5 Free";
    font-weight: 400;
    margin-left: 1rem;
    margin-right: 1rem;
    font-size: 1em; }

.tomo-contact-button a, .contact-button a {
  font-size: 1.6rem; }
  .tomo-contact-button a::after, .contact-button a::after {
    color: #fff; }

.wp-block-button {
  width: 300px; }
  .wp-block-button a {
    font-size: 1.6rem !important;
    background-color: #A09B57 !important;
    border-radius: 0 !important;
    color: #fff;
    margin-bottom: 2rem; }
    .wp-block-button a:hover {
      background-color: #716C2B !important; }
    .wp-block-button a::after {
      color: #fff;
      font: var(--fa-font-solid);
      content: "\f105";
      margin-left: 2rem;
      font-size: 1.4rem; }

.tomo-contact-button {
  width: 300px; }

.btn-grid {
  margin-bottom: 2rem; }
  .btn-grid > div:hover {
    background-color: #716C2B !important; }
  .btn-grid p {
    font-size: 1.8rem;
    margin-bottom: 0;
    padding: 2rem 0;
    position: relative; }
    .btn-grid p::after {
      font: var(--fa-font-solid);
      content: "\f105";
      margin-left: 2rem;
      font-size: 1.4rem; }
    @media (max-width: 575.98px) {
      .btn-grid p {
        font-size: 1.6rem; } }

ol.abc {
  counter-reset: hoge;
  /*数字をリセット*/
  list-style-type: none !important;
  /*数字を一旦消す*/
  padding: 0.5em; }
  ol.abc li {
    position: relative;
    padding-left: 30px;
    line-height: 1.5em;
    padding: 0.5em 0.5em 0.5em 30px; }
    ol.abc li::before {
      /* 以下数字をつける */
      position: absolute;
      counter-increment: hoge;
      content: counter(hoge,upper-alpha);
      /*以下数字のデザイン変える*/
      display: inline-block;
      background: #A09B57;
      color: white;
      font-family: 'Avenir','Arial Black','Arial',sans-serif;
      font-weight: bold;
      font-size: 15px;
      border-radius: 50%;
      left: 0;
      width: 25px;
      height: 25px;
      line-height: 25px;
      text-align: center;
      /*以下 上下中央寄せのため*/
      top: 50%;
      -webkit-transform: translateY(-50%);
      transform: translateY(-50%); }
    ol.abc li::after {
      font: var(--fa-font-solid);
      content: "\f107";
      margin-left: 2rem;
      font-size: 1.4rem; }

.icon-alpha {
  position: relative;
  /* アイコンのabsolute位置指定用 */
  padding-left: 35px;
  /* アイコンの分だけ本文を右にずらす */
  font-size: 1.8rem; }
  .icon-alpha::before {
    content: "A";
    position: absolute;
    display: inline-block;
    background: #A09B57;
    color: white;
    font-family: 'Avenir', 'Arial Black', 'Arial', sans-serif;
    font-weight: bold;
    font-size: 15px;
    border-radius: 50%;
    left: 0;
    width: 25px;
    height: 25px;
    line-height: 25px;
    text-align: center;
    top: 50%;
    transform: translateY(-50%); }

.icon-b::before {
  content: "B"; }

.icon-c::before {
  content: "C"; }

.icon-d::before {
  content: "D"; }

.icon-e::before {
  content: "E"; }

.icon-f::before {
  content: "F"; }

/* ====== 図録アーカイブ（grid） ====== */
.subsection-content .page-title {
  margin-bottom: 3rem; }

/* カードグリッド */
.archive-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 0 !important; }
  @media (min-width: 1200px) {
    .archive-grid {
      gap: 28px; } }
  @media (max-width: 1199.98px) and (min-width: 768px) {
    .archive-grid {
      grid-template-columns: repeat(3, 1fr); } }
  @media (max-width: 767.98px) {
    .archive-grid {
      grid-template-columns: repeat(2, 1fr); } }

/* カード本体 */
.archive-card {
  background: #fff;
  overflow: hidden;
  transition: transform .05s ease;
  border: #eee solid 1px;
  padding: 5%;
  /* クリック領域を全体に */ }
  .archive-card:hover {
    opacity: 0.8; }
  .archive-card .kb-metaTop {
    margin-top: 1rem; }
  .archive-card .archive-card__link {
    display: flex;
    flex-direction: column;
    height: auto;
    color: inherit;
    text-decoration: none; }
  .archive-card > .post-tags {
    /* a の直後のタグブロックを生かす */
    display: block !important;
    margin: .5rem 0 .75rem;
    padding: 0 .25rem; }
  .archive-card .post-tags__list {
    display: flex;
    flex-wrap: wrap;
    gap: .375rem;
    list-style: none;
    margin: .25rem 0 0;
    padding: 0; }
    .archive-card .post-tags__list .post-tags__item {
      margin: 0; }
      .archive-card .post-tags__list .post-tags__item .post-tags__link {
        display: inline-block;
        padding: .2rem .55rem;
        background-color: #A09B57;
        color: #fff;
        font-size: 1.2rem;
        text-decoration: none; }

/* 画像枠：3:4で統一（noimageでも比率キープ） */
.archive-card__media {
  position: relative;
  aspect-ratio: 2 / 3;
  background: #fff;
  /* 背景（余白が出る時の色） */
  overflow: hidden;
  /* はみ出し防止 */ }
  .archive-card__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    /* 画像は切らない */
    display: block;
    /* imgには枠線を付けない */
    border: none; }

/* タイトル */
.archive-card__title {
  display: block;
  -webkit-line-clamp: unset;
  -webkit-box-orient: initial;
  overflow: visible;
  max-height: none;
  margin-bottom: .25rem;
  /* 読みやすさと折返しの調整（日本語・長い英数字どちらもケア） */
  font-family: "Noto Sans JP", serif !important;
  font-size: 16px !important;
  margin-top: .8rem;
  margin-bottom: .8rem;
  line-height: 1.6 !important;
  font-weight: 700 !important;
  color: #222;
  overflow-wrap: anywhere;
  word-break: normal; }
  .archive-card__title:hover {
    color: #A09B57 !important; }

.archive-card__date {
  font-size: 1.4rem !important;
  color: #555;
  margin: 0 0 .75rem; }

/* カードのレイアウトは可変高に対応させる（行高さ揃えをやめる） */
.archive-card .archive-card__link {
  display: block; }

/* 非公開（下書き等）を薄く */
.post-status-private .archive-card__title,
.post-status-private .archive-card__media {
  opacity: .75; }

/* ページャ */
ul.page-numbers li span.page-numbers.current {
  border-radius: 0 !important; }

ul.page-numbers li:last-child > .page-numbers {
  border-radius: 0 !important; }

.archive-pager {
  margin-top: 32px;
  text-align: center; }
  .archive-pager .navigation.pagination {
    display: inline-block; }
  .archive-pager .page-numbers {
    display: inline-block;
    min-width: 32px;
    padding: .35rem .6rem;
    margin: 0 .15rem;
    border: 1px solid #ddd;
    line-height: 1.2; }
    .archive-pager .page-numbers li a {
      border-radius: 0 !important; }
  .archive-pager .page-numbers.current {
    font-weight: 700;
    background: #f4f4f4;
    border-color: #ccc;
    border-radius: 0 !important; }
  .archive-pager .next, .archive-pager .prev {
    font-weight: 600; }

/* ===== アーカイブ上部コントロール ===== */
/* ---- SPのときだけプルダウンを表示（PCでは非表示） ---- */
.archive-controls__status-sp,
.archive-controls__status-sp-row {
  display: none; }

/* ===== SP（$lg-max 以下） ===== */
@media (max-width: 1199.98px) {
  /* 上部の2カラム行（状態／年） … 展覧会で使用 */
  .archive-controls__status-sp-row {
    display: flex;
    gap: 8px;
    margin: 0 0 12px; }

  .archive-controls__status-sp-row form {
    flex: 1; }

  .archive-controls__status-sp-row select {
    width: 100%; }

  /* 1フォーム版（イベント・キッズ／展覧会でも単独使用時に対応） */
  .archive-controls__status-sp {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
    margin: 12px 0; }

  .archive-controls__status-sp select {
    flex: 1 1 160px;
    /* 横に広がる・最小幅確保 */
    min-width: 160px; }

  /* SP時は下の既存コントロールの余白だけ少し詰める（任意） */
  .archive-controls {
    margin-top: 12px; }
    .archive-controls form {
      display: none; } }
/* ---- セレクトの見た目（共通） ---- */
.archive-controls__status-sp select,
.archive-controls__status-sp-row select,
.archive-controls__search select {
  border-radius: 0;
  border: 1px solid #000;
  font-size: 1.4rem;
  padding: .8rem .8rem;
  background: #fff;
  color: #000;
  margin-bottom: 0;
  appearance: none;
  /* 標準の矢印を消す */
  -webkit-appearance: none;
  -moz-appearance: none;
  background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'><path d='M1 1l6 6 6-6' stroke='%236D6A3A' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 0.8em center;
  background-size: 12px auto;
  padding-right: 2em;
  /* 矢印と文字がかぶらないように余白 */
  border: 1px solid #000;
  border-radius: 0;
  font-size: 1.4rem;
  line-height: 1.5; }

/* 既存の .archive-controls 周りはそのままでOK（必要なら調整） */
.archive-controls {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin: 16px 0 20px; }
  .archive-controls__tabs {
    display: flex;
    gap: 10px; }
  .archive-controls .ctrl-btn {
    display: inline-block;
    padding: .8rem .8rem;
    border: 1px solid #A09B57;
    background: #fff;
    color: #6D6A3A;
    text-decoration: none;
    font-weight: 600;
    line-height: 1;
    font-size: 1.2rem; }
    .archive-controls .ctrl-btn.is-active {
      background: #A09B57;
      color: #fff;
      border-color: #A09B57; }
    .archive-controls .ctrl-btn:hover {
      background: #716C2B !important;
      color: #fff; }
  .archive-controls__search {
    margin-left: auto;
    display: flex;
    gap: 8px;
    align-items: center; }
    .archive-controls__search input[type="search"] {
      width: min(42vw, 340px);
      padding: 1rem 1.2rem;
      border: 1px solid #A09B57;
      font-size: 1.4rem; }
    .archive-controls__search .search-btn {
      padding: .8rem;
      border: 1px solid #A09B57;
      background: #A09B57;
      color: #fff;
      cursor: pointer;
      font-weight: 600; }

/* ===== publications 詳細：上段2カラム、下段1カラム ===== */
.pub-detail {
  display: grid;
  grid-template-columns: minmax(240px, 34%) 1fr;
  /* 左サムネ / 右本文ヘッダ */
  gap: 32px 36px;
  align-items: start;
  margin-bottom: 28px; }
  @media (max-width: 1199.98px) {
    .pub-detail {
      grid-template-columns: 1fr;
      /* タブレット以下は縦積み */ } }
  .pub-detail__media .pub-thumb {
    margin: 0;
    aspect-ratio: 3 / 4;
    border: 1px solid #ccc;
    border-radius: 6px;
    background: #fff;
    overflow: hidden; }
    .pub-detail__media .pub-thumb img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      /* トリミングなしで収める */
      display: block; }

/* 価格／友の会価格／送料の表風レイアウト */
.pub-meta {
  display: grid;
  grid-template-columns: 8em 1fr;
  row-gap: 8px;
  column-gap: 16px;
  margin: 6px 0 0; }
  .pub-meta .pub-meta__row {
    display: contents; }
  .pub-meta dt {
    color: #6D6A3A;
    font-weight: 700;
    border-left: 3px solid #9C9A5E;
    padding-left: .6em; }
  .pub-meta dd {
    margin: 0; }

/* 本文は1カラム（何もせず全幅） */
.pub-content {
  margin-top: 10px;
  line-height: 1.9; }

/* 余白調整（サイドバー併設前提） */
.subsection-page .l-subsection-page__inner {
  gap: 5rem; }

.subsection-nav {
  flex: 0 0 24%; }

.subsection-content {
  flex: 1 1 auto; }

/*詳細ページ
/* ===== dl を 2列グリッドの“表”にする ===== */
.single-contents {
  /* セル基本 */
  /* 左列（見出し） */
  /* 右列（本文） */
  /* 先頭行だけ上線を消す */
  /* 任意：備考の小さい文字 */
  /* ===== スマホ：1列に積む（dtが見出し、ddがその下） ===== */ }
  .single-contents .pingback,
  .single-contents .trackback,
  .single-contents .commentlist .pingback,
  .single-contents .commentlist .trackback {
    display: none !important; }
  .single-contents .kb-metaTop {
    margin-bottom: 1rem; }
  .single-contents table {
    clear: both;
    width: 100%;
    margin: 12px 0;
    border-collapse: separate;
    border-spacing: 0;
    border-top: 1px solid #666;
    border-left: 1px solid #666; }
    .single-contents table th {
      padding: 3px 6px;
      border-right: 1px solid #666;
      border-bottom: 1px solid #666;
      background: #c1dff1;
      font-weight: normal; }
    .single-contents table td {
      padding: 3px 6px;
      border-right: 1px solid #666;
      border-bottom: 1px solid #666;
      font-weight: normal; }
  .single-contents p {
    text-align: left !important; }
  .single-contents h2 {
    font-family: "Noto Serif JP", serif;
    line-height: 1.7;
    margin-top: 3rem;
    padding-left: 1rem;
    font-weight: 600;
    font-size: 2.4rem;
    border-left: 5px #716C2B solid; }
    @media (max-width: 767.98px) {
      .single-contents h2 {
        font-size: 2rem; } }
  .single-contents h3 {
    font-family: "Noto Serif JP", serif;
    line-height: 1.7;
    margin-top: 3rem;
    font-weight: 600;
    font-size: 2rem;
    padding-borrom: 0.5rem;
    border-bottom: 1px #716C2B solid; }
    @media (max-width: 767.98px) {
      .single-contents h3 {
        font-size: 1.8rem; } }
  .single-contents h4 {
    font-family: "Noto Sans JP", serif;
    line-height: 1.7;
    margin-top: 3rem;
    font-weight: 600;
    font-size: 1.8rem; }
    @media (max-width: 767.98px) {
      .single-contents h4 {
        font-size: 1.6rem; } }
  .single-contents dl.em6 {
    display: grid;
    grid-template-columns: minmax(150px, 24%) 1fr;
    /* 左見出し/右本文 */
    border-bottom: none;
    /* 行の境界線は各セルの上線で引く */
    margin: 1.5em 0; }
  .single-contents dl.em6 > dt,
  .single-contents dl.em6 > dd {
    margin: 0;
    padding: 1.5rem 0;
    border-top: 1px solid #ddd; }
  .single-contents dl.em6 > dt {
    grid-column: 1;
    /* 1列目に固定 */
    font-weight: 700;
    align-self: start;
    /* 上寄せ */ }
  .single-contents dl.em6 > dd {
    grid-column: 2;
    /* 2列目に固定 */ }
  .single-contents dl.em6 > dt:first-of-type,
  .single-contents dl.em6 > dd:first-of-type {
    border-top: none; }
  .single-contents dl.em6 .fs12 {
    font-size: .85em;
    color: #555; }
  @media (max-width: 991.98px) {
    .single-contents {
      /* 行全体の区切り線 */ }
      .single-contents dl.em6 {
        grid-template-columns: 1fr;
        border-right: 1px solid #ddd;
        /* 枠を保つ */ }
      .single-contents dl.em6 > dt {
        grid-column: 1;
        border-right: none;
        background: #f5f5f5; }
      .single-contents dl.em6 > dd {
        grid-column: 1;
        border-top: none;
        /* モバイルは行の枠を dt 側だけに */
        padding-top: 6px; }
      .single-contents dl.em6 > dt:not(:first-of-type) {
        border-top: 1px solid #ddd; } }
  .single-contents figure.single-hero {
    max-width: 360px !important; }
    .single-contents figure.single-hero img {
      border: 1px solid #D9D9D9; }

/* publications シングル：左=サムネイル(幅固定)/右=情報+本文 */
.pub-detail {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  margin: 2rem 0; }
  .pub-detail__thumb {
    flex: 0 0 300px;
    /* ★ 幅300px固定 */
    width: 300px;
    max-width: 100%; }
    .pub-detail__thumb .single-hero__img,
    .pub-detail__thumb img {
      display: block;
      width: 100%;
      height: auto;
      /* ★ 高さは自動（縦長維持） */
      object-fit: contain;
      /* 異なる比率でもはみ出し防止（必要に応じて） */
      border: 1px solid #D9D9D9; }
  .pub-detail__info {
    flex: 1;
    min-width: 0; }

.related-events {
  margin-top: 2.5rem; }
  .related-events__heading {
    font-size: 1.25rem;
    margin-bottom: 1rem;
    border-left: 4px solid #7a7a52;
    padding-left: .5rem; }
  .related-events__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
  .related-events__item {
    background: #fff;
    border: 1px solid #eee; }
  .related-events__link {
    display: grid;
    grid-template-rows: auto 1fr;
    text-decoration: none;
    color: inherit;
    height: 100%; }
  .related-events__thumb {
    aspect-ratio: 4/3;
    overflow: hidden;
    margin: 0; }
    .related-events__thumb img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block; }
  .related-events__meta {
    padding: .75rem; }
  .related-events__title {
    display: block;
    font-weight: 600;
    line-height: 1.4;
    margin-bottom: .25rem; }
  .related-events__date {
    display: block;
    font-size: .9rem;
    color: #666; }

/* 仕様テーブル */
.pub-spec {
  display: grid;
  grid-template-columns: 8em 1fr;
  column-gap: 1rem;
  row-gap: .5rem;
  margin: 0 0 1.5rem; }
  .pub-spec div {
    display: contents; }
  .pub-spec dt {
    font-weight: 700;
    border-left: solid 5px #716C2B;
    padding-left: 1rem; }
  .pub-spec dd {
    margin: 0; }

/* 右カラムの本文（ACFの下） */
.entry-content--pub {
  margin-top: 1.5rem; }

/* モバイルでは縦積み */
@media (max-width: 768px) {
  .pub-detail {
    flex-direction: column; }
    .pub-detail__thumb {
      width: 100%;
      flex: none;
      /* スマホで幅いっぱいにしたくない場合はここで max-width: 300px; margin-inline:auto; 等に調整可 */ } }
/* 完売表示 */
.pub-meta__oos {
  background-color: #a01212;
  color: #fff;
  font-weight: 700;
  font-size: 1.4rem;
  padding: .25rem 2rem;
  margin: .25rem 0 1rem;
  display: inline-block; }

/* 仕様テーブル */
.pub-spec {
  display: grid;
  grid-template-columns: 8em 1fr;
  column-gap: 1rem;
  row-gap: .5rem;
  margin: 0;
  /* dt/dd をグリッドに素直に配置 */ }
  .pub-spec div {
    display: contents; }
  .pub-spec dt {
    font-weight: 700; }
  .pub-spec dd {
    margin: 0; }

/* モバイルでは縦積み */
@media (max-width: 768px) {
  .pub-detail {
    flex-direction: column; }
    .pub-detail__thumb {
      width: 100%;
      flex: none; } }
/* ===== ページ内検索 ===== */
#search-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999; }

#search-overlay[hidden] {
  display: none; }

.search-overlay__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4); }

.search-overlay__panel {
  position: relative;
  max-width: 720px;
  margin: 8vh auto;
  background: #fff;
  border-radius: 0 !important;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
  padding: 20px; }

.search-overlay__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px; }

.search-overlay__close {
  background: transparent;
  border: 0;
  font-size: 24px;
  line-height: 1;
  cursor: pointer; }

.site-search-form {
  display: flex;
  gap: 8px; }

.site-search-input {
  flex: 1;
  padding: 1rem;
  border: 1px solid #ccc;
  border-radius: 0; }

.site-search-submit {
  padding: 1rem;
  border: 1px solid #bbb;
  border-radius: 0;
  background: #f4f4f4; }

html.is-search-open, html.is-search-open body {
  overflow: hidden; }

/* Highlight Search Terms の色調整（必要なら） */
.search-result .hilite,
.entry-content .hilite,
.entry-summary .hilite {
  background: #fff3b0;
  color: inherit;
  padding: 0 .15em;
  border-radius: 0; }

.site-header .hilite,
.breadcrumbs .hilite,
.subsection-nav .hilite {
  background: transparent; }

.search-result__list {
  padding: 0; }
  .search-result__list li {
    list-style: none;
    margin-bottom: 4rem; }
    .search-result__list li h2 {
      border-left: solid 5px #A09B57;
      padding-left: 1rem; }

/*フォーム */
.smf-form .smf-label {
  text-align: center; }
.smf-form .smf-select-control__toggle::before {
  right: 20px !important; }
.smf-form .smf-item__label__text {
  font-weight: bold;
  color: #000; }
.smf-form .smf-text-control__control,
.smf-form .smf-textarea-control__control,
.smf-form .smf-checkbox-control__control,
.smf-form .smf-select-control__control {
  font-size: 1.6rem;
  padding: 1rem;
  border-radius: 0 !important;
  border: 1px solid #A09B57; }
.smf-form .smf-checkbox-control__control:checked {
  background-color: #716C2B !important;
  border-color: #716C2B !important; }
.smf-form .attention input {
  font-size: 2rem; }
.smf-form .attention .subtext {
  font-size: 16px !important; }
.smf-form .doui-box .smf-checkbox-control {
  align-items: flex-start;
  display: inline-flex;
  gap: var(--_s-2); }
  .smf-form .doui-box .smf-checkbox-control input {
    width: 25px !important;
    height: 25px !important;
    margin: 8px 10px 0 !important; }
.smf-form .doui-box .smf-checkbox-control .smf-checkbox-control__label {
  font-size: 1.3em;
  color: #716C2B;
  padding-top: 0.4rem; }
.smf-form .smf-checkbox-control__label {
  padding-top: 0.3rem; }
.smf-form .doui-text {
  border-top: 1px solid #A09B57;
  padding-top: 2rem;
  text-align: center !important;
  font-size: 1.5rem; }
  @media (max-width: 1199.98px) {
    .smf-form .doui-text {
      text-align: left !important; } }

.recap {
  font-size: 1.2rem !important; }

.smf-action .smf-button-control__control {
  border-radius: 0px;
  padding: 20px 50px;
  font-size: 1.2em;
  letter-spacing: 0.15em;
  background: #fff;
  color: #716C2B;
  font-weight: 600;
  border: 2px solid #716C2B;
  transition: .2s; }
  .smf-action .smf-button-control__control:hover {
    background-color: #716C2B !important;
    color: #fff !important; }

.hissu .smf-item__label__text {
  position: relative; }
  .hissu .smf-item__label__text:after {
    position: absolute;
    content: "必須";
    color: #fff;
    width: 40px;
    height: 22px;
    top: 50%;
    transform: translateY(-50%);
    right: -50px;
    display: grid;
    place-items: center;
    background: #A09B57;
    font-size: 12px; }

.digital-box .col-lg-6 {
  position: relative;
  display: flex;
  align-items: center;
  max-height: 230px;
  aspect-ratio: 16 / 7;
  color: #fff;
  border: 0.5px solid #fff;
  width: 100%; }
  @media (max-width: 1199.98px) {
    .digital-box .col-lg-6 {
      max-height: 150px; } }
  .digital-box .col-lg-6 a {
    display: block;
    width: 100%;
    padding: clamp(16px, 4vw, 40px);
    padding-left: 15%; }
    @media (max-width: 1199.98px) {
      .digital-box .col-lg-6 a {
        padding-left: 10%; } }
  .digital-box .col-lg-6 p {
    position: relative;
    display: inline-block;
    color: #fff;
    display: inline-block;
    margin: 0;
    font-family: 'Noto Serif JP', serif;
    font-size: 3rem;
    line-height: 1.5;
    font-weight: 300;
    position: relative;
    padding-bottom: 1rem; }
    @media (max-width: 767.98px) {
      .digital-box .col-lg-6 p {
        font-size: 2rem; } }
    .digital-box .col-lg-6 p .arrow {
      position: absolute;
      left: 0;
      bottom: 0;
      display: inline-block;
      width: 120%;
      height: 1.5px;
      border-radius: 9999px;
      background-color: currentColor;
      /* 文字色に追従（=白） */ }
      .digital-box .col-lg-6 p .arrow::before {
        content: "";
        position: absolute;
        top: 50%;
        right: 0;
        width: 20px;
        height: 1.5px;
        border-radius: 9999px;
        background-color: currentColor;
        transform: translateY(-50%) rotate(40deg);
        transform-origin: calc(100% - 1px) 50%; }
.digital-box .soseki-box {
  background-image: linear-gradient(to right, #0b0b0b80, #0000), url("../img/soseki.webp");
  background-size: cover;
  background-position: right;
  background-repeat: no-repeat; }
.digital-box .nakajima-box {
  background-image: linear-gradient(to right, #0b0b0b80, #0000), url("../img/atsushi.webp");
  background-size: cover;
  background-position: right;
  background-repeat: no-repeat; }

/* =========================
   Footer (mega)
   ========================= */
footer {
  margin-top: 10rem; }

.site-footer {
  background: linear-gradient(to right, #EDECE1 18%, #FAF7F2 18%);
  color: #000;
  /* 2カラムの大枠：左(施設情報) 固定幅 + 右(サイトマップ) 可変 */
  /* 左帯の背景を疑似要素で伸ばして作る */
  position: relative;
  /* 既存の .container の余白が競合する場合は調整 */ }
  .site-footer .footer-inner {
    display: grid;
    grid-template-columns: minmax(320px, 380px) 1fr;
    grid-template-areas: "left right";
    /* ← 追加 */
    gap: 0;
    max-width: 1600px;
    margin: 0 auto;
    /* ========== 右：メガ・サイトマップ ========== */
    /* ========== 左：施設情報 ========== */ }
    @media (max-width: 991.98px) {
      .site-footer .footer-inner {
        grid-template-columns: 1fr;
        grid-template-areas: "right" "left"; } }
    .site-footer .footer-inner .footer-right {
      grid-area: right;
      position: relative;
      z-index: 1;
      padding-left: 3rem;
      padding-top: 5rem;
      padding-bottom: 5rem;
      /* 4カラムのグリッド（スマホで1→2→4） */ }
      @media (max-width: 991.98px) {
        .site-footer .footer-inner .footer-right {
          padding: 5rem 0.9rem;
          display: none !important; } }
      @media (max-width: 767.98px) {
        .site-footer .footer-inner .footer-right {
          padding: 5rem; } }
      .site-footer .footer-inner .footer-right .footer-mega .footer-cols {
        display: grid;
        gap: 1rem;
        grid-template-columns: repeat(4, minmax(0, 1fr)); }
        @media (max-width: 1199.98px) {
          .site-footer .footer-inner .footer-right .footer-mega .footer-cols {
            grid-template-columns: repeat(2, minmax(0, 1fr)); } }
        @media (max-width: 991.98px) {
          .site-footer .footer-inner .footer-right .footer-mega .footer-cols {
            grid-template-columns: repeat(4, minmax(0, 1fr)); } }
        @media (max-width: 767.98px) {
          .site-footer .footer-inner .footer-right .footer-mega .footer-cols {
            grid-template-columns: repeat(2, minmax(0, 1fr)); } }
        @media (max-width: 575.98px) {
          .site-footer .footer-inner .footer-right .footer-mega .footer-cols {
            grid-template-columns: 1fr; } }
        .site-footer .footer-inner .footer-right .footer-mega .footer-cols .footer-col__inner:nth-child(2) {
          margin-top: 1.8rem; }
      .site-footer .footer-inner .footer-right .footer-mega .footer-col {
        margin-bottom: 1rem;
        /* ウィジェットの外枠（before_widget） */ }
        .site-footer .footer-inner .footer-right .footer-mega .footer-col p {
          margin: 0 0 8px;
          font-size: 1.5rem;
          font-weight: 700;
          color: #716C2B;
          line-height: 1.2;
          /* 親は基本クリック不可。必要な場合だけ .is-clickable を付与 */ }
          .site-footer .footer-inner .footer-right .footer-mega .footer-col p a {
            color: inherit;
            text-decoration: none; }
          .site-footer .footer-inner .footer-right .footer-mega .footer-col p .is-clickable {
            pointer-events: auto; }
        .site-footer .footer-inner .footer-right .footer-mega .footer-col .menu {
          padding: 0; }
        .site-footer .footer-inner .footer-right .footer-mega .footer-col li.footer-level-2 {
          line-height: 1.3;
          margin-bottom: .7rem; }
          .site-footer .footer-inner .footer-right .footer-mega .footer-col li.footer-level-2 > a {
            font-size: 1.4rem;
            display: block;
            font-weight: 700;
            padding-left: .7rem; }
          .site-footer .footer-inner .footer-right .footer-mega .footer-col li.footer-level-2 .sub-menu {
            margin-bottom: 0; }
            .site-footer .footer-inner .footer-right .footer-mega .footer-col li.footer-level-2 .sub-menu li {
              position: relative;
              margin: .7rem 0;
              font-size: 1.2rem;
              line-height: 1.4; }
              .site-footer .footer-inner .footer-right .footer-mega .footer-col li.footer-level-2 .sub-menu li a {
                text-decoration: none; }
                .site-footer .footer-inner .footer-right .footer-mega .footer-col li.footer-level-2 .sub-menu li a:hover {
                  color: #A09B57 !important; }
                .site-footer .footer-inner .footer-right .footer-mega .footer-col li.footer-level-2 .sub-menu li a::before {
                  content: "";
                  position: absolute;
                  top: 50%;
                  left: -15px;
                  transform: translateY(-50%);
                  width: 10px;
                  height: 1px;
                  background: #716C2B; }
    .site-footer .footer-inner .footer-left {
      grid-area: left;
      padding-right: 3rem;
      padding-top: 4rem;
      padding-bottom: 5rem;
      position: relative;
      z-index: 1;
      padding-left: 5%;
      background: #EDECE1;
      display: grid;
      grid-auto-rows: max-content;
      row-gap: 0px;
      /* 館名（和） */
      /* 館名（英） */
      /* 住所・開館情報 */
      /* CONTACTカード（画像/ブロック差し込み想定） */
      /* SNSアイコン行 */
      /* コピーライト */ }
      @media (max-width: 991.98px) {
        .site-footer .footer-inner .footer-left {
          padding: 5%; } }
      .site-footer .footer-inner .footer-left p {
        margin: 0;
        line-height: 1.9; }
      .site-footer .footer-inner .footer-left .footer-left__widget {
        margin-bottom: 1rem;
        font-size: 14px; }
      .site-footer .footer-inner .footer-left .wp-block-button {
        margin-top: 2rem; }
      .site-footer .footer-inner .footer-left .footer-left__widget:nth-child(1) p {
        font-family: "Noto Serif JP", serif;
        font-size: clamp(20px, 2.2vw, 28px);
        font-weight: 600;
        letter-spacing: .04em;
        margin-bottom: 8px; }
      .site-footer .footer-inner .footer-left .footer-left__widget:nth-child(2) p {
        font-size: clamp(12px, 1.3vw, 14px);
        line-height: 1.35;
        color: #000; }
      .site-footer .footer-inner .footer-left .footer-left__widget p {
        font-size: clamp(12px, 1.4vw, 14px);
        line-height: 1.7; }
      .site-footer .footer-inner .footer-left .footer-left__widget:nth-child(4) {
        margin-top: 8px; }
        .site-footer .footer-inner .footer-left .footer-left__widget:nth-child(4) a, .site-footer .footer-inner .footer-left .footer-left__widget:nth-child(4) p, .site-footer .footer-inner .footer-left .footer-left__widget:nth-child(4) img {
          display: block; }
      .site-footer .footer-inner .footer-left .footer-left__widget:nth-child(5) {
        margin-top: 8px; }
        .site-footer .footer-inner .footer-left .footer-left__widget:nth-child(5) .wp-block-columns {
          gap: 8px; }
        .site-footer .footer-inner .footer-left .footer-left__widget:nth-child(5) img {
          display: block;
          height: auto;
          filter: grayscale(100%);
          transition: .2s; }
          .site-footer .footer-inner .footer-left .footer-left__widget:nth-child(5) img:hover {
            filter: none;
            transform: translateY(-2px); }
      .site-footer .footer-inner .footer-left .footer-left__widget:last-child {
        margin-top: 6px; }
        .site-footer .footer-inner .footer-left .footer-left__widget:last-child p {
          color: #000;
          font-size: 12px;
          letter-spacing: .02em; }
  .site-footer .container {
    padding: 0;
    margin: 0;
    max-width: none; }

.footer-bottom-wrap {
  background-color: #A09B57; }
  .footer-bottom-wrap .footer-bottom {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem 2rem;
    list-style: none;
    margin: 0;
    padding: 1rem 5%;
    justify-content: end; }
    .footer-bottom-wrap .footer-bottom a {
      font-size: 1.3rem;
      color: #fff; }

.copyright {
  font-size: 1.2rem;
  text-align: center;
  padding-top: 1rem; }

/* ========== 細かな微調整 ========== */
/* 右エリアの行間・押し戻し */
.footer-right .footer-col__list .footer-col__item + .footer-col__item {
  margin-top: 2px; }

/* 見出しリンクが “WEBショップ” のようにクリック可な場合 */
.footer-right .footer-col__heading a[href*="webshop"] {
  pointer-events: auto; }

/* スマホ：左帯の背景幅を小さく */
@media (max-width: 767.98px) {
  .site-footer::before {
    width: 100%; }

  .footer-left {
    padding-right: 16px; }

  .footer-right {
    padding-left: 16px; } }
/* スライダー全体 */
.hall-slide-tit {
  font-size: 20px;
  font-family: 'Noto Sans JP'; }

.hall-slider {
  padding-bottom: 3rem;
  margin-bottom: 2rem; }
  .hall-slider .vk_slider_item_container {
    /* スライドの高さを統一 */
    height: 350px;
    display: flex;
    align-items: center;
    /* 画像を中央揃え */
    justify-content: center;
    overflow: hidden;
    /* はみ出しカット */ }
    @media (max-width: 1199.98px) {
      .hall-slider .vk_slider_item_container {
        height: 240px; } }
    @media (max-width: 767.98px) {
      .hall-slider .vk_slider_item_container {
        height: 160px; } }
    .hall-slider .vk_slider_item_container img {
      width: 100%;
      height: 100% !important;
      object-fit: cover;
      /* センター切り取り */
      object-position: center center;
      /* 中央基準 */
      display: block; }
    .hall-slider .vk_slider_item_container figure {
      margin: 0;
      position: relative;
      width: 100%;
      height: 100%; }
    .hall-slider .vk_slider_item_container figcaption {
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      background: rgba(0, 0, 0, 0.5);
      /* 半透明黒背景 */
      color: #fff;
      font-size: 1.2rem !important;
      padding: 0.5em;
      text-align: center;
      box-sizing: border-box;
      margin-bottom: 0 !important; }
  .hall-slider .swiper-pagination-bullet {
    width: 5px;
    height: 5px;
    border-radius: 10px; }
  @media (max-width: 575.98px) {
    .hall-slider .swiper-button-next.swiper-button-mobile-bottom, .hall-slider .swiper-button-prev.swiper-button-mobile-bottom {
      bottom: 4px; } }

.hall-table td span, .hall-table th span {
  text-underline-offset: 3px;
  text-decoration-color: #cf2e2e !important;
  text-decoration-thickness: 3px !important;
  /* 線の太さ */ }

.nav-links {
  display: flex;
  justify-content: space-between;
  grid-template-columns: 1fr 1fr;
  margin-top: 8rem;
  gap: 16px; }
  .nav-links .nav-previous, .nav-links .nav-next {
    width: 150px; }
  .nav-links .nav-previous a, .nav-links .nav-next a {
    display: block;
    width: 100%;
    height: 100%;
    text-decoration: none;
    color: #fff;
    text-align: center;
    background-color: #A09B57;
    padding: 1rem 1.5rem; }

.wp-block-archives select {
  font-size: 1.6rem !important; }

.vk_post.card {
  box-sizing: border-box;
  max-width: 100%;
  margin: 0;
  border: #eee solid 1px;
  padding: 20px; }
  @media (max-width: 1199.98px) {
    .vk_post.card {
      padding: 20px; } }

@media (min-width: 1200px) {
  .vk_posts .vk_post-col-xxl-3 {
    width: 25%; } }
@media (min-width: 992px) {
  .vk_posts .vk_post-col-xxl-4 {
    width: 33.3%; } }
@media (max-width: 1199.98px) {
  .card.vk_post-col-md-6 {
    width: 50%; }

  .vk_posts .vk_post-col-lg-4 {
    width: 33%; } }
@media (max-width: 767.98px) {
  .card.vk_post-col-xs-12 {
    width: 100%; } }
.archive-card__media,
.vk_post_imgOuter {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 4;
  overflow: hidden; }
  .archive-card__media:hover,
  .vk_post_imgOuter:hover {
    opacity: 0.8 !important; }

/* 画像を枠いっぱいに表示（横は常に100%／上下は必要に応じてトリミング） */
.archive-card__media img,
.vk_post_imgOuter img {
  position: absolute;
  inset: 0;
  /* top/right/bottom/left: 0 の短縮 */
  width: 100%;
  height: 100%;
  object-fit: contain;
  /* ← ここがポイント（contain→cover） */
  object-position: center; }

/* VK Blocks が付ける background-image を強制オフ（重複回避） */
.vk_post_imgOuter,
.vk_post_imgOuter::before,
.vk_post_imgOuter[style*="background-image"] {
  background-image: none !important; }

.vk_post_imgOuter::before {
  content: none !important; }

/* aspect-ratio 非対応ブラウザのフォールバック（任意） */
@supports not (aspect-ratio: 1/1) {
  .archive-card__media::after,
  .vk_post_imgOuter::after {
    content: "";
    display: block;
    padding-top: calc(100% * 4 / 3); } }
.news-list__link {
  display: grid;
  border-bottom: 1px solid #A09B57 !important;
  padding: 1.6rem 0; }
  .news-list__link a {
    text-decoration: none; }
    .news-list__link a:hover {
      color: #A09B57 !important; }
  .news-list__link .news-list__date {
    margin-bottom: .8rem;
    font-size: 1.6rem;
    font-family: "Aboreto", system-ui;
    color: #000; }
  .news-list__link .news-list__title {
    font-size: 1.8rem;
    color: #000; }
    .news-list__link .news-list__title:hover {
      color: #A09B57 !important; }

/* メニュー開時は背面のクリック/タップを無効化（必要なラッパーに合わせて） */
.is-menu-open #page,
.is-menu-open .site,
.is-menu-open .site-wrap {
  pointer-events: none; }

/*既存テーブルプレス */
.tablepress > :where(thead,tfoot) > tr > * {
  background-color: #A09B57 !important; }
  .tablepress > :where(thead,tfoot) > tr > * .dt-column-title, .tablepress > :where(thead,tfoot) > tr > * .dt-column-order {
    color: #fff !important; }
.tablepress thead th {
  border: #fff 1px solid;
  line-height: 1.4;
  padding: 1.8rem 1.5rem;
  border-bottom: 1px solid #A09B57; }
  .tablepress thead th:first-child {
    border-left: 1px solid #A09B57; }
.tablepress tbody td {
  border: 1px solid #A09B57 !important; }

@media (max-width: 991.98px) {
  .dt-container .dt-layout-row {
    flex-direction: row !important; } }
.tqblepress tbody tr {
  font-size: 1.5rem !important; }

@media (max-width: 991.98px) {
  #tablepress-1-no-2_wrapper .dt-layout-table {
    overflow: scroll !important; } }
#tablepress-1-no-2_wrapper .tablepress {
  width: 100% !important; }
  @media (max-width: 991.98px) {
    #tablepress-1-no-2_wrapper .tablepress {
      width: 980px !important; } }
  #tablepress-1-no-2_wrapper .tablepress .column-1 {
    width: 15em !important; }

#tablepress-4-no-2_wrapper .dt-layout-table {
  overflow: scroll !important; }
#tablepress-4-no-2_wrapper .tablepress {
  width: 100% !important; }
  @media (max-width: 767.98px) {
    #tablepress-4-no-2_wrapper .tablepress {
      width: 760px !important; } }

@media (max-width: 991.98px) {
  .video-table {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    /* iOS慣性スクロール */
    overscroll-behavior: contain; }

  .video-table > table {
    width: auto;
    /* WP等で100%指定されていても上書き */
    min-width: 720px;
    /* 必要幅。列数や内容にあわせて調整 */ }

  /* 視覚的にスクロールできる感を少し出したい場合（任意） */
  .video-table::-webkit-scrollbar {
    height: 8px; } }
.movie-arc p {
  line-height: 1.6 !important;
  margin-top: 1rem; }
  .movie-arc p a {
    font-weight: normal !important; }
.movie-arc .movie-tit {
  font-family: "Noto Sans JP", serif;
  border-bottom: solid 1px #A09B57;
  padding-bottom: .3rem;
  font-size: 1.8rem; }
.movie-arc h4 {
  font-size: 1.6rem;
  font-family: "Noto Sans JP", serif; }
.movie-arc .wp-block-column {
  margin-bottom: 4rem; }

/* ===== WPFront Scroll Top をCSSだけで丸ボタン化 ===== */
#wpfront-scroll-top-container {
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
  display: block !important;
  opacity: 0;
  pointer-events: none;
  transform: scale(0.9);
  transition: opacity 0.4s ease, transform 0.4s ease; }
  #wpfront-scroll-top-container.show {
    opacity: 1;
    pointer-events: auto;
    transform: scale(1); }
  #wpfront-scroll-top-container .text-holder {
    width: 50px !important;
    height: 50px !important;
    border-radius: 50% !important;
    background: #A09B57 !important;
    color: #fff !important;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 13px;
    text-transform: uppercase;
    text-decoration: none;
    background-image: none !important;
    border: none !important;
    position: relative;
    overflow: hidden;
    box-shadow: none !important;
    padding-top: 21px !important;
    font-family: "Noto Sans JP", serif !important; }
    #wpfront-scroll-top-container .text-holder::before {
      content: "";
      position: absolute;
      top: 8px;
      left: 50%;
      transform: translateX(-50%);
      width: 0;
      height: 0;
      border-left: 13px solid transparent;
      border-right: 13px solid transparent;
      border-bottom: 15px solid #fff; }
  #wpfront-scroll-top-container button:hover .text-holder {
    background: #8c874d !important;
    transform: scale(1.06);
    transition: transform .15s ease, background .2s ease; }

/* =========================
   TablePress pagination -> Lightning風
   ========================= */
.dt-container .dt-paging nav .dt-paging-button {
  height: 46px !important;
  border-radius: 0 !important;
  padding: 14px 12px !important;
  font-weight: bold !important;
  color: #000 !important;
  margin-left: 0 !important;
  border: 1px solid #f4f4f4 !important; }
.dt-container .dt-paging nav .current {
  background-color: #A09B57 !important;
  border: none !important;
  border-radius: 0 !important;
  color: #fff !important; }

/* CSS変数を利用して margin-top を自動調整 */
/* 変化が滑らかに見えるように。必要なければ外してOK */
#vk-header,
.header-bar,
header.site-header,
header#masthead {
  transition: margin-top .2s ease; }

/* 変数を使う場合の例（JSが入るなら不要） */
:root {
  --gtw-banner-h: 0px; }

.goog-te-combo {
  border-radius: 0 !important;
  padding: .5rem 1.5rem;
  height: 34px !important;
  font-size: 12px !important; }

/* 翻訳ボックスの入れ物は常に一定高にしておく（32〜36pxはテーマに合わせて微調整） */
.gtw-wrap,
#google_translate_element,
.goog-te-gadget {
  min-height: 34px;
  /* ← ここが効き目。iOSで0→34のジャンプを防ぐ */
  line-height: 34px; }

/* 余計なインラインサイズを打ち消して横ブレも防ぐ */
.goog-te-gadget,
.goog-te-gadget > span,
.goog-te-combo {
  display: inline-block;
  vertical-align: middle;
  width: auto !important; }

.goog-te-gadget span a::after {
  content: none !important; }

.goog-te-gadget > div {
  margin-bottom: -10px; }

/* iOSでフォント拡大時に伸びないように */
/* Googleの上部ツールバー(自動翻訳時に出るグレー帯)は完全に消す */
body .goog-te-banner-frame,
body .goog-te-balloon-frame {
  display: none !important; }

body {
  top: 0 !important; }

/* iOSで banner-frame による body 上下移動を抑止 */
@media (max-width: 768px) {
  .vk_posts .card-post {
    width: 50% !important; } }
.grecaptcha-badge {
  visibility: hidden; }
