@charset "utf-8";
/* Original palette, Mincho typography, photographs and content order retained. */
:root { --gold: #90804f; --ink: #26231e; --red: #800000; --green: #426343; }
* { box-sizing: border-box; }
html { scroll-padding-bottom: 100px; }
body { margin: 0; color: var(--ink); background: #fff; font-family: "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "游明朝", YuMincho, "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif; font-size: 16px; line-height: 1.9; padding-bottom: calc(88px + env(safe-area-inset-bottom)); }
h1,h2,h3,p,figure,ul,dl,dd { margin: 0; padding: 0; }
ul { list-style: none; }
a { color: #746239; text-underline-offset: 4px; overflow-wrap: anywhere; }
button,summary { font: inherit; }
a,summary { -webkit-tap-highlight-color: #90804f30; }
a:focus-visible,summary:focus-visible { outline: 3px solid #426343; outline-offset: 4px; }
img { display: block; max-width: 100%; height: auto; }
#container { width: 100%; max-width: 750px; margin: auto; }
header { padding: 10px 4.8%; display: flex; align-items: center; justify-content: space-between; position: relative; min-height: 78px; }
header .logo { width: 160px; }
header .logo a { display: block; }
.skip-link { position: absolute; top: -80px; left: 16px; background: white; padding: 10px; z-index: 20; }
.skip-link:focus { top: 10px; }
.site-menu > summary { list-style: none; cursor: pointer; color: #76663e; text-align: center; min-width: 48px; min-height: 48px; font-size: 11px; line-height: 1.4; }
.site-menu > summary::-webkit-details-marker { display: none; }
.menu-icon { display: block; font: 28px/1.1 serif; margin-bottom: 4px; }
.drawer-nav { position: absolute; z-index: 10; top: 100%; left: 4.8%; right: 4.8%; background: #fff; border: 1px solid var(--gold); padding: 16px; box-shadow: 0 5px 12px #0001; max-height: 70vh; overflow-y: auto; }
.drawer-menu-item { display: block; padding: 10px 5px; min-height: 44px; border-bottom: 1px solid #e9e4d8; text-decoration: none; }
.menuLogo { display: none; }
.menuBottom { margin-top: 20px; }
.menuBottom a { display: block; padding: 12px 4px; text-align: center; }
.menuBottomInner { display: flex; gap: 8px; }
.menuBottomInner > div { flex: 1; }
.menuBottom .reservation a { background: var(--red); color: #fff; }
#main { padding: 0 4.8%; }
h1 { background: var(--gold); color: white; text-align: center; font-size: 24px; font-weight: normal; padding: 24px 16px; margin-bottom: 28px; }
#mainVisual h1 { padding: 0; margin: 0 0 28px; background: #fff; line-height: 0; }
#mainVisual img { width: 100%; }
.topNav ul { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 8px; margin-bottom: 46px; }
.topNav li { min-width: 0; }
.topNav a { display: flex; align-items: center; justify-content: center; min-height: 64px; font-size: 14px; text-align: center; text-decoration: none; line-height: 1.6; }
.topNav .tel a { flex-direction: column; border: 1px solid var(--gold); }
.topNav .tel span { font-size: 12px; }
.topNav .access a { background: var(--gold); color: white; }
.topNav .reservation a { background: var(--red); color: white; }
.contentArea { margin-bottom: 48px; }
h2.type1 { text-align: center; color: #807044; font-size: 21px; line-height: 1.65; font-weight: 600; margin-bottom: 28px; }
.contentArea p + p { margin-top: 24px; }
#feature p { text-align: center; margin-bottom: 28px; }
.news .type1 { margin-bottom: 12px; }
.news-note { color: #716b5f; font-size: 13px; line-height: 1.7; margin-bottom: 16px; }
.newsOuter { border-top: 1px solid #d9d1bd; }
.oshirase li { border-bottom: 1px solid #d9d1bd; }
.oshirase summary { padding: 16px 6px; cursor: pointer; color: #746239; font-size: 16px; line-height: 1.8; }
.oshirase .text { padding: 2px 10px 10px; font-size: 15px; white-space: pre-line; }
.button_more a { display: block; padding: 10px; margin: 8px 10px 20px; background: var(--gold); color: white; text-align: center; text-decoration: none; }
.button_1 a { display: block; background: var(--gold); color: white; text-decoration: none; font-size: 20px; line-height: 1.6; padding: 22px 12px; text-align: center; margin: 32px 0 48px; }
.movie-wrap { aspect-ratio: 16 / 9; }
.movie-wrap iframe { display: block; width: 100%; height: 100%; border: 0; }
iframe { max-width: 100%; border: 0; }
#idea { text-align: center; }
#idea h3 { font-size: 22px; font-weight: normal; margin: 32px 0 22px; }
#idea p { margin: 0 0 28px; }
#idea img { width: 100%; }
#idea section { margin-bottom: 42px; }
.staffImg,.accessImg { margin-bottom: 24px; }
.staffImg img,.accessImg img { width: 100%; }
.commonText { margin-bottom: 28px; }
.type2,.type3 { background: #888; color: white; padding: 20px 12px; font-size: 21px; font-weight: normal; text-align: center; }
.type3 { background: var(--gold); }
.type2 + div,.type3 + div { padding: 24px 18px; border: 1px solid #b5ac94; }
.type4 { font-size: 20px; margin-bottom: 18px; }
.expanded-content { margin-bottom: 32px; }
table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 15px; }
th,td { padding: 12px 10px; border: 1px solid #ddd6c7; vertical-align: top; overflow-wrap: anywhere; }
th { width: 30%; font-weight: normal; background: #f7f5f0; }
.fee span { display: block; margin-bottom: 24px; }
.linkImg { border: 1px solid #ece8de; padding: 24px; margin-bottom: 24px; }
.linkImg img { max-width: 250px; width: 100%; margin: auto; }
.mb2 { margin-bottom: 16px; }.mb4_2,.mb4_6 { margin-bottom: 30px; }
small { font-size: 13px; }
.consultation { border-top: 1px solid #c9bea2; border-bottom: 1px solid #c9bea2; padding: 30px 0; text-align: center; }
.consultation img { width: 64px; height: 64px; margin: 0 auto 24px; }
.consultation p { text-align: left; }
.line-button { display: block; padding: 14px; margin-top: 24px; border: 1px solid var(--green); color: var(--green); text-align: center; text-decoration: none; font-size: 18px; }
.consultation .consultation-note { font-size: 14px; text-align: center; }
footer { padding: 0 4.8%; }
#footerTop { display: grid; grid-template-columns: 1.4fr 1fr 1fr; align-items: center; gap: 8px; margin-bottom: 28px; }
#footerTop a { display: flex; min-height: 54px; align-items: center; justify-content: center; text-decoration: none; font-size: 13px; }
#footerTop .facebook a { background: var(--gold); color: white; }
#footerTop .reservation a { background: var(--red); color: white; }
#footerMenu a { display: block; border: 1px solid var(--gold); padding: 18px 10px; margin-bottom: 12px; text-align: center; text-decoration: none; font-size: 15px; }
#footerMenu dl { display: flex; flex-wrap: wrap; justify-content: center; }
#footerMenu dd { overflow-wrap: anywhere; }
#copyright { text-align: center; margin: 36px 0 24px; line-height: 1.6; }
.fixed-cta { position: fixed; z-index: 15; bottom: 0; left: 50%; transform: translateX(-50%); width: 100%; max-width: 750px; padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); border-top: 1px solid #d8cdb4; background: #fff; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.fixed-cta a { min-height: 54px; display: flex; flex-direction: column; justify-content: center; text-align: center; text-decoration: none; font-size: 17px; line-height: 1.5; }
.fixed-cta small { font-size: 11px; }
.line-cta { color: var(--green); border: 1px solid var(--green); }
.reserve-cta { background: var(--red); color: white; }
.booking-options a { display: block; padding: 18px 12px; margin-bottom: 18px; border: 1px solid #660033; text-align: center; text-decoration: none; color: #660033; }
.booking-options a:last-child { background: var(--red); color: white; border-color: var(--red); }
@media (min-width: 600px) { body { font-size: 18px; } header { min-height: 90px; } header .logo { width: 200px; } .contentArea { margin-bottom: 56px; } h2.type1 { font-size: 25px; } .topNav a { font-size: 17px; } }
