/*!
Theme Name: molti
Theme URI: https://github.com/WiredSkyStudio/molti-tarumi
Author: Wired Sky Studio
Description: モルティ垂水のオリジナルテーマ
Version: 1.1.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: molti
molti is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.
*/
:root { --color-text:#333; --color-beige:#ad9783; --font-en:"Krona One",sans-serif; }
* { box-sizing:border-box; }
html { font-size:62.5%; scroll-behavior:smooth; }
body { margin:0; color:var(--color-text); background:#fff; font-family:"Zen Kaku Gothic New",sans-serif; font-size:1.6rem; font-weight:500; line-height:1.8; -webkit-text-size-adjust:100%; }
body.is-menu-open { overflow:hidden; }
h1,h2,h3,h4,p,ul,ol { margin:0; padding:0; }
ul { list-style:none; }
img { display:block; max-width:100%; height:auto; }
a { color:inherit; text-decoration:none; }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; }
a,button { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible { outline:3px solid #8c714f; outline-offset:5px; }
[hidden] { display:none !important; }
.screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.SkipLink { position:fixed; top:0; left:16px; z-index:1000; padding:12px 20px; background:#fff; transform:translateY(-150%); }
.SkipLink:focus { transform:translateY(0); }
.SvgSymbols { position:absolute; width:0; height:0; overflow:hidden; }
.NavIcon,.BlockGuideIcon { width:32px; height:32px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.CircleArrow { display:block; flex:none; width:52px; height:52px; object-fit:contain; transition:opacity .2s; }

.TextLink { display:inline-flex; flex-direction:row-reverse; align-items:center; gap:20px; font-size:1.6rem; font-weight:700; white-space:nowrap; text-decoration:underline; text-underline-offset:10px; text-decoration-thickness:1px; }
.BlockTitle { font-family:var(--font-en); font-size:4rem; font-weight:400; line-height:1.4; }
.BlockTitle span { display:block; margin-top:5px; font-family:"Zen Kaku Gothic New",sans-serif; font-size:1.6rem; font-weight:500; }
@media (hover:hover) {
a:hover .CircleArrow { opacity:.7; }

.TextLink:hover { color:#7d6e5f; }
}
.SiteHeader { position:relative; z-index:50; height:100px; background:#fff; }
.SiteHeaderInner { display:flex; align-items:center; justify-content:space-between; height:100%; padding:0 20px 0 30px; gap:30px; }
.SiteHeaderLogo { flex:none; width:146px; }
.GlobalNav { margin-left:auto; margin-right:auto; }
.GlobalNavList { display:flex; align-items:center; }
.GlobalNavItem { width:clamp(105px,9.25vw,133.33px); }
.GlobalNavItem + .GlobalNavItem { border-left:1px solid #ddd; }
.GlobalNavItem a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; min-height:52px; font-size:1.4rem; line-height:1.6; transition:color .2s; }
.GlobalNavItem .NavIcon { width:28px; height:28px; color:var(--color-beige); }
.HeaderRight { flex:none; }
.HeaderLine { display:block; width:150px; height:auto; }



.HamburgerBtn { display:none; flex:none; position:relative; width:48px; height:48px; padding:0; border:1px solid #999; border-radius:50%; background:#fff; }
.HamburgerBtn span { position:absolute; left:12px; width:22px; height:1px; background:#333; transition:transform .2s,opacity .2s; }
.HamburgerBtn span:nth-child(1) { top:16px; }
.HamburgerBtn span:nth-child(2) { top:23px; }
.HamburgerBtn span:nth-child(3) { top:30px; }
.HamburgerBtn[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.HamburgerBtn[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.HamburgerBtn[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.SpNavOverlay { position:fixed; inset:100px 0 0; z-index:39; background:#0006; }
.SpNav { position:fixed; top:100px; right:0; bottom:0; z-index:40; width:min(100%,480px); overflow-y:auto; overscroll-behavior:contain; padding:30px; background:#fff; }
.SpNavList a { display:flex; align-items:center; gap:18px; min-height:76px; border-bottom:1px solid #ddd; }
.SpNavList .NavIcon { color:var(--color-beige); }
.SpNavList small { display:block; color:#756453; font-size:1rem; font-family:var(--font-en); }
.SpNavLine { display:block; width:252px; max-width:100%; margin:30px auto 0; }
@media (max-width:1199px) {
.GlobalNav { display:none; }
.HeaderRight { margin-left:auto; }
.HamburgerBtn { display:block; }
}
@media (max-width:767px) {
.SiteHeader { height:80px; }
.SiteHeaderInner { padding:0 20px; gap:14px; }
.SiteHeaderLogo { width:120px; }
.HeaderLine { width:100px; height:auto; }


.HamburgerBtn { width:44px; height:44px; }
.HamburgerBtn span { left:10px; }
.SpNav,.SpNavOverlay { top:80px; }
.BlockTitle { font-size:2.8rem; }
.BlockTitle span { font-size:1.4rem; }
.CircleArrow { width:44px; height:44px; }
.TextLink { gap:10px; font-size:1.4rem; }
}
.Section_MV { overflow:hidden; }
.BlockMVSlider { overflow:visible; }
.BlockMVSlide { width:min(62.5vw,900px); aspect-ratio:3/2; overflow:hidden; border-radius:8px; }
.BlockMVSlide a { display:block; width:100%; height:100%; }
.BlockMVSlide a:focus-visible { outline:3px solid #81796b; outline-offset:-4px; }
.BlockMVSlide img { width:100%; height:100%; object-fit:cover; }
.BlockMVSlide img[src*="photo-0040"] { position:relative; left:-2.2222%; top:-18.3333%; width:120%; max-width:none; height:120%; }
.BlockMVControls { display:flex; align-items:center; justify-content:center; gap:10px; height:40px; }
.BlockMVPagination { display:flex; align-items:center; justify-content:center; width:auto !important; min-height:32px; }
.BlockMVPagination .swiper-pagination-bullet { display:flex; align-items:center; justify-content:center; width:20px; height:28px; margin:0 !important; padding:0; border:0; background:none; opacity:1; border-radius:0; }
.BlockMVPagination .swiper-pagination-bullet::before { content:""; width:4px; height:4px; border-radius:2px; background:#d1cecb; transition:width .3s; }
.BlockMVPagination .swiper-pagination-bullet-active::before { width:20px; background:var(--color-beige); }
.BlockMVPause { display:flex; align-items:center; justify-content:center; width:28px; height:28px; padding:0; border:0; color:#756453; background:transparent; font-family:Arial,sans-serif; font-size:1.2rem; line-height:1; }
@media (max-width:767px) {
.BlockMVSlide { width:86vw; }
}
.Section_About { padding-top:80px; overflow:hidden; }
.BlockAbout { position:relative; width:min(100%,1440px); height:550px; margin:0 auto; }
.BlockAboutInner { position:relative; z-index:2; }
.BlockAboutTitle { position:absolute; top:15px; left:7.6389%; width:36.1111%; }
.BlockAboutTitle img { width:100%; }
.BlockAboutText { position:absolute; top:150px; left:22.2222%; font-size:1.8rem; font-weight:700; line-height:2.5556; letter-spacing:.1em; }
.BlockAboutPhoto { position:absolute; overflow:hidden; border-radius:8px; }
.BlockAboutPhoto img { width:100%; height:100%; object-fit:cover; }
.BlockAboutPhoto--left { top:170px; left:0; width:15.2778%; height:330px; border-radius:0 8px 8px 0; }
.BlockAboutPhoto--main { top:0; right:0; width:43.75%; height:420px; border-radius:8px 0 0 8px; }
.BlockAboutPhoto--small { top:390px; left:51.8056%; width:16.6667%; height:160px; }
@media (min-width:768px) and (max-width:1199px) {
.BlockAbout { height:500px; }
.BlockAboutText { top:120px; left:20%; font-size:clamp(1.2rem,1.3vw,1.5rem); letter-spacing:.02em; line-height:2.6; }
.BlockAboutPhoto--main { height:340px; }
.BlockAboutPhoto--left { top:155px; height:280px; width:15%; }
.BlockAboutPhoto--small { top:310px; height:150px; }
}
@media (max-width:1023px) {
.Section_About { padding-top:48px; }
.BlockAbout { display:flex; flex-wrap:wrap; align-items:flex-end; gap:16px; height:auto; padding-bottom:20px; }
.BlockAboutInner { width:100%; }
.BlockAboutTitle { position:static; width:min(90%,460px); margin:0 auto 24px; }
.BlockAboutText { position:static; width:fit-content; margin:0 auto; padding:0 7%; font-size:clamp(1.3rem,3.55vw,1.6rem); letter-spacing:.025em; line-height:2.3; }
.BlockAboutPhoto { position:relative; top:auto; left:auto; right:auto; }
.BlockAboutPhoto--main { order:1; width:80%; max-height:400px; height:auto; aspect-ratio:3/2; margin:18px 0 0 auto; }
.BlockAboutPhoto--left { order:2; width:30%; max-height:300px; height:auto; aspect-ratio:2/3; margin-top:-65px; }
.BlockAboutPhoto--small { order:3; width:45%; max-height:220px; height:auto; aspect-ratio:3/2; margin:0 0 25px 6%; }
}
.Section_Guide { padding:110px 0 120px; }
.BlockGuide { display:flex; gap:20px; width:min(calc(100% - 80px),1200px); margin:auto; }
.BlockGuideItem { position:relative; width:calc((100% - 20px)/2); height:340px; overflow:hidden; color:#fff; border-radius:8px; }
.BlockGuidePhoto { position:absolute; width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.BlockGuideItem::after { content:""; position:absolute; inset:0; background:#0007; }
.BlockGuideInner { position:relative; z-index:1; height:100%; padding:40px 50px; }
.BlockGuideTitle { font-family:var(--font-en); font-size:2.8rem; font-weight:400; line-height:1.5; }
.BlockGuideTitle span { display:block; font-family:"Zen Kaku Gothic New",sans-serif; font-size:1.6rem; }
.BlockGuideIcon { position:absolute; top:44px; right:48px; width:40px; height:40px; }
.BlockGuideText { margin-top:50px; padding-left:20px; border-left:1px solid #fff; font-size:1.6rem; line-height:1.8; }
.BlockGuideMore { position:absolute; right:30px; bottom:30px; display:flex; flex-direction:row-reverse; align-items:center; gap:20px; font-weight:700; text-decoration:underline; text-underline-offset:10px; text-decoration-thickness:1px; }
@media (hover:hover) {
.BlockGuideItem:hover .BlockGuidePhoto { transform:scale(1.035); }
}
@media (min-width:768px) and (max-width:1199px) {
.BlockGuideInner { padding:30px; }
.BlockGuideTitle { font-size:2.2rem; }
.BlockGuideIcon { right:25px; top:35px; width:28px; height:28px; }
.BlockGuideMore { right:30px; }
}
@media (max-width:767px) {
.Section_Guide { padding:45px 0 70px; }
.BlockGuide { flex-direction:column; width:calc(100% - 40px); gap:20px; }
.BlockGuideItem { width:100%; height:290px; }
.BlockGuideInner { padding:30px; }
.BlockGuideTitle { font-size:2.2rem; }
.BlockGuideTitle span,.BlockGuideText { font-size:1.4rem; }
.BlockGuideIcon { top:32px; right:24px; width:30px; height:30px; }
.BlockGuideMore { right:25px; bottom:24px; font-size:1.4rem; }
}
@media (max-width:390px) {
.BlockGuideInner { padding:30px 24px; }
.BlockGuideTitle { font-size:1.85rem; }
.BlockGuideIcon { right:20px; width:24px; height:24px; }
.BlockGuideText { font-size:1.3rem; }
}
.Section_Information { overflow:hidden; }
.BlockInformation { position:relative; width:min(100%,1440px); height:700px; margin:auto; padding-top:120px; }
.BlockInformation::before { content:""; position:absolute; top:0; right:8.3333%; width:calc(91.6667% + (100vw - 100%)/2); height:450px; background:#333; }
.BlockInformationOutline { position:absolute; z-index:1; top:85px; left:6.25%; color:transparent; -webkit-text-stroke:1px #827b75; font-family:var(--font-en); font-size:clamp(4rem,5.7vw,8.2rem); line-height:1; white-space:nowrap; }
.BlockInformationPhoto { position:relative; width:91.6667%; height:520px; margin-left:auto; object-fit:cover; border-radius:8px 0 0 8px; }
.BlockInformationInner { position:absolute; top:450px; left:0; width:430px; height:250px; padding:60px 60px 35px 80px; border-radius:0 8px 0 0; background:#fff; }
.BlockInformationInner h2 { font-family:var(--font-en); font-size:2.8rem; font-weight:400; line-height:1.5; }
.BlockInformationInner h2 span { display:block; margin-top:5px; font-family:"Zen Kaku Gothic New",sans-serif; font-size:1.6rem; }
.BlockInformationInner .TextLink { display:flex; justify-content:flex-end; margin-top:25px; }
@media (max-width:767px) {
.BlockInformation { height:auto; padding-top:75px; padding-bottom:170px; }
.BlockInformation::before { right:6%; width:94%; height:260px; }
.BlockInformationOutline { top:35px; left:5%; font-size:6.4vw; }
.BlockInformationPhoto { width:94%; height:auto; aspect-ratio:1.65; }
.BlockInformationInner { top:auto; bottom:0; width:85%; height:205px; padding:30px 25px 25px; }
.BlockInformationInner h2 { font-size:2.2rem; }
.BlockInformationInner .TextLink { margin-top:20px; }
}
.Section_Topics { padding:80px 0 110px; }
.BlockTopics { width:min(calc(100% - 80px),1200px); margin:auto; }
.BlockTopicsHeader { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:45px; }
.BlockTopicsList { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 80px; }
.BlockTopicsItem a { display:flex; gap:30px; min-height:120px; }
.BlockTopicsPhoto { flex:none; display:flex; align-items:center; justify-content:center; width:160px; height:120px; overflow:hidden; border-radius:6px; background:#f4f4f4; }
.BlockTopicsPhoto img { width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.BlockTopicsPhoto img.BlockTopicsNoImage { width:75%; height:auto; object-fit:contain; }
.BlockTopicsBody { flex:1; min-width:0; padding:7px 0 20px; border-bottom:1px solid #e7e7e7; }
.BlockTopicsMeta { display:flex; flex-wrap:wrap; align-items:center; gap:8px 15px; margin-bottom:13px; }
.BlockTopicsMeta time { font-family:var(--font-en); font-size:1.2rem; }
.BlockTopicsCategory { min-width:100px; max-width:100%; padding:0 10px; border:1px solid var(--color-beige); color:#9f8167; border-radius:20px; font-size:1.2rem; text-align:center; }
.BlockTopicsText { font-size:1.6rem; font-weight:500; line-height:1.75; overflow-wrap:anywhere; }
.BlockTopicsEmpty { padding:55px 20px; border-top:1px solid #eee; border-bottom:1px solid #eee; color:#6b625b; text-align:center; }
@media (hover:hover) {
.BlockTopicsItem a:hover .BlockTopicsPhoto img { transform:scale(1.04); }
.BlockTopicsItem a:hover .BlockTopicsText { text-decoration:underline; text-underline-offset:4px; }
}
@media (min-width:768px) and (max-width:1199px) {
.BlockTopicsList { column-gap:35px; }
.BlockTopicsItem a { gap:18px; }
.BlockTopicsPhoto { width:115px; height:100px; }
}
@media (max-width:767px) {
.Section_Topics { padding:45px 0 65px; }
.BlockTopics { width:calc(100% - 40px); }
.BlockTopicsHeader { margin-bottom:30px; }
.BlockTopicsList { grid-template-columns:minmax(0,1fr); gap:24px; }
.BlockTopicsItem a { gap:18px; min-height:100px; }
.BlockTopicsPhoto { width:100px; height:90px; }
.BlockTopicsBody { padding-top:0; }
.BlockTopicsText { font-size:1.4rem; }
.BlockTopicsMeta { gap:6px 10px; margin-bottom:8px; }
.BlockTopicsMeta time { font-size:1rem; }
.BlockTopicsCategory { min-width:70px; font-size:1rem; }
}
.Section_Access { padding-bottom:100px; }
.BlockAccess { display:flex; width:min(calc(100% - 80px),1200px); min-height:460px; margin:auto; overflow:hidden; border-radius:8px; background:#333; color:#fff; }
.BlockAccessMap { position:relative; display:block; flex:1; min-width:0; min-height:320px; }
.BlockAccessMap iframe { position:absolute; inset:0; display:block; width:100%; height:100%; border:0; }
.BlockAccessInner { width:430px; flex:none; padding:60px 50px 45px 70px; font-size:1.4rem; }
.BlockAccessInner .BlockTitle { color:#bba38b; }
.BlockAccessInner .BlockTitle span { font-size:1.4rem; }
.BlockAccessAddress { margin-top:35px; }
.BlockAccessInner h3 { margin-top:40px; color:#bba38b; font-size:1.4rem; font-weight:500; }
.BlockAccessNote { margin-top:6px; font-size:1.2rem; }
@media (min-width:768px) and (max-width:1199px) {
.BlockAccessInner { width:370px; padding:45px 30px; }
}
@media (max-width:900px) {
.Section_Access { padding-bottom:65px; }
.BlockAccess { flex-direction:column; width:calc(100% - 40px); }
.BlockAccessMap { flex:auto; aspect-ratio:1.7; }

.BlockAccessInner { width:100%; padding:35px 25px; }
.BlockAccessAddress { margin-top:25px; }
.BlockAccessInner h3 { margin-top:25px; }
}
.Section_Line { padding:60px 0; background:#f4f4f4; }
.BlockLine { width:min(calc(100% - 80px),900px); margin:auto; }
.BlockLineLink { display:block; }
.BlockLineLink > img { width:100%; }
.BlockLineMobile { display:none; }
.SiteFooter { position:relative; min-height:400px; background:#333; color:#fff; }
.SiteFooterInner { display:flex; flex-wrap:wrap; align-items:flex-start; gap:0 30px; width:min(calc(100% - 80px),1200px); margin:auto; padding:80px 0 35px; }
.SiteFooterL { width:420px; }
.SiteFooterLogo { display:block; width:200px; margin-bottom:22px; }
.SiteFooterAddress { font-size:1.3rem; line-height:2; }
.SiteFooterAddress p + p { margin-top:3px; }
.SiteFooterMap { display:inline-flex; align-items:center; gap:30px; width:120px; padding-bottom:5px; border-bottom:1px solid #fff; margin-top:22px; font-family:var(--font-en); font-size:1.2rem; }
.SiteFooterMap .NavIcon { width:20px; height:24px; color:#bba38b; }
.SiteFooterC { width:330px; padding-top:20px; }
.SiteFooterNav { display:grid; grid-template-columns:1fr 1fr; gap:30px; font-size:1.4rem; }
.SiteFooterNav a { display:block; padding-bottom:10px; border-bottom:1px solid #888; }
.SiteFooterR { display:flex; flex:1; align-items:flex-start; gap:20px; padding-top:20px; }
.SiteFooterLine { flex:none; width:252px; max-width:100%; }
.SiteFooterLineText { width:100%; }
.SiteFooterLineText img { width:100%; height:auto; }
.SiteFooterLineBtn { display:block; width:100%; margin-top:15px; }
.SiteFooterQr { flex:none; width:110px; }
.SiteFooterCopy { width:100%; margin-top:20px; text-align:right; font-size:1rem; font-weight:400; }
.PageTop { position:absolute; right:10px; bottom:20px; display:block; padding:10px; }
.PageTop img { width:13px; height:113px; }
@media (hover:hover) {
.GlobalNavItem a:hover,.SiteFooterNav a:hover { color:var(--color-beige); }
a.BlockLineLink:hover { opacity:.85; }
}
@media (max-width:1399px) and (min-width:768px) {
.SiteFooterL { width:32%; }
.SiteFooterC { width:29%; }
.SiteFooterNav { gap:25px 15px; }
.SiteFooterR { flex-wrap:wrap; }
.SiteFooterLine { width:252px; max-width:100%; }
.SiteFooterQr { width:85px; }
}
@media (min-width:768px) and (max-width:1023px) {
.SiteFooterInner { gap:35px; }
.SiteFooterL,.SiteFooterC { width:calc((100% - 35px)/2); }
.SiteFooterR { flex:none; width:100%; padding-top:0; }
.SiteFooterLine { max-width:250px; }
.SiteFooterCopy { margin-top:0; }
}
@media (max-width:767px) {
.Section_Line { padding:40px 0; }
.BlockLine { width:calc(100% - 40px); max-width:440px; }
.BlockLineLink > img { display:none; }
.BlockLineMobile { display:block; padding:20px; border-radius:8px; background:#35b058; }
.BlockLineMobileHead { display:block; width:100%; height:auto; }

.BlockLineMobileBenefits { display:block; width:100%; height:auto; margin:20px auto; }
.BlockLineMobileBtn { display:block; width:100%; height:auto; }
.SiteFooterInner { flex-direction:column; width:calc(100% - 60px); gap:35px; padding:45px 0 30px; }
.SiteFooterL,.SiteFooterC,.SiteFooterR { width:100%; padding:0; }
.SiteFooterLogo { width:170px; }
.SiteFooterC { border-top:1px solid #676767; padding-top:25px; }
.SiteFooterNav { gap:24px; }
.SiteFooterR { flex-wrap:wrap; gap:20px; }
.SiteFooterLine { width:252px; max-width:100%; }
.SiteFooterQr { width:85px; }
.SiteFooterCopy { margin:0; padding-right:20px; font-size:.9rem; text-align:left; }
.PageTop { right:2px; bottom:20px; }
}
.site-main:not(.TopMain) { width:min(calc(100% - 40px),1200px); margin:60px auto; }
.site-main:not(.TopMain) h1 { margin-bottom:25px; font-size:3rem; }
.entry-content { overflow-wrap:anywhere; }
.entry-content p { margin:0 0 1.5em; }
.entry-content ul,.entry-content ol { margin:0 0 1.5em 1.5em; }
.entry-content ul { list-style:disc; }
.entry-content h2,.entry-content h3 { margin:1.5em 0 .75em; }
.entry-content a { text-decoration:underline; }
.entry-content iframe { max-width:100%; }
.alignleft { float:left; margin:0 1.5em 1.5em 0; }
.alignright { float:right; margin:0 0 1.5em 1.5em; }
.aligncenter { display:block; margin:0 auto 1.5em; }
.wp-caption { max-width:100%; }
.wp-caption-text,.gallery-caption { font-size:1.3rem; }
.gallery { display:grid; gap:15px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.gallery-item { margin:0; }
.sticky { display:block; }
.bypostauthor { display:block; }
@media (max-width:360px) {
.SiteHeaderInner { padding:0 16px; gap:10px; }
.SiteHeaderLogo { width:100px; }
}
@media (prefers-reduced-motion:reduce) {
html { scroll-behavior:auto; }
*,*::before,*::after { transition:none !important; }
}
.SubMain { padding-bottom:0; }
.Section_PageTitle { background:#817a72; color:#fff; }
.BlockPageTitle { width:min(1120px,calc(100% - 80px)); margin:auto; padding:54px 0 50px; text-align:center; }
.BlockPageTitleEn { font-family:var(--font-en); font-size:4.2rem; font-weight:400; line-height:1.4; letter-spacing:.025em; }
.BlockPageTitleText { margin-top:10px; font-size:1.7rem; letter-spacing:.12em; }
.BlockBreadcrumb { width:min(1120px,calc(100% - 80px)); margin:20px auto 0; }
.BlockBreadcrumbInner { display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:8px 18px; list-style:none; font-size:1.2rem; }
.BlockBreadcrumbInner li { display:flex; align-items:center; gap:18px; min-width:0; overflow-wrap:anywhere; }
.BlockBreadcrumbInner li + li::before { content:""; display:block; flex:none; width:5px; height:5px; border-top:1px solid #817a72; border-right:1px solid #817a72; transform:rotate(45deg); }
.BlockBreadcrumbInner a { text-decoration:underline; text-underline-offset:4px; }
.Section_Shop { padding:60px 0 100px; }
.BlockShop { width:min(1120px,calc(100% - 80px)); margin:auto; }
.BlockShopIntro { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; align-items:start; }
.BlockShopGallery { min-width:0; }
.BlockShopPhoto { aspect-ratio:1; overflow:hidden; background:#f1eeea; }
.BlockShopPhoto img { width:100%; height:100%; object-fit:cover; }
.BlockShopPhotoEmpty { display:flex; align-items:center; justify-content:center; color:#817a72; text-align:center; }
.BlockShopPhotoEmpty > span { font-family:var(--font-en); font-size:2.8rem; letter-spacing:.06em; }
.BlockShopPhotoEmpty span span { display:block; margin-top:10px; font-family:"Zen Kaku Gothic New",sans-serif; font-size:1.3rem; letter-spacing:.08em; }
.BlockShopThumbnails { display:flex; flex-wrap:wrap; gap:16px; margin-top:20px; }
.BlockShopThumbnail { width:calc((100% - 48px)/4); aspect-ratio:1; padding:4px; border:1px solid transparent; background:transparent; }
.BlockShopThumbnail img { width:100%; height:100%; object-fit:cover; }
.BlockShopThumbnail.is-active { border-color:#817a72; }
.BlockShopHeading { display:flex; align-items:center; gap:26px; }
.BlockShopLogo { display:flex; align-items:center; justify-content:center; flex:none; width:134px; height:134px; border:1px solid #ded8d1; padding:7px; }
.BlockShopLogo img { width:100%; height:100%; object-fit:contain; }
.BlockShopLogoPlaceholder { color:#9a9187; font-family:var(--font-en); font-size:1.6rem; line-height:1.6; text-align:center; }
.BlockShopName { min-width:0; }
.BlockShopKana { font-size:1.2rem; letter-spacing:.06em; }
.BlockShopName h1 { margin-top:5px; font-size:3rem; font-weight:700; line-height:1.5; overflow-wrap:anywhere; }
.BlockShopCategory { display:inline-block; margin-top:12px; padding:2px 16px; background:#f0ece7; font-size:1.2rem; }
.BlockShopDescription { margin-top:36px; line-height:2.1; white-space:pre-line; overflow-wrap:anywhere; }
.BlockShopLinks { display:flex; flex-wrap:wrap; gap:18px 32px; margin-top:32px; }
.BlockShopLinks a { display:inline-flex; align-items:center; gap:18px; font-size:1.6rem; text-decoration:underline; text-underline-offset:6px; }
.BlockShopLinks img { width:36px; height:36px; }
.BlockShopSns { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:16px 0 0; padding:0; list-style:none; }
.BlockShopSns a { display:flex; align-items:center; justify-content:center; width:44px; height:44px; }
.BlockShopSns a:focus-visible { outline:2px solid #81796b; outline-offset:3px; }
.BlockShopSns img { display:block; width:40px; height:40px; object-fit:contain; }
.BlockShopSns .BlockShopSnsLink-youtube img { width:58.54px; height:auto; max-width:none; flex-shrink:0; }
.BlockShopInformation { margin-top:85px; }
.BlockShopInfoTitle { font-family:var(--font-en); font-size:2.4rem; font-weight:400; text-align:center; line-height:1.5; }
.BlockShopInfoTitle span { display:block; margin-top:8px; font-family:"Zen Kaku Gothic New",sans-serif; font-size:1.3rem; }
.BlockShopInfoList { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 64px; margin:36px 0 0; }
.BlockShopInfoRow { display:grid; grid-template-columns:100px minmax(0,1fr); gap:16px; padding:24px 0; border-bottom:1px solid #c7bfb6; }
.BlockShopInfoRow dt { font-weight:700; font-size:1.6rem; }
.BlockShopInfoRow dd { margin:0; font-size:1.6rem; white-space:pre-line; overflow-wrap:anywhere; }
.BlockShopInfoRow a { text-decoration:underline; text-underline-offset:4px; }
.BlockShopNote { margin-top:24px; font-size:1.4rem; white-space:pre-line; }
.BlockShopBack { display:flex; justify-content:center; margin-top:60px; }
.BlockShopBack a { display:inline-flex; align-items:center; gap:24px; font-size:1.5rem; }
.BlockShopBack img { width:44px; height:44px; transform:rotate(180deg); }
@media (max-width:1023px) {
.BlockShopIntro { gap:32px; }
.BlockShopHeading { gap:18px; }
.BlockShopLogo { width:96px; height:96px; }
.BlockShopName h1 { font-size:2.4rem; }
.BlockShopInfoList { gap:0 32px; }
.BlockShopInfoRow { grid-template-columns:80px minmax(0,1fr); gap:12px; }
}
@media (max-width:767px) {
.BlockPageTitle { width:calc(100% - 40px); padding:38px 0 36px; }
.BlockPageTitleEn { font-size:2.8rem; }
.BlockPageTitleText { margin-top:7px; font-size:1.4rem; }
.BlockBreadcrumb { width:calc(100% - 40px); margin-top:16px; }
.BlockBreadcrumbInner { gap:6px 12px; font-size:1.1rem; }
.BlockBreadcrumbInner li { gap:12px; }
.Section_Shop { padding:34px 0 60px; }
.BlockShop { width:calc(100% - 40px); }
.BlockShopIntro { grid-template-columns:minmax(0,1fr); gap:30px; }
.BlockShopThumbnails { gap:10px; margin-top:14px; }
.BlockShopThumbnail { width:calc((100% - 30px)/4); }
.BlockShopLogo { width:90px; height:90px; }
.BlockShopName h1 { font-size:2.4rem; }
.BlockShopCategory { margin-top:8px; }
.BlockShopDescription { margin-top:25px; font-size:1.5rem; }
.BlockShopLinks { margin-top:24px; }
.BlockShopInformation { margin-top:55px; }
.BlockShopInfoTitle { font-size:1.9rem; }
.BlockShopInfoList { grid-template-columns:minmax(0,1fr); margin-top:24px; }
.BlockShopInfoRow { padding:20px 0; grid-template-columns:80px minmax(0,1fr); gap:18px; }
.BlockShopInfoRow dt,.BlockShopInfoRow dd { font-size:1.5rem; }
.BlockShopBack { margin-top:40px; }
}
.BlockPageTitleText { font-weight:500; }
.BlockButton { display:inline-flex; justify-content:space-between; align-items:center; gap:30px; min-height:70px; padding:12px 20px 12px 28px; border:1px solid #c7bfb6; font-size:1.5rem; font-weight:700; }
.BlockButton img { flex:none; width:40px; height:40px; }
.Section_ShopList { padding:60px 0 100px; }
.BlockShopList { width:min(1120px,calc(100% - 80px)); margin:auto; }
.BlockShopFilter { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:40px; }
.BlockShopFilterLink { display:flex; align-items:center; justify-content:center; gap:10px; min-height:44px; padding:10px 20px; border:1px solid #c7bfb6; border-radius:4px; font-size:1.4rem; background:#fff; }
.BlockShopFilterLink--gourmet,.BlockShopListCategory--gourmet { --shop-category-color:#f5adc0; }
.BlockShopFilterLink--fashion,.BlockShopListCategory--fashion { --shop-category-color:#78b6a7; }
.BlockShopFilterLink--food,.BlockShopListCategory--food { --shop-category-color:#f9a77e; }
.BlockShopFilterLink--goods-service,.BlockShopListCategory--goods-service { --shop-category-color:#84c7d8; }
.BlockShopFilterLink--gourmet::before,.BlockShopFilterLink--fashion::before,.BlockShopFilterLink--food::before,.BlockShopFilterLink--goods-service::before,.BlockShopListCategory--gourmet::before,.BlockShopListCategory--fashion::before,.BlockShopListCategory--food::before,.BlockShopListCategory--goods-service::before { content:''; width:12px; height:12px; flex-shrink:0; background:var(--shop-category-color); }
.BlockShopFilterLink.is-active { background:#514a43; border-color:#514a43; color:#fff; }
.BlockShopFilterLink:hover, .BlockShopFilterLink:focus-visible { outline:2px solid #81796b; outline-offset:2px; }
.BlockShopSearch { max-width:620px; margin:-12px 0 42px; }
.BlockShopSearch > label { display:block; margin-bottom:10px; font-size:1.4rem; font-weight:700; }
.BlockShopSearchField { display:flex; }
.BlockShopSearchField input { min-width:0; flex:1; min-height:50px; padding:10px 16px; border:1px solid #c7bfb6; border-right:0; border-radius:4px 0 0 4px; background:#fff; font:inherit; }
.BlockShopSearchField button { flex:none; min-width:90px; min-height:50px; padding:10px 20px; border:1px solid #514a43; border-radius:0 4px 4px 0; color:#fff; background:#514a43; font-size:1.4rem; }
.BlockShopSearchField input:focus-visible,.BlockShopSearchField button:focus-visible { position:relative; outline:2px solid #81796b; outline-offset:2px; }
.BlockShopSearchEmpty { padding:50px 0; text-align:center; }
.BlockShopListItems { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px 32px; }
.BlockShopListItem a { display:block; height:100%; }
.BlockShopListPhoto { aspect-ratio:4/3; overflow:hidden; background:#f1eeea; }
.BlockShopListPhoto img { width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.BlockShopListBody { position:relative; padding:20px 54px 20px 0; border-bottom:1px solid #c7bfb6; }
.BlockShopListCategory { display:flex; align-items:center; gap:7px; margin-bottom:8px; font-size:1.2rem; color:#716458; }
.BlockShopListBody h2 { font-size:1.8rem; font-weight:700; line-height:1.6; overflow-wrap:anywhere; }
.BlockShopListArrow { position:absolute; right:0; top:26px; width:36px; height:36px; }
.Section_TopicsArchive { padding-top:60px; }
.Section_TopicsArchive .BlockTopics { max-width:1120px; }
.BlockPagination { margin-top:60px; }
.BlockPagination ul { display:flex; justify-content:center; flex-wrap:wrap; gap:10px; }
.BlockPagination a,.BlockPagination span { display:flex; justify-content:center; align-items:center; min-width:44px; min-height:44px; padding:8px 12px; border:1px solid #c7bfb6; font-size:1.4rem; }
.BlockPagination .current { color:#fff; border-color:#817a72; background:#817a72; }
.BlockPagination .dots { border-color:transparent; }
.Section_Article { padding:55px 0 100px; }
.BlockArticle { width:min(900px,calc(100% - 80px)); margin:auto; }
.BlockArticleHeader { padding-bottom:32px; margin-bottom:40px; border-bottom:1px solid #c7bfb6; }
.BlockArticleHeader h1 { margin-top:20px; font-size:2.8rem; font-weight:700; line-height:1.7; overflow-wrap:anywhere; }
.BlockArticlePhoto { margin:0 auto 36px; }
.BlockArticlePhoto img { width:100%; max-height:600px; object-fit:contain; }
.BlockContentBody { overflow-wrap:anywhere; line-height:2; }
.BlockContentBody > * + * { margin-top:24px; }
.BlockContentBody h2 { margin-top:45px; padding-bottom:12px; border-bottom:1px solid #c7bfb6; font-size:2.4rem; line-height:1.6; }
.BlockContentBody h3 { margin-top:30px; font-size:2rem; line-height:1.6; }
.BlockContentBody ul { padding-left:1.5em; list-style:disc; }
.BlockContentBody ol { padding-left:1.5em; }
.BlockContentBody a { text-decoration:underline; text-underline-offset:4px; }
.BlockContentBody img { max-width:100%; height:auto; }
.BlockContentBody figure { max-width:100%; margin-left:0; margin-right:0; }
.BlockContentBody iframe,.BlockContentBody video { max-width:100%; }
.BlockContentBody table { width:100%; border-collapse:collapse; font-size:1.5rem; }
.BlockContentBody th,.BlockContentBody td { padding:22px 20px; border-bottom:1px solid #c7bfb6; text-align:left; vertical-align:top; }
.BlockContentBody th { width:180px; font-weight:700; }
.BlockArticlePages { display:flex; gap:16px; margin-top:32px; }
.Section_FloorMap { padding:45px 0 100px; }
.BlockFloorMap { width:min(1200px,calc(100% - 80px)); margin:auto; }
.BlockFloorMapLead { margin-bottom:35px; text-align:center; }
.BlockFloorMapImage { display:block; border:1px solid #ded8d1; }
.BlockFloorMapImage img { width:100%; height:auto; }
body.is-map-open { overflow:hidden; }
.BlockFloorMapImage { cursor:zoom-in; }
.BlockFloorMapModal { width:calc(100% - 32px); max-width:1600px; max-height:90vh; max-height:90dvh; margin:auto; padding:0; border:0; color:var(--color-text); background:#fff; overflow:hidden; }
.BlockFloorMapModal::backdrop { background:rgba(32,29,26,.82); }
.BlockFloorMapModalHeader { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 20px; border-bottom:1px solid #ded8d1; }
.BlockFloorMapModalHeader h2 { font-size:clamp(1.4rem,2vw,2rem); }
.BlockFloorMapModalButtons { display:flex; gap:8px; }
.BlockFloorMapModalButtons button { min-height:44px; padding:8px 12px; border:1px solid #817a72; color:#51473e; background:#fff; font-size:1.3rem; white-space:nowrap; }
.BlockFloorMapModalButtons .BlockFloorMapClose { color:#fff; background:#817a72; }
.BlockFloorMapModalView { max-height:calc(90vh - 84px); max-height:calc(90dvh - 84px); overflow:auto; overscroll-behavior:contain; }
.BlockFloorMapModalView img { width:1800px; min-width:100%; max-width:none; }
.BlockFloorMapModalView.is-zoomed img { width:3000px; min-width:100%; }

.BlockFloorMapNote { margin-top:20px; color:#716458; text-align:center; font-size:1.3rem; }
.BlockFloorMapButtons { display:flex; flex-wrap:wrap; justify-content:center; gap:24px; margin-top:40px; }
.Section_Facility { padding:60px 0 100px; }
.BlockFacility { width:min(1120px,calc(100% - 80px)); margin:auto; }
.BlockFacilityIntro { display:grid; grid-template-columns:360px minmax(0,1fr); align-items:center; gap:64px; }
.BlockFacilityLabel { margin-bottom:24px; color:#8c7763; font-family:var(--font-en); font-size:1.2rem; }
.BlockFacilityText h2 { margin-bottom:30px; font-size:3.4rem; line-height:1.7; letter-spacing:.08em; }
.BlockFacilityText p + p { margin-top:22px; }
.BlockFacilityText p { line-height:2; }
.BlockFacilityPhoto img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.BlockFacilityDetails { max-width:900px; margin:80px auto 0; }
.BlockFacilityContent { margin-top:30px; }
.BlockFacilityGuides { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; margin-top:70px; }
.BlockFacilityGuides > a { display:block; }
.BlockFacilityGuidePhoto { width:100%; aspect-ratio:16/9; object-fit:cover; }
.BlockFacilityGuides a > span { display:flex; align-items:center; justify-content:space-between; padding:18px 0; border-bottom:1px solid #c7bfb6; font-size:1.8rem; font-weight:700; }
.BlockFacilityGuides span img { width:40px; height:40px; }
@media (hover:hover) {
.BlockShopListItem a:hover .BlockShopListPhoto img { transform:scale(1.03); }
.BlockShopListItem a:hover h2 { text-decoration:underline; text-underline-offset:5px; }
.BlockButton:hover { background:#f1eeea; }
.BlockPagination a:hover { background:#f1eeea; }
}
@media (max-width:1023px) {
.BlockShopListItems { grid-template-columns:repeat(2,minmax(0,1fr)); }
.BlockFacilityIntro { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:30px; }
.BlockFacilityText h2 { font-size:2.7rem; }
}
@media (max-width:767px) {
.BlockButton { gap:16px; min-height:64px; padding:12px 16px; font-size:1.3rem; }
.BlockButton img { width:36px; height:36px; }
.Section_ShopList { padding:34px 0 60px; }
.BlockShopList { width:calc(100% - 40px); }
.BlockShopSearch { margin-bottom:32px; }
.BlockShopListItems { gap:30px 20px; }
.BlockShopListBody h2 { font-size:1.6rem; }
.Section_TopicsArchive { padding-top:34px; }
.BlockPagination { margin-top:40px; }
.Section_Article { padding:34px 0 60px; }
.BlockArticle { width:calc(100% - 40px); }
.BlockArticleHeader { padding-bottom:24px; margin-bottom:28px; }
.BlockArticleHeader h1 { font-size:2.2rem; }
.BlockContentBody { font-size:1.5rem; }
.BlockContentBody h2 { font-size:2rem; }
.BlockContentBody h3 { font-size:1.8rem; }
.BlockContentBody th { width:92px; }
.BlockContentBody th,.BlockContentBody td { padding:18px 8px; font-size:1.4rem; }
.Section_FloorMap { padding:34px 0 60px; }
.BlockFloorMap { width:calc(100% - 40px); }
.BlockFloorMapLead { margin-bottom:24px; font-size:1.4rem; }
.BlockFloorMapButtons { flex-direction:column; gap:16px; margin-top:28px; }
.BlockFloorMapNote { font-size:1.2rem; }
.BlockFloorMapModalView img { width:1200px; }
.Section_Facility { padding:34px 0 60px; }
.BlockFacility { width:calc(100% - 40px); }
.BlockFacilityIntro { grid-template-columns:minmax(0,1fr); gap:30px; }
.BlockFacilityText h2 { font-size:2.8rem; margin-bottom:22px; }
.BlockFacilityLabel { margin-bottom:16px; }
.BlockFacilityText p { font-size:1.5rem; }
.BlockFacilityDetails { margin-top:50px; }
.BlockFacilityGuides { gap:30px; grid-template-columns:minmax(0,1fr); margin-top:40px; }
.BlockFacilityGuides a > span { font-size:1.6rem; }
}
@media (max-width:599px) {
.BlockShopListItems { grid-template-columns:minmax(0,1fr); }
}
@media (prefers-reduced-motion:reduce) {
.BlockShopListPhoto img { transition:none; }
}
