:root{--brick:#9c3d28;--brick-dark:#71291b;--ink:#2a211d;--muted:#6f6058;--paper:#f6f0e6;--paper-deep:#eee4d5;--line:#e0d3c1;--white:#fff;--serif:"Shippori Mincho", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;--sans:"Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif;--wrap:1120px;--gutter:32px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font-family:var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0;line-height:1.8}img{max-width:100%;display:block}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--brick);outline-offset:3px}.site-header{z-index:50;padding:14px var(--gutter);border-bottom:1px solid var(--line);background:#f6f0e6f0;justify-content:space-between;align-items:center;gap:16px;display:flex;position:sticky;top:0}.brand{color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:flex}.brand-name{font-family:var(--serif);letter-spacing:.02em;font-size:1.05rem;font-weight:700}.brand-mark{background:linear-gradient(var(--brick), var(--brick)) 0 0/9px 4px, linear-gradient(var(--brick), var(--brick)) 11px 0/9px 4px, linear-gradient(var(--brick), var(--brick)) 5px 6px/9px 4px, linear-gradient(var(--brick), var(--brick)) 0 6px/4px 4px, linear-gradient(var(--brick), var(--brick)) 16px 6px/4px 4px, linear-gradient(var(--brick), var(--brick)) 0 12px/9px 4px, linear-gradient(var(--brick), var(--brick)) 11px 12px/9px 4px;background-repeat:no-repeat;flex-shrink:0;width:20px;height:20px}.site-nav{align-items:center;gap:24px;display:flex}.site-nav a{color:var(--ink);font-size:.86rem;text-decoration:none}.site-nav a:hover{color:var(--brick)}.nav-cta{background:var(--brick);border-radius:999px;padding:8px 18px;color:var(--white)!important}.nav-cta:hover{background:var(--brick-dark)}.nav-toggle{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:9px;display:none}.nav-toggle span{background:var(--ink);height:1.5px;display:block}.btn{border-radius:999px;padding:13px 30px;font-size:.92rem;font-weight:700;text-decoration:none;transition:background .2s,color .2s;display:inline-block}.btn-primary{background:var(--brick);color:var(--white)}.btn-primary:hover{background:var(--brick-dark)}.btn-outline{border:1px solid var(--ink);color:var(--ink)}.btn-outline:hover{background:var(--ink);color:var(--paper)}.hero{max-width:1240px;padding:56px var(--gutter) 48px;grid-template-columns:minmax(300px,.85fr) 1.5fr 28px;align-items:end;gap:40px;margin:0 auto;display:grid}.hero-kicker{color:var(--muted);margin:0 0 18px;font-size:.82rem}.hero-title{font-family:var(--serif);letter-spacing:.03em;margin:0 0 24px;font-size:clamp(2.6rem,5vw,3.6rem);font-weight:700;line-height:1.2}.hero-title-line{letter-spacing:.08em;color:var(--brick-dark);margin-bottom:8px;font-size:.4em;font-weight:600;display:block}.hero-lead{margin:0 0 24px;font-size:.98rem}.facts{color:var(--muted);flex-wrap:wrap;gap:6px 20px;margin:0 0 32px;padding:0;font-size:.88rem;list-style:none;display:flex}.facts li:before{content:"";background:var(--brick);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-right:8px;display:inline-block}.hero-photo{margin:0}.hero-photo img{aspect-ratio:4/3;object-fit:cover;border-radius:18px;width:100%}.hero-vertical{writing-mode:vertical-rl;font-family:var(--serif);letter-spacing:.18em;color:var(--brick-dark);align-self:start;margin:0;font-size:.95rem}.block{max-width:var(--wrap);padding:88px var(--gutter);margin:0 auto}.title{letter-spacing:.02em;text-wrap:balance;margin:0 0 28px;font-size:clamp(1.3rem,2.4vw,1.6rem);font-weight:700;line-height:1.4}.block-head{margin-bottom:28px}.block-head .title{margin-bottom:8px}.desc,.hint{color:var(--muted);margin:0;font-size:.9rem}.features{grid-template-columns:.95fr 1.2fr;align-items:start;gap:64px;display:grid}.features-photo{margin:0}.features-photo img{aspect-ratio:4/3;object-fit:cover;object-position:center 70%;border-radius:14px;width:100%}.features-photo figcaption{color:var(--muted);margin-top:10px;font-size:.82rem}.feature-list{padding-top:6px}.feature{border-top:1px solid var(--line);padding:22px 0}.feature:first-child{border-top:0;padding-top:0}.feature h3{margin:0 0 6px;font-size:1.05rem}.feature p{color:var(--muted);margin:0;font-size:.92rem}.gallery{background:var(--paper-deep);padding:72px 0 88px}.gallery .block-head{max-width:var(--wrap);padding:0 var(--gutter);margin:0 auto 28px}.coverflow-stage{padding:24px var(--gutter);gap:16px;display:flex;overflow-x:auto}.coverflow-slide{aspect-ratio:4/3;background:var(--paper-deep);cursor:pointer;border:0;border-radius:8px;flex:none;width:min(58vw,560px);margin:0;padding:0;overflow:hidden}.coverflow-slide img{object-fit:contain;user-select:none;width:100%;height:100%;display:block}.is-ready .coverflow-stage{perspective:1100px;touch-action:pan-y pinch-zoom;cursor:grab;height:min(48vw,480px);display:block;position:relative;overflow:hidden}.is-ready .coverflow-stage:active{cursor:grabbing}.is-ready .coverflow-slide{transform:translate(-50%, -50%) translateX(var(--shift)) translateZ(var(--depth)) rotateY(var(--angle)) scale(.62);filter:saturate(.7);transition:transform .42s,opacity .42s,filter .42s;position:absolute;top:50%;left:50%;box-shadow:0 18px 24px -16px #2a211d66}.is-ready .coverflow-slide img{opacity:.55;transition:opacity .42s}.is-ready .coverflow-slide.is-distant img{opacity:.25}.is-ready .coverflow-slide.is-current{filter:none;cursor:grab;transform:translate(-50%,-50%)}.is-ready .coverflow-slide.is-current img{opacity:1}.is-ready .coverflow-slide.is-hidden{opacity:0;pointer-events:none;visibility:hidden}.coverflow-controls:not([hidden]){padding:0 var(--gutter);justify-content:center;align-items:center;gap:24px;max-width:680px;margin:18px auto 0;display:flex}.coverflow-controls button{border:1px solid var(--line);height:48px;color:var(--brick);cursor:pointer;background:0 0;border-radius:50%;flex:0 0 48px;font-size:1.3rem}.coverflow-controls button[aria-disabled=true]{opacity:.35;cursor:default}.coverflow-status{text-align:center;flex:1;min-height:72px;margin:0}.coverflow-count{color:var(--brick);letter-spacing:.15em;font-variant-numeric:tabular-nums;font-size:.8rem;display:block}.coverflow-caption{margin-top:8px;font-size:.9rem;display:block}.coverflow-dots:not([hidden]){justify-content:center;margin-top:12px;display:flex}.coverflow-dots button{cursor:pointer;background:0 0;border:0;place-items:center;width:36px;height:44px;display:grid}.coverflow-dots span{background:var(--muted);border-radius:50%;width:5px;height:5px}.coverflow-dots [aria-current=true] span{background:var(--brick);width:8px;height:8px}.coverflow :focus-visible{outline:2px solid var(--brick);outline-offset:-3px}@media (prefers-reduced-motion:reduce){.is-ready .coverflow-slide,.is-ready .coverflow-slide img{transition:none}}.spec{border-collapse:collapse;width:100%;font-size:.92rem}.spec th,.spec td{text-align:left;vertical-align:top;border-top:1px solid var(--line);padding:18px 0}.spec tr:last-child th,.spec tr:last-child td{border-bottom:1px solid var(--line)}.spec th{width:13em;padding-right:24px;font-weight:700}.spec ul{flex-wrap:wrap;gap:4px 0;margin:0;padding:0;list-style:none;display:flex}.spec li:not(:last-child):after{content:"／";color:var(--line);margin:0 10px}.notes{padding-top:24px}.notes-list{columns:2;column-gap:56px;margin:0;padding:0;list-style:none}.notes-list li{break-inside:avoid;padding:8px 0 8px 18px;font-size:.92rem;position:relative}.notes-list li:before{content:"";background:var(--brick);border-radius:50%;width:6px;height:6px;position:absolute;top:19px;left:0}.access-wrap{grid-template-columns:1fr 1.1fr;align-items:start;gap:48px;display:grid}.access-address{margin:0 0 12px;font-size:1.1rem;font-weight:700;line-height:1.9}.access-desc{color:var(--muted);margin:0 0 24px;font-size:.9rem}.access-table{border-collapse:collapse;width:100%;margin-bottom:16px;font-size:.9rem}.access-table td{border-bottom:1px solid var(--line);padding:10px 4px}.access-table td:first-child{white-space:nowrap;width:6em;font-weight:700}.access-table td:last-child{text-align:right;white-space:nowrap;color:var(--brick-dark)}.access-note{color:var(--muted);margin:0 0 24px;font-size:.82rem}.access-visual{gap:14px;display:grid}.access-photo{object-fit:cover;object-position:center 40%;border-radius:12px;width:100%;height:280px}.access-map{border:0;border-radius:12px;width:100%;height:300px}.reserve{background:var(--paper-deep)}.reserve-inner{max-width:var(--wrap);padding:88px var(--gutter);margin:0 auto}.reserve-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:40px;display:grid}.cal-wrap{background:var(--white);border-radius:12px;padding:8px}.cal-wrap iframe{border-radius:8px;width:100%;height:560px;display:block}.booking{scroll-margin-top:90px}.booking-title{margin:0 0 12px;font-size:1.05rem}.booking-list{border-top:1px solid var(--line);margin:0 0 20px;padding:0;list-style:none}.booking-list li{border-bottom:1px solid var(--line)}.booking-row{color:var(--ink);grid-template-columns:120px minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px 4px;text-decoration:none;display:grid}.booking-logo{background:var(--white);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:120px;height:46px;padding:6px 12px;display:flex}.booking-logo img{width:auto;max-width:100%;height:auto;max-height:32px}.booking-name{overflow-wrap:anywhere;font-size:.95rem;font-weight:700}.booking-arrow{color:var(--brick);white-space:nowrap;margin-left:auto;font-size:.82rem}.booking-arrow .arrow{margin-left:6px;transition:transform .2s;display:inline-block}.booking-row:hover .booking-name{color:var(--brick)}.booking-row:hover .arrow{transform:translate(4px)}.price-note{color:var(--muted);margin:0;font-size:.86rem}.contact{grid-template-columns:.95fr 1.2fr;align-items:baseline;gap:64px;display:grid}.contact .title{margin:0}.contact-body p{margin:0 0 20px}.contact-note{color:var(--muted);font-size:.9rem}.site-footer{background:var(--ink);color:#b9a89e;padding:40px max(var(--gutter), calc((100vw - var(--wrap)) / 2 + var(--gutter)));flex-wrap:wrap;align-items:baseline;gap:6px 28px;font-size:.82rem;display:flex}.site-footer p{margin:0}.footer-name{font-family:var(--serif);color:var(--paper);font-size:.98rem;font-weight:700}.footer-copy{color:#8c7a70;margin-left:auto!important}.mobile-bar{display:none}@media (width<=900px){.hero{grid-template-columns:1fr 1.1fr;align-items:center;gap:32px;padding-top:40px}.hero-vertical{display:none}.features,.contact{grid-template-columns:1fr;gap:32px}.features-photo img{aspect-ratio:16/9}.access-wrap,.reserve-grid{grid-template-columns:1fr;gap:32px}}@media (width<=1080px){.nav-toggle{display:flex}.site-nav{background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;max-height:calc(100dvh - 100%);padding:8px 0;display:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.site-nav.open{display:flex}.site-nav a{padding:13px var(--gutter);flex-shrink:0;font-size:1rem}.nav-cta{margin:8px var(--gutter);text-align:center}}@media (width<=640px){:root{--gutter:20px}body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.site-header{padding:10px var(--gutter)}.brand-name{font-size:clamp(.85rem,4vw,1.05rem)}.nav-toggle{flex-shrink:0}.hero{padding:16px var(--gutter) 56px;grid-template-columns:1fr;gap:24px}.hero-photo{order:-1}.hero-photo img{border-radius:14px}.hero-text .btn{display:none}.facts{margin-bottom:0}.block,.reserve-inner{padding:56px var(--gutter)}.notes{padding-top:8px}.gallery{padding:48px 0 56px}.coverflow-slide{width:72vw}.is-ready .coverflow-stage{perspective:700px;height:68vw}.coverflow-controls:not([hidden]){gap:12px}.coverflow-caption{font-size:.8rem}.spec th,.spec td{border:0;width:auto;padding:0;display:block}.spec th{border-top:1px solid var(--line);margin-bottom:4px;padding-top:16px}.spec td{padding-bottom:16px}.spec tr:last-child td{border-bottom:1px solid var(--line)}.spec tr:last-child th{border-bottom:0}.notes-list{columns:1}.cal-wrap iframe{height:460px}.booking-logo{width:104px;height:42px}.booking-row{grid-template-columns:104px minmax(0,1fr) auto;gap:12px}.booking-name{font-size:.9rem}.booking-note{display:none}.footer-copy{margin-left:0!important}.mobile-bar{left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:60;background:var(--brick);color:var(--white);text-align:center;border-radius:999px;padding:14px;font-size:.95rem;font-weight:700;text-decoration:none;display:block;position:fixed;box-shadow:0 6px 18px #2a211d40}}
