@charset "UTF-8";
:root{--forest:#14201c;--deep:#0c1512;--surface:#1b2923;--paper:#eeeae1;--white:#faf8f2;--muted:#bdc5b9;--ink:#29332d;--accent:#d9c99f;--line:rgba(224,230,217,.23);--serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;--sans:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--forest);color:var(--white);font-family:var(--sans);font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}button{font:inherit;color:inherit}img{display:block;width:100%;height:100%;object-fit:cover}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}h2{font-size:clamp(1.8rem,3vw,2.75rem);line-height:1.9;letter-spacing:.12em}h3{font-size:clamp(1.45rem,2vw,2rem);line-height:1.9;letter-spacing:.1em}p{overflow-wrap:anywhere}small{font-size:.875rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:8px;left:16px;z-index:100;background:var(--paper);color:var(--ink);padding:10px 20px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.header{position:absolute;inset:0 0 auto;z-index:10;display:flex;align-items:center;gap:32px;padding:32px 4.7%;border-bottom:1px solid rgba(255,255,255,.22)}.brand{display:flex;align-items:center;gap:20px;flex-shrink:0}.brand-ja{font-family:var(--serif);font-size:2.3rem;letter-spacing:.18em;white-space:nowrap}.brand-en{font-family:Georgia,serif;font-size:.875rem;line-height:1.65;letter-spacing:.08em}.desktop-nav{display:flex;gap:28px;align-items:center;margin-left:auto;font-size:.875rem;letter-spacing:.08em}.desktop-nav a{padding:8px 0;position:relative}.desktop-nav a::after{content:"";height:1px;background:currentColor;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0);transform-origin:left;transition:transform .3s}.desktop-nav a:hover::after{transform:scaleX(1)}.header-book{display:flex;align-items:center;gap:28px;padding:10px 20px;border:1px solid rgba(255,255,255,.7);font-size:.875rem;white-space:nowrap;transition:background .25s}.header-book:hover{background:rgba(255,255,255,.13)}.menu-button{display:none;background:none;border:0;width:44px;height:44px;padding:10px;cursor:pointer}.menu-button span{display:block;height:1px;background:currentColor;margin:7px 0}.mobile-nav[hidden]{display:none}.mobile-nav{position:absolute;top:100px;left:0;right:0;background:var(--forest);padding:24px 8%;z-index:11;border-bottom:1px solid var(--line)}.mobile-nav a{display:block;padding:14px 0;border-bottom:1px solid var(--line)}.hero{position:relative;min-height:820px;height:100svh;max-height:1200px;isolation:isolate}.hero-image{position:absolute;inset:0;z-index:-3;object-position:center 48%}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,16,11,.42),rgba(4,16,11,.15) 32%,rgba(4,16,11,.42) 65%,var(--forest));z-index:-2}.hero-title-wrap{position:absolute;inset:24% 0 auto;display:flex;align-items:center;flex-direction:column;text-shadow:0 2px 24px rgba(0,0,0,.65)}.hero-kicker{font-size:.875rem;letter-spacing:.23em;margin-bottom:32px}.hero h1{display:flex;flex-direction:row-reverse;justify-content:center;gap:20px;font-size:clamp(2.2rem,4.4vw,4.25rem);letter-spacing:.2em;line-height:1.65}.hero h1 span{writing-mode:vertical-rl}.hero h1 span+span{padding-top:1.2em}.hero-bottom{position:absolute;bottom:45px;left:4.7%;right:4.7%;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.hero-bottom p{font-size:1rem;line-height:2;letter-spacing:.09em}.hero-bottom p span{font-size:.875rem;color:var(--muted)}.scroll-link{display:flex;gap:22px;align-items:center;font-size:.875rem;letter-spacing:.12em}.scroll-link span{border:1px solid var(--line);border-radius:50%;width:46px;height:46px;display:grid;place-items:center;font-size:1.2rem}.section-pad{padding:128px max(7.5%,calc((100vw - 1240px)/2))}.section-mark{display:flex;gap:20px;align-items:flex-start;color:var(--muted)}.section-mark>span{font-family:Georgia,serif;font-size:1rem;line-height:1.9;color:var(--accent)}.section-mark p{font-size:1rem;letter-spacing:.12em}.section-mark small{display:block;font-family:Georgia,serif;letter-spacing:.1em;margin-top:6px}.intro{display:grid;grid-template-columns:1fr 2.5fr;gap:65px;padding-top:150px;padding-bottom:160px}.intro-main h2{margin-bottom:40px}.body-copy{font-family:var(--serif);font-size:1.063rem;line-height:2.35;letter-spacing:.06em;color:#d7ded3}.body-copy p+p{margin-top:24px}.stay{background:var(--paper);color:var(--ink)}.stay .section-mark{color:#667265}.stay .section-mark>span{color:#7b6140}.stay-heading{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;margin-top:64px}.stay .body-copy{color:#445046}.itinerary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:75px;border-top:1px solid #adb4a9}.itinerary article{padding:35px 30px 8px;border-right:1px solid #bdc3b9}.itinerary article:first-child{padding-left:0}.itinerary article:last-child{border:0;padding-right:0}.day-label{font-family:Georgia,serif;font-size:.9375rem;letter-spacing:.12em;color:#6b785f;display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:28px}.day-label span{font-family:var(--sans);font-size:.875rem;letter-spacing:.03em;color:#536051}.itinerary h3{font-size:1.65rem;margin-bottom:18px}.itinerary article>p{font-size:1rem;line-height:2.15;color:#455044}.day-note{display:block;margin-top:26px;font-size:.875rem;line-height:1.9;color:#61705c}.fine-print{font-size:.875rem!important;line-height:1.9!important;color:var(--muted);letter-spacing:.02em}.stay>.fine-print{margin-top:38px;color:#62705e}.villa{background:var(--deep)}.villa-heading{display:flex;justify-content:space-between;gap:50px;align-items:flex-start;padding-bottom:90px}.villa-heading h2{margin-right:16%}.experience{display:grid;grid-template-columns:1.16fr 1fr;align-items:center}.experience-image{height:610px;min-width:0;overflow:hidden}.experience-image img{transition:transform 1.2s ease}.experience-image:hover img{transform:scale(1.025)}.experience-copy{padding:70px 17% 70px 14%}.eyebrow{font-family:Georgia,serif;font-size:.875rem;letter-spacing:.12em;color:var(--accent);line-height:1.8}.experience h3{margin:23px 0 30px}.experience-copy>p:not(.eyebrow){font-family:var(--serif);font-size:1rem;line-height:2.2;letter-spacing:.055em;color:#d0d8cd}.text-label{display:block;border-top:1px solid var(--line);padding-top:18px;margin-top:30px;color:var(--muted);font-size:.875rem;line-height:2}.experience.reverse{grid-template-columns:1fr 1.16fr;margin-top:100px}.reverse .experience-image{grid-column:2;grid-row:1}.reverse .experience-copy{grid-column:1;grid-row:1;padding-left:17%;padding-right:14%}.quiet-moments{display:grid;grid-template-columns:1fr 1fr;gap:100px;padding-top:120px}.quiet-moments article+article{border-left:1px solid var(--line);padding-left:70px}.quiet-moments h3{margin:24px 0}.quiet-moments article>p:not(.eyebrow){font-family:var(--serif);line-height:2.25;color:#ccd6c8;letter-spacing:.04em}.quiet-moments .fine-print{margin-top:20px;font-family:var(--sans)!important;color:#a9b5a4!important}.essentials{display:grid;grid-template-columns:1fr 1.65fr;gap:100px;background:var(--surface)}.essentials h2{margin:30px 0}.essentials-lead{color:var(--muted);font-size:1rem;line-height:2.2}.amenities{margin:0}.amenities>div{display:grid;grid-template-columns:120px 1fr;border-top:1px solid var(--line);padding:25px 0;gap:26px}.amenities>div:last-child{border-bottom:1px solid var(--line)}dt{font-size:.9375rem;letter-spacing:.05em}dd{margin:0;font-size:1rem;color:#cbd5c6;line-height:2.1}.guide{display:grid;grid-template-columns:1fr 2.5fr;gap:65px}.guide-main h2{font-size:clamp(1.6rem,2.5vw,2.1rem);margin-bottom:46px}.faq-list details{border-top:1px solid var(--line)}.faq-list details:last-child{border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:25px;align-items:center;padding:24px 0;font-size:1rem;letter-spacing:.04em}summary::-webkit-details-marker{display:none}summary span{position:relative;width:16px;min-width:16px;height:16px}summary span::before,summary span::after{content:"";background:var(--accent);position:absolute;top:7px;left:0;width:16px;height:1px}summary span::after{transform:rotate(90deg);transition:transform .2s}details[open] summary span::after{transform:rotate(0)}details>p{color:#c2cfbd;font-size:1rem;padding:0 34px 28px 0;line-height:2.15}.reservation{background:var(--paper);color:var(--ink);text-align:center;padding-top:100px;padding-bottom:110px}.reservation .eyebrow{color:#6c795f}.reservation h2{font-size:clamp(2rem,3.7vw,3.25rem);margin-top:30px}.reservation-lead{font-family:var(--serif);font-size:1.125rem;letter-spacing:.07em;margin-top:25px}.booking-note{margin:48px auto 0;max-width:660px;border-top:1px solid #adb4a9;padding-top:30px}.booking-note h3{font-family:var(--sans);font-size:1rem;letter-spacing:.08em;margin-bottom:15px}.booking-note p{font-size:.9375rem;line-height:2.05;color:#5a6854}.booking-link{display:flex;align-items:center;justify-content:space-between;gap:25px;max-width:410px;margin:28px auto 0;background:var(--forest);color:var(--white);padding:18px 26px;font-size:1rem;transition:background .2s}.booking-link:hover{background:#304337}.footer{padding:65px 7.5% 40px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:45px 50px}.footer-brand{display:flex;align-items:center;gap:30px}.footer-brand>span:first-child{font-family:var(--serif);font-size:2.5rem;letter-spacing:.16em}.footer-brand>span+span{font-family:Georgia,serif;font-size:.875rem;letter-spacing:.05em;line-height:1.6;color:var(--muted)}.footer>p{font-family:var(--serif);font-size:.9375rem;letter-spacing:.07em}.top-link{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--line);border-radius:50%;font-size:1.3rem}.footer>small{grid-column:1/-1;font-size:.75rem;letter-spacing:.1em;color:var(--muted)}
.hero-title-wrap{inset-block-start:160px}.hero h1{font-size:clamp(2rem,3.6vw,3.125rem);letter-spacing:.12em}.hero h1 span+span{padding-top:.6em}
@media(max-width:1150px){.header{gap:22px;padding:24px 4%}.brand-en{display:none}.desktop-nav{gap:20px}.section-pad{padding:95px 7%}.intro,.guide{grid-template-columns:1fr 2.5fr;gap:40px}.experience-image{height:550px}.experience-copy,.reverse .experience-copy{padding:55px 11%}.quiet-moments{gap:45px}.quiet-moments article+article{padding-left:45px}.essentials{gap:45px}.amenities>div{grid-template-columns:1fr;gap:8px}.footer{gap:35px}.footer>p{display:none}.footer{grid-template-columns:1fr auto}.hero{min-height:750px}}
@media(max-width:760px){html{scroll-padding-top:25px}.header{padding:20px 6%;gap:12px;min-height:100px}.brand-ja{font-size:1.9rem}.desktop-nav{display:none}.header-book{margin-left:auto;padding:9px 12px;gap:16px;font-size:.875rem}.menu-button{display:block;flex-shrink:0}.hero{height:94svh;min-height:760px;max-height:1000px}.hero-image{object-position:45% center}.hero-title-wrap{inset:180px 0 auto}.hero-kicker{font-size:.875rem;letter-spacing:.13em;margin-bottom:30px}.hero h1{font-size:2.55rem;gap:12px}.hero-bottom{bottom:35px;left:7%;right:7%}.hero-bottom p{font-size:.875rem;letter-spacing:.04em}.hero-bottom p span{font-size:.875rem}.scroll-link{gap:12px}.scroll-link span{width:40px;height:40px}.section-pad{padding:75px 7%}.section-mark{gap:16px}.section-mark small{margin-top:3px}.intro,.guide{grid-template-columns:1fr;gap:40px}.intro-main h2{margin-bottom:30px}.body-copy{font-size:1rem;line-height:2.3;letter-spacing:.03em}.desktop-break{display:none}.stay-heading{grid-template-columns:1fr;gap:30px;margin-top:40px}.itinerary{grid-template-columns:1fr;margin-top:45px}.itinerary article,.itinerary article:first-child,.itinerary article:last-child{padding:28px 0;border:0;border-bottom:1px solid #b9c0b2}.day-label{justify-content:flex-start;gap:25px;margin-bottom:15px}.itinerary h3{margin-bottom:13px}.day-note{margin-top:20px}.stay>.fine-print{margin-top:25px}.villa-heading{display:block;padding-bottom:45px}.villa-heading h2{margin:40px 0 0}.experience,.experience.reverse{display:flex;flex-direction:column;gap:0;margin:0}.experience-image{width:100%;height:auto;aspect-ratio:1.15}.experience-copy,.reverse .experience-copy{padding:40px 7% 65px;width:100%}.experience h3{margin:18px 0 22px}.quiet-moments{grid-template-columns:1fr;gap:45px;padding-top:20px}.quiet-moments article+article{border-left:0;border-top:1px solid var(--line);padding:40px 0 0}.essentials{grid-template-columns:1fr;gap:40px}.essentials h2{margin:22px 0}.amenities>div{padding:22px 0;gap:10px}.guide-main h2{margin-bottom:35px}.guide-main{min-width:0}summary{font-size:.9375rem;line-height:1.9;gap:15px;padding:21px 0}details>p{padding-right:0}.reservation{padding-top:75px;padding-bottom:80px}.booking-note{margin-top:35px}.booking-link{font-size:.9375rem;padding:17px 20px}.footer{padding:45px 7% 30px;gap:35px 15px}.footer-brand{display:block}.footer-brand>span:first-child{display:block;font-size:2rem}.footer-brand>span+span{display:block;margin-top:12px;font-size:.875rem}.footer-brand br{display:none}.footer-brand>span+span{max-width:210px}.top-link{align-self:start}.footer>small{font-size:.75rem}.text-label{font-size:.875rem}}
@media(max-width:390px){.header-book{gap:10px;padding:9px 10px}.header{gap:8px}.brand-ja{font-size:1.65rem}.menu-button{width:36px;padding:7px}.hero-bottom{align-items:flex-start}.scroll-link{font-size:0;gap:0}.scroll-link span{font-size:1.1rem}.hero-kicker{font-size:.8125rem}.hero{min-height:730px}.hero h1{font-size:2.35rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* Public-site access details and readable booking information. */
.map-link{display:flex;align-items:center;justify-content:space-between;gap:18px;width:fit-content;max-width:100%;margin-top:18px;border:1px solid var(--line);padding:10px 16px;font-size:1rem;line-height:1.7;color:var(--white)}
.map-link:hover{border-color:var(--accent);background:var(--forest)}
.map-note{display:block;max-width:38em;font-size:.875rem;line-height:1.9;color:var(--muted);margin-top:12px}
.booking-note p{font-size:1rem}
.booking-note .booking-policy{font-size:.875rem;line-height:1.9;margin-top:22px;color:#4b5948}
.header-book{min-height:44px}
@media(max-width:760px){.map-link{width:100%;padding:12px 14px}.booking-link{min-height:56px;font-size:1rem}.booking-note .booking-policy{max-width:28em;margin:20px auto 0}.mobile-nav{max-height:calc(100svh - 100px);overflow-y:auto;overscroll-behavior:contain}}
