:root{--bg: #F5F1EB;--bg-2: #EDE6DB;--bg-3: #E4DACA;--fg: #2A241E;--fg-2: #3E342B;--fg-3: #65594C;--line: #D9CFBE;--line-2: #B3A18C;--accent: #8B7355;--white: #FBFAF7;--f-serif: "Cormorant Garamond", "Noto Serif JP", serif;--f-sans: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--f-en: "Cormorant Garamond", "Times New Roman", serif;--f-label: "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif;--ease: cubic-bezier(.22, .61, .36, 1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--f-sans);background:var(--bg);color:var(--fg);font-weight:300;line-height:1.9;letter-spacing:.07em;font-size:15px;-webkit-font-smoothing:antialiased;overflow-x:hidden}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}.container{width:100%;max-width:480px;margin:0 auto;padding:0 24px;position:relative}@media(min-width:768px){.container{max-width:720px;padding:0 40px}body{font-size:16px}}@media(min-width:1200px){.container{max-width:1120px;padding:0 64px}}.site-header{position:fixed;top:0;left:0;right:0;z-index:100;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;background:#f5f1eb00;transition:background .4s var(--ease),padding .4s var(--ease);backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0)}.site-header.scrolled{background:#f5f1ebe0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:12px 24px;border-bottom:1px solid rgba(217,207,190,.4)}.site-header .logo{font-family:var(--f-en);font-size:22px;font-weight:400;letter-spacing:.32em;color:var(--fg);padding-left:.32em}.site-header .logo em{font-style:normal;font-weight:300}.site-header .logo.has-sub{display:inline-flex;flex-direction:column;align-items:stretch;line-height:1;padding-left:0}.site-header .logo.has-sub em{align-self:flex-start;font-size:40px;letter-spacing:.3em;margin-right:-.3em;transition:font-size .4s var(--ease)}.site-header .logo.has-sub .logo-sub{font-family:var(--f-en);font-size:16px;letter-spacing:.2em;text-transform:lowercase;color:var(--fg);opacity:.85;margin-top:10px;text-align:center;white-space:nowrap;transition:font-size .4s var(--ease)}.site-header.scrolled .logo.has-sub em{font-size:32px}.site-header.scrolled .logo.has-sub .logo-sub{font-size:13px}@media(max-width:480px){.site-header .logo.has-sub em{font-size:32px}.site-header .logo.has-sub .logo-sub{font-size:12px}}.site-header .menu-btn{width:40px;height:40px;border:none;background:transparent;cursor:pointer;position:relative;display:flex;align-items:center;justify-content:center}.site-header .menu-btn span{display:block;width:22px;height:1px;background:var(--fg);position:relative}.site-header .menu-btn span:before,.site-header .menu-btn span:after{content:"";position:absolute;left:0;width:22px;height:1px;background:var(--fg);transition:transform .3s var(--ease)}.site-header .menu-btn span:before{top:-6px}.site-header .menu-btn span:after{top:6px}.site-header .menu-btn.open span{background:transparent}.site-header .menu-btn.open span:before{transform:translateY(6px) rotate(45deg)}.site-header .menu-btn.open span:after{transform:translateY(-6px) rotate(-45deg)}.nav-overlay{position:fixed;inset:0;background:var(--bg);z-index:90;opacity:0;pointer-events:none;transition:opacity .5s var(--ease);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow-y:auto;padding:80px 24px 60px}.nav-overlay.open{opacity:1;pointer-events:auto}.nav-overlay ul{list-style:none;text-align:center;width:100%}.nav-overlay li{margin:18px 0;opacity:0;transform:translateY(12px);transition:opacity .5s var(--ease),transform .5s var(--ease)}.nav-overlay.open li{opacity:1;transform:translateY(0)}.nav-overlay.open li:nth-child(1){transition-delay:.15s}.nav-overlay.open li:nth-child(2){transition-delay:.22s}.nav-overlay.open li:nth-child(3){transition-delay:.29s}.nav-overlay.open li:nth-child(4){transition-delay:.36s}.nav-overlay.open li:nth-child(5){transition-delay:.43s}.nav-overlay.open li:nth-child(6){transition-delay:.5s}.nav-overlay.open li:nth-child(7){transition-delay:.57s}.nav-overlay .en{font-family:var(--f-en);font-size:26px;font-weight:400;letter-spacing:.16em;color:var(--fg);display:block}.nav-overlay .jp{font-size:10px;letter-spacing:.4em;color:var(--fg-3);margin-top:4px;display:block}.nav-overlay .foot{margin-top:40px;padding-bottom:20px;text-align:center;font-family:var(--f-label);letter-spacing:.32em;font-size:11px;color:var(--fg-3);width:100%}section{position:relative}.section-label{font-family:var(--f-label);font-size:12px;font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:var(--fg-2);margin-bottom:14px;display:block}.section-title{font-family:var(--f-en);font-weight:400;font-size:40px;line-height:1.15;letter-spacing:.04em;color:var(--fg);margin-bottom:24px}@media(min-width:768px){.section-title{font-size:56px}}.section-lead{font-size:14px;line-height:2.2;color:var(--fg-2);letter-spacing:.1em}@media(min-width:768px){.section-lead{font-size:15px}}.btn{display:inline-flex;align-items:center;gap:14px;padding:16px 30px;border:1px solid var(--fg);background:transparent;color:var(--fg);font-family:var(--f-label);font-size:14px;letter-spacing:.25em;text-transform:uppercase;transition:background .3s var(--ease),color .3s var(--ease);cursor:pointer}.btn:hover{background:var(--fg);color:var(--bg)}.btn.dark{background:var(--fg);color:var(--bg);border-color:var(--fg)}.btn.dark:hover{background:transparent;color:var(--fg)}.btn .arrow{width:20px;height:1px;background:currentColor;position:relative}.btn .arrow:after{content:"";position:absolute;right:0;top:-3px;width:8px;height:1px;background:currentColor;transform:rotate(35deg);transform-origin:right center}.fade-up{opacity:0;transform:translateY(24px);transition:opacity 1s var(--ease),transform 1s var(--ease)}.fade-up.in{opacity:1;transform:translateY(0)}.fade-in{opacity:0;transition:opacity 1.2s var(--ease)}.fade-in.in{opacity:1}.reserve-fab{position:fixed;right:20px;bottom:20px;z-index:80;background:var(--fg);color:var(--bg);padding:16px 22px;border-radius:999px;font-family:var(--f-label);font-size:12px;letter-spacing:.3em;text-transform:uppercase;box-shadow:0 8px 32px #2a241e2e;display:inline-flex;align-items:center;gap:10px;transition:transform .3s var(--ease)}.reserve-fab:hover{transform:translateY(-2px)}.reserve-fab .dot{width:6px;height:6px;border-radius:50%;background:#c9b8a3;box-shadow:0 0 #c9b8a3b3;animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 #c9b8a3b3}70%{box-shadow:0 0 0 8px #c9b8a300}to{box-shadow:0 0 #c9b8a300}}.site-footer{padding:100px 0 40px;background:var(--fg);color:var(--bg);margin-top:100px}.site-footer .container{max-width:1120px}.site-footer .foot-logo{font-family:var(--f-en);font-size:44px;letter-spacing:.32em;padding-left:.32em;margin-bottom:40px}.site-footer .foot-grid{display:grid;gap:40px;margin-bottom:60px}@media(min-width:768px){.site-footer .foot-grid{grid-template-columns:1.4fr 1fr 1fr;gap:60px}.site-footer .foot-logo{font-size:64px}}.site-footer h4{font-family:var(--f-label);font-weight:400;font-size:12px;letter-spacing:.4em;text-transform:uppercase;margin-bottom:20px;opacity:.6}.site-footer p,.site-footer li{font-size:12px;line-height:2.2;letter-spacing:.08em;opacity:.85;list-style:none}.site-footer a:hover{opacity:.7}.site-footer .divider{height:1px;background:#f5f1eb26;margin:40px 0 24px}.site-footer .copy{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-family:var(--f-label);font-size:10px;letter-spacing:.3em;opacity:.5}.page-hero-shared{padding:140px 0 60px;text-align:center;background:var(--bg-2)}.page-hero-shared .en{font-family:var(--f-en);font-size:56px;letter-spacing:.08em;color:var(--fg);line-height:1.1;font-weight:300}.page-hero-shared .jp{font-size:11px;letter-spacing:.5em;color:var(--fg-3);margin-top:16px}.page-hero-shared .breadcrumbs{font-family:var(--f-label);font-size:10px;letter-spacing:.4em;color:var(--fg-3);margin-bottom:24px}.page-hero-shared .breadcrumbs a{color:var(--fg-3);text-decoration:none}.page-hero-shared .breadcrumbs a:hover{color:var(--fg)}@media(min-width:768px){.page-hero-shared{padding:200px 0 100px}.page-hero-shared .en{font-size:96px}}.prose{max-width:720px;margin:0 auto;padding:60px 0}.prose h2{font-family:var(--f-serif);font-weight:400;font-size:22px;line-height:1.8;letter-spacing:.12em;color:var(--fg);margin:60px 0 24px;padding-bottom:12px;border-bottom:1px solid var(--line)}.prose h2:first-child{margin-top:0}.prose h3{font-family:var(--f-serif);font-weight:400;font-size:17px;letter-spacing:.1em;color:var(--fg);margin:40px 0 16px}.prose p{font-size:13px;line-height:2.2;color:var(--fg-2);letter-spacing:.1em;margin-bottom:20px}.prose ul,.prose ol{margin:20px 0 20px 24px;padding:0}.prose li{font-size:13px;line-height:2.2;color:var(--fg-2);letter-spacing:.08em;margin-bottom:8px}.prose strong{color:var(--fg);font-weight:500}.prose .callout{padding:24px;background:var(--bg-2);border-left:2px solid var(--line-2);margin:32px 0;font-size:12px;line-height:2;letter-spacing:.08em;color:var(--fg-2)}@media(min-width:768px){.prose h2{font-size:28px}.prose h3{font-size:20px}}.service-hero{height:60vh;min-height:380px;max-height:560px;position:relative;color:var(--white);overflow:hidden}.service-hero .bg{position:absolute;inset:0;background-size:cover;background-position:center}.service-hero .bg:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#1e181240,#1e1812a6)}.service-hero .inner{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:40px 24px 60px}.service-hero .breadcrumbs{font-family:var(--f-label);font-size:10px;letter-spacing:.4em;color:#ffffffbf;margin-bottom:24px}.service-hero .breadcrumbs a{color:#ffffffbf;text-decoration:none}.service-hero .en-title{font-family:var(--f-en);font-size:48px;letter-spacing:.06em;line-height:1.1;font-weight:300;margin-bottom:8px}.service-hero h1{font-family:var(--f-serif);font-weight:300;font-size:16px;letter-spacing:.25em;line-height:1.6}.service-hero .price-tag{margin-top:24px;font-family:var(--f-en);font-size:22px;letter-spacing:.06em}.service-hero .price-tag small{font-size:10px;letter-spacing:.3em;opacity:.7;margin-left:8px}@media(min-width:768px){.service-hero .inner{padding:60px 60px 80px;max-width:720px}.service-hero .en-title{font-size:80px}.service-hero h1{font-size:20px}}
