/* 共通ヘッダー・フッター・メニュー。各ページの本文デザインから独立しています。 */
#site-top,#site-footer,#mobile-menu{--line:#ded9d6;--wine:#722e43;--wine-light:#f5edef;--ink:#342f35;--gutter:25px;--sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font:400 14px/1.8 var(--sans);text-align:left;letter-spacing:normal;box-sizing:border-box}
#site-top *,#site-footer *,#mobile-menu *{box-sizing:border-box}
#site-top a,#mobile-menu a{color:inherit;text-decoration:none}
#site-top summary,#mobile-menu summary{cursor:pointer;list-style:none}
#site-top summary::-webkit-details-marker,#mobile-menu summary::-webkit-details-marker{display:none}
#site-top{position:sticky!important;top:0!important;z-index:1000;background:#fff;border-bottom:1px solid var(--line);width:100%;max-width:none;backdrop-filter:none;transform:none!important}
#site-top .s-header-row{display:flex;flex-wrap:nowrap;align-items:center;min-height:88px;max-width:1520px;width:100%;margin:auto;padding:16px 28px;gap:22px}
#site-top .s-brand{display:flex;align-items:center;gap:9px;min-width:0;line-height:1.6;flex:0 0 auto}
#site-top .s-brand-mark{font-size:27px;line-height:1;color:#a77b88;flex-shrink:0}
#site-top .s-brand-name{font:500 16px/1.75 var(--sans);letter-spacing:.025em;white-space:nowrap}
#site-top .s-brand-name small{display:block;margin-top:3px;font:400 8px/1.5 var(--sans);letter-spacing:.14em;color:#77716d}
#site-top .s-header-links{display:flex;align-items:center;gap:16px;margin:0;flex:0 0 auto}
#site-top .s-header-toc{font:400 12px/1.8 var(--sans);white-space:nowrap;border:0;border-bottom:1px solid #b88d99;padding:6px 0;min-height:34px}
#site-top .s-reserve{display:flex;align-items:center;justify-content:center;padding:10px 17px;min-height:44px;border:1px solid #6b4653;border-radius:3px;background:#6b4653;color:#fff;font-size:11px;letter-spacing:.06em;white-space:nowrap}
#site-top .s-reserve:hover{background:#583946;border-color:#583946}
#site-top .s-support{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:3px 0 3px 19px;border-left:1px solid var(--line);background:transparent;color:#5c5553;line-height:1.6;flex:0 0 auto;min-height:44px}
#site-top .s-support small{display:block;font-size:7px;letter-spacing:.12em;color:#7b736e}
#site-top .s-support strong{font:500 11px/1.9 var(--sans);letter-spacing:.025em;white-space:nowrap}
#site-top .s-support:hover{color:var(--wine)}
#site-top .s-desktop-nav{display:flex;flex:1 0 auto;flex-wrap:nowrap;align-items:center;justify-content:center;gap:13px;margin:0;border:0;min-width:0}
#site-top .s-nav-group{position:relative;display:block;margin:0;padding:0;border:0;background:transparent}
#site-top .s-nav-group>summary,#site-top .s-nav-direct{display:flex;align-items:center;font:400 11px/1.8 var(--sans);padding:12px 2px;white-space:nowrap;min-height:44px;letter-spacing:.01em}
#site-top .s-nav-group>summary:hover,#site-top .s-nav-direct:hover{color:var(--wine)}
#site-top .s-nav-group>summary::after{content:"";display:inline-block;width:5px;height:5px;border-right:1px solid;border-bottom:1px solid;transform:rotate(45deg);margin:0 0 3px 9px}
#site-top .s-nav-group[open]>summary{color:var(--wine);box-shadow:inset 0 -1px #a77b88}
#site-top .s-dropdown{position:absolute;top:100%;right:0;left:auto;width:320px;max-height:calc(100dvh - var(--header-height,88px) - 24px);overflow-y:auto;overscroll-behavior:contain;padding:12px;background:white;border:1px solid var(--line);border-radius:3px;box-shadow:0 12px 28px #31252c13;z-index:1001}
#site-top .s-dropdown a{display:block;padding:11px 12px;line-height:1.7;font-size:12px;border-bottom:1px solid #eeebea;white-space:normal}
#site-top .s-dropdown a:last-child{border:0}
#site-top .s-dropdown a:hover,#site-top .s-dropdown a[aria-current=page]{background:var(--wine-light);color:var(--wine)}
#site-top .s-menu-button{display:none;flex-direction:column;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid var(--line);background:transparent;gap:5px;flex-shrink:0;cursor:pointer;color:var(--ink)}
#site-top .s-menu-button i{display:block;width:19px;height:1px;background:currentColor;transition:transform .2s}
#site-top .s-menu-button small{font:400 8px/1 var(--sans);letter-spacing:.1em;margin-top:2px}
#site-top .s-menu-button[aria-expanded=true] i:first-child{transform:translateY(3px) rotate(45deg)}
#site-top .s-menu-button[aria-expanded=true] i:nth-child(2){transform:translateY(-3px) rotate(-45deg)}
#mobile-menu{position:fixed!important;top:var(--header-height,70px)!important;bottom:0!important;left:50%!important;right:auto!important;transform:translateX(-50%)!important;width:100%!important;max-width:560px;height:auto!important;max-height:calc(100dvh - var(--header-height,70px))!important;overflow:auto;overscroll-behavior:contain;background:#fff;z-index:1002;scrollbar-color:#a98590 #f4efef}
#mobile-menu .menu-inner{padding:27px 25px max(45px,calc(env(safe-area-inset-bottom) + 28px));min-height:0}
#mobile-menu .s-menu-booking{display:flex;width:100%;min-height:58px;justify-content:center;align-items:center;background:#fff;color:#111;border:1px solid #111;border-radius:0;box-shadow:none;margin-bottom:12px;padding:16px 20px;font-size:13px;font-weight:500;line-height:1.6;letter-spacing:.12em}
#mobile-menu .s-menu-home,#mobile-menu .s-menu-blog{display:flex;align-items:center;justify-content:space-between;min-height:50px;border-bottom:1px solid var(--line);font-size:13px}
#mobile-menu .s-menu-blog{color:var(--wine)}
#mobile-menu .s-menu-group{display:block;border:0;border-bottom:1px solid var(--line);padding:0;background:transparent;margin:0}
#mobile-menu .s-menu-group>summary{display:flex;align-items:center;justify-content:space-between;min-height:54px;font:400 14px/1.8 var(--sans);padding:0}
#mobile-menu .s-menu-group>summary::after{content:"＋";font:400 18px var(--sans);color:var(--wine)}
#mobile-menu .s-menu-group[open]>summary::after{content:"−"}
#mobile-menu .s-menu-group .submenu{padding:0 0 16px 14px;border-left:1px solid #d8bdc6;margin:0 0 8px 2px}
#mobile-menu .s-menu-group a{display:block;padding:12px 10px;font-size:12px;line-height:1.9;min-height:46px;overflow-wrap:anywhere}
#mobile-menu .s-menu-group a[aria-current=page]{background:var(--wine-light);color:var(--wine)}
#mobile-menu .s-support{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 20px;line-height:1.6;background:#eeebe6;color:#514a47;border:1px solid #d9d1ca;margin:26px 0 14px;min-height:78px}
#mobile-menu .s-support small{font-size:9px;display:block;letter-spacing:.12em}
#mobile-menu .s-support strong{font:500 13px/1.8 var(--sans);letter-spacing:.025em}
#mobile-menu .menu-close-bottom{margin:18px 0 0;border:1px solid var(--line);width:100%;min-height:47px;background:transparent;font:400 12px var(--sans);cursor:pointer}
#site-footer{--footer-ink:#423d3a;--footer-muted:#6c625c;--footer-line:#d4ccc5;--footer-accent:#775b64;background:#eeebe6;color:var(--footer-ink);padding:56px 0 max(28px,env(safe-area-inset-bottom));width:100%;max-width:none;margin:0;border-top:1px solid #e1dad4}
#site-footer a{color:var(--footer-ink);text-decoration:none}
#site-footer .s-shell{width:calc(100% - 64px);max-width:1320px;margin:auto;padding:0}
#site-footer .s-footer-top{display:flex;align-items:center;justify-content:space-between;gap:30px;margin:0 0 38px}
#site-footer .s-brand{display:flex;align-items:center;gap:10px;line-height:1.6;min-width:0}
#site-footer .s-brand-mark{color:#98757f;font-size:29px;line-height:1;flex-shrink:0}
#site-footer .s-brand-name{font:500 19px/1.75 var(--sans);letter-spacing:.035em;white-space:nowrap}
#site-footer .s-brand-name small{display:block;margin-top:5px;font:400 8px/1.6 var(--sans);letter-spacing:.15em;color:var(--footer-muted)}
#site-footer .s-support{border:1px solid var(--footer-line);border-radius:3px;background:transparent;width:280px;display:flex;align-items:center;justify-content:space-between;padding:17px 19px;margin:0;gap:20px}
#site-footer .s-support small{font:400 9px/1.6 var(--sans);display:block;letter-spacing:.12em}
#site-footer .s-support strong{font:500 13px/1.9 var(--sans);letter-spacing:.035em}
#site-footer .s-support small{color:var(--footer-muted)}
#site-footer .s-support:hover{background:#e6e0da;border-color:#bcb0a7}
#site-footer .s-footer-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr 1fr 1fr;gap:28px;border-top:1px solid var(--footer-line);padding:32px 0 0;margin:0}
#site-footer .s-footer-group,#site-footer .s-footer-group:first-child{display:block;grid-column:auto;min-width:0}
#site-footer .s-footer-group h2{font:500 12px/1.8 var(--sans);margin:0 0 15px;color:var(--footer-accent);letter-spacing:.06em}
#site-footer .s-footer-group a{display:block;font:400 11px/1.95 var(--sans);margin:0 0 12px;color:#5e5651;overflow-wrap:anywhere}
#site-footer .s-footer-group a:hover{color:#5e3f4c;text-decoration:underline;text-underline-offset:4px}
#site-footer .s-footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:32px;padding-top:20px;border-top:1px solid var(--footer-line)}
#site-footer .s-footer-bottom small{display:block;font:400 10px/1.8 var(--sans);margin:0;color:var(--footer-muted)}
#site-footer .s-footer-blog{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:10px 0;border-bottom:1px solid #b3a59c;font:400 12px/1.8 var(--sans)}
#site-top a:focus-visible,#site-top summary:focus-visible,#site-top button:focus-visible,#site-footer a:focus-visible,#mobile-menu a:focus-visible,#mobile-menu button:focus-visible,#mobile-menu summary:focus-visible{outline:2px solid #98717f;outline-offset:4px}
@media(max-width:1279px){
 #site-top .s-header-row{gap:18px;padding-inline:24px}
 #site-top .s-header-row>.s-support{display:none}
 #site-top .s-desktop-nav{justify-content:flex-end;gap:14px}
}
@media(max-width:1080px){
 #site-top .s-header-row{display:flex;justify-content:space-between;min-height:66px;padding:10px 20px;gap:12px}
 #site-top .s-desktop-nav,#site-top .s-header-row>.s-support{display:none}
 #site-top .s-brand-mark{font-size:26px}#site-top .s-brand-name{font-size:14px}#site-top .s-header-links{gap:17px;margin-left:auto}
 #site-top .s-menu-button{display:flex}
}
@media(max-width:900px){
 #site-top .s-header-links>.s-reserve{display:none}
 #site-top .s-brand-name{font-size:13px}
 #site-footer{padding-top:38px}
 #site-footer .s-shell{width:calc(100% - 50px)}
 #site-footer .s-footer-top{display:block}#site-footer .s-brand-name{font-size:18px}
 #site-footer .s-support{width:100%;margin-top:26px}
 #site-footer .s-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding-top:26px}
 #site-footer .s-footer-group:first-child{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}
 #site-footer .s-footer-group:first-child h2{grid-column:1/-1}
 #site-footer .s-footer-group h2{font-size:11px}#site-footer .s-footer-group a{font-size:11px;min-height:44px;margin-bottom:3px;padding:8px 0}
 #site-footer .s-footer-bottom{display:block}#site-footer .s-footer-bottom small{margin-top:22px;font-size:9px}
}
@media(max-width:360px){
 #site-top .s-header-row{padding-inline:16px;gap:8px}#site-top .s-header-links{gap:12px}#site-top .s-brand{gap:7px}
 #site-top .s-brand-name{font-size:11px}#site-top .s-brand-name small{font-size:8px}#site-top .s-brand-mark{font-size:23px}
 #site-footer .s-shell{width:calc(100% - 42px)}#site-footer .s-brand-name{font-size:16px}
}
