:root{--paper:#fbfaf7;--white:#fff;--cream:#f2eee6;--ink:#201e1a;--muted:#746f66;--gold:#aa8d55;--line:#ddd6c9;--serif:"Yu Mincho","Hiragino Mincho ProN",serif;--sans:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;--shadow:0 20px 60px rgba(57,48,33,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:2;letter-spacing:.04em}img{display:block;width:100%;height:auto}a{color:inherit;text-decoration:none}button{font:inherit}.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;z-index:100;background:#fff;padding:8px 16px}
.site-header{position:sticky;top:0;z-index:50;height:82px;background:rgba(251,250,247,.94);border-bottom:1px solid rgba(170,141,85,.22);backdrop-filter:blur(14px)}.header-inner{height:100%;max-width:1440px;margin:auto;padding:0 32px;display:flex;align-items:center;gap:26px}.brand{margin-right:auto;display:flex;align-items:center}.brand img{width:145px;height:auto}.nav{display:flex;align-items:center;gap:19px;font-family:var(--serif);font-size:13px;white-space:nowrap}.nav a{position:relative}.nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:var(--gold);transition:.3s}.nav a:hover:after,.nav a[aria-current="page"]:after{right:0}.reserve-link{padding:9px 17px;border:1px solid var(--gold);color:#715b32}.menu-button{display:none;border:0;background:transparent;padding:10px}.menu-button span{display:block;width:25px;height:1px;background:var(--ink);margin:6px}
.hero{min-height:calc(100vh - 82px);position:relative;display:grid;align-items:end;overflow:hidden}.hero img{position:absolute;inset:0;height:100%;object-fit:cover}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,13,9,.62),rgba(16,13,9,.05) 70%),linear-gradient(0deg,rgba(16,13,9,.45),transparent 45%)}.hero-copy{position:relative;z-index:1;color:#fff;width:min(1180px,calc(100% - 48px));margin:0 auto 12vh}.eyebrow{margin:0 0 16px;color:var(--gold);font-family:Georgia,serif;font-size:11px;letter-spacing:.28em;text-transform:uppercase}.hero .eyebrow{color:#eadbbd}.hero h1{font:400 clamp(32px,5.2vw,72px)/1.45 var(--serif);letter-spacing:.16em;margin:0}.hero p{max-width:560px;margin:22px 0 0;font-family:var(--serif);font-size:16px}.page-hero{display:grid;grid-template-columns:1fr 1.35fr;min-height:430px;background:var(--cream)}.page-hero-copy{padding:80px clamp(32px,7vw,110px);align-self:center}.page-hero h1{margin:0;font:400 clamp(34px,4vw,58px)/1.35 var(--serif);letter-spacing:.13em}.page-hero .en{display:block;color:var(--gold);font:12px/1.5 Georgia,serif;letter-spacing:.3em;margin-top:13px}.page-hero img{height:100%;object-fit:cover;min-height:430px}
.section{padding:110px 24px}.section.alt{background:var(--cream)}.container{width:min(1160px,100%);margin:auto}.narrow{width:min(820px,100%);margin:auto}.section-head{margin-bottom:52px}.section-head.center{text-align:center}.section-head h2{font:400 clamp(27px,3.5vw,43px)/1.5 var(--serif);letter-spacing:.13em;margin:0}.section-head p{color:var(--muted);margin:14px 0 0}.lead{font:400 clamp(19px,2.2vw,28px)/2 var(--serif);letter-spacing:.09em}.text-columns{columns:2;column-gap:60px}.text-columns p:first-child{margin-top:0}.signature{text-align:right;margin-top:36px}.signature strong{font:400 22px var(--serif)}
.split{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(36px,7vw,90px);align-items:center}.split.reverse{grid-template-columns:.92fr 1.08fr}.split.reverse .visual{order:2}.visual{position:relative}.visual img{aspect-ratio:4/3;object-fit:cover}.visual.tall img{aspect-ratio:4/5}.visual:before{content:"";position:absolute;inset:18px -18px -18px 18px;border:1px solid var(--gold);z-index:-1}.kicker{color:var(--gold);font:12px Georgia,serif;letter-spacing:.25em}.content h2,.content h3{font:400 clamp(25px,3vw,39px)/1.55 var(--serif);letter-spacing:.1em;margin:10px 0 22px}.button{display:inline-flex;align-items:center;gap:25px;margin-top:20px;padding:11px 22px;border:1px solid var(--gold);color:#6d572e;font-family:var(--serif)}.button:after{content:"→";transition:.2s}.button:hover:after{transform:translateX(4px)}
.photo-grid{display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:250px 250px;gap:16px}.photo-grid figure{margin:0;overflow:hidden}.photo-grid figure:first-child{grid-row:1/3}.photo-grid img{height:100%;object-fit:cover;transition:transform .8s}.photo-grid figure:hover img{transform:scale(1.03)}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{background:#fff;box-shadow:var(--shadow)}.card img{aspect-ratio:4/3;object-fit:cover}.card-body{padding:28px}.card h3{font:400 23px var(--serif);letter-spacing:.08em;margin:0 0 10px}.card p{color:var(--muted);margin:0}.card .price{display:block;color:var(--gold);font:18px Georgia,serif;margin-top:13px}.is-dummy{position:relative}.is-dummy:after{content:"DUMMY IMAGE｜差し替え予定";position:absolute;right:10px;bottom:10px;background:rgba(255,255,255,.86);padding:3px 10px;color:#655538;font-size:10px;letter-spacing:.1em}
.menu-groups{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}.menu-box{padding:38px;background:#fff;border-top:1px solid var(--gold)}.menu-box h2,.menu-box h3{font:400 25px var(--serif);margin:0 0 22px;letter-spacing:.1em}.menu-list{margin:0;padding:0;list-style:none}.menu-list li{display:grid;grid-template-columns:1fr auto;gap:18px;padding:12px 0;border-bottom:1px dotted var(--line)}.menu-list small{display:block;color:var(--muted);line-height:1.6}.menu-list .price{font-family:Georgia,var(--serif);white-space:nowrap}.course-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}.course-card{background:#fff}.course-card img{aspect-ratio:16/10;object-fit:cover}.course-info{padding:38px}.course-title{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:17px}.course-title h2{font:400 30px var(--serif);margin:0}.course-title strong{font:400 21px Georgia,var(--serif);color:var(--gold)}.course-info ol{padding-left:1.4em;color:var(--muted)}.note{margin-top:34px;padding:20px 24px;background:#f4f0e9;color:var(--muted);font-size:13px}.notice{border:1px solid var(--line);padding:30px;text-align:center}
.info-table{width:100%;border-collapse:collapse}.info-table th,.info-table td{padding:18px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.info-table th{width:170px;font:400 15px var(--serif);color:#6e5b37}.facility-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.facility{background:#fff}.facility img{aspect-ratio:16/10;object-fit:cover}.facility .card-body{padding:26px}.cta{padding:80px 24px;background:#302c26;color:#fff;text-align:center}.cta h2{font:400 clamp(25px,3vw,38px) var(--serif);letter-spacing:.12em;margin:0}.cta .tel{display:block;font:clamp(28px,4vw,46px) Georgia,serif;letter-spacing:.07em;margin:20px 0 3px;color:#decaa3}.cta p{margin:0;color:#c9c3b9}.cta .button{color:#fff}
.site-footer{padding:65px 24px 28px;background:#211f1b;color:#ddd7cc}.footer-inner{width:min(1160px,100%);margin:auto;display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:55px}.footer-brand img{width:160px;filter:brightness(0) invert(1);opacity:.9}.footer-title{color:#bca06c;font:12px Georgia,serif;letter-spacing:.22em;margin:0 0 13px}.footer-inner p{font-size:13px;line-height:1.8;margin:0}.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:4px 24px;font-size:13px}.copyright{width:min(1160px,100%);margin:45px auto 0;padding-top:20px;border-top:1px solid #3c3933;color:#8f8a81;font-size:11px}.backtop{position:fixed;right:20px;bottom:20px;width:44px;height:44px;border:1px solid var(--gold);background:rgba(251,250,247,.92);color:#806837;opacity:0;pointer-events:none;transition:.2s}.backtop.show{opacity:1;pointer-events:auto}.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}
@media(max-width:1100px){.nav{display:none}.menu-button{display:block}.nav.open{display:flex;position:absolute;left:0;right:0;top:81px;padding:28px;background:var(--paper);flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line);box-shadow:var(--shadow)}.reserve-link{margin-left:auto}.header-inner{padding:0 20px}.page-hero{grid-template-columns:.85fr 1.15fr}}
@media(max-width:760px){body{font-size:14px}.site-header{height:70px}.brand img{width:120px}.reserve-link{font-size:12px;padding:7px 10px}.nav.open{top:69px}.hero{min-height:650px}.hero-copy{margin-bottom:70px}.hero h1{font-size:34px}.page-hero{grid-template-columns:1fr}.page-hero-copy{padding:55px 24px}.page-hero img{min-height:260px;height:260px}.section{padding:75px 20px}.split,.split.reverse{grid-template-columns:1fr;gap:45px}.split.reverse .visual{order:0}.visual:before{inset:10px -8px -10px 8px}.text-columns{columns:1}.photo-grid{grid-template-columns:1fr 1fr;grid-template-rows:260px 160px}.photo-grid figure:first-child{grid-column:1/3;grid-row:auto}.card-grid,.menu-groups,.course-grid,.facility-grid{grid-template-columns:1fr}.course-info,.menu-box{padding:28px 23px}.course-title h2{font-size:25px}.course-title strong{font-size:17px}.info-table th,.info-table td{display:block;width:100%;padding:10px 4px}.info-table th{border-bottom:0;padding-top:18px;padding-bottom:0}.footer-inner{grid-template-columns:1fr;gap:34px}.cta{padding:65px 20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}
.page-hero>.is-dummy{height:100%;overflow:hidden}.page-hero>.is-dummy img{height:100%}
.footer-inner.footer-inner--legal{display:block}.footer-notes{padding-bottom:28px;border-bottom:1px solid #3c3933}.footer-notes p,.footer-details p{margin:0;font-size:13px;line-height:1.9}.footer-details{padding-top:28px}.footer-details .footer-name{margin-bottom:8px;color:#decaa3;font:400 15px/1.8 var(--serif);letter-spacing:.06em}.footer-details p+p{margin-top:6px}
@media(max-width:760px){.footer-notes p,.footer-details p{font-size:12px}.footer-details .footer-name{font-size:14px}}
.greeting-layout{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);gap:clamp(42px,7vw,90px);align-items:start}.greeting-portrait{margin:0;position:sticky;top:110px}.greeting-portrait img{aspect-ratio:4/3;object-fit:cover;box-shadow:var(--shadow)}.greeting-copy .lead{margin-top:-.35em}.greeting-text p{margin:0 0 1.4em}.greeting-text p:last-child{margin-bottom:0}
@media(max-width:760px){.greeting-layout{grid-template-columns:1fr;gap:40px}.greeting-portrait{position:static}.greeting-copy .lead{margin-top:0}}
.raw-menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.raw-menu-grid .card{height:100%}.raw-menu-grid .card-body{display:flex;flex-direction:column;min-height:210px}.raw-menu-grid .card-body .price{margin-top:auto;padding-top:14px}.price-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:auto;padding-top:16px}.price-options span{padding-top:10px;border-top:1px solid var(--line);color:var(--gold);font:18px Georgia,var(--serif)}.price-options small{display:block;margin-bottom:2px;color:var(--muted);font:11px var(--sans);letter-spacing:.12em}
@media(max-width:900px){.raw-menu-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.raw-menu-grid{grid-template-columns:1fr}}
.raw-menu-notice{margin-top:28px}
.course-info ul{padding-left:1.4em;color:var(--muted);list-style-type:disc}.course-info ul li::marker{color:var(--ink)}
.lunch-menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.lunch-menu-grid .card{height:100%}.lunch-menu-grid .card-body{display:flex;flex-direction:column;min-height:225px}.lunch-menu-grid .card-body .price{margin-top:auto;padding-top:14px}.lunch-sides{font-size:14px;line-height:1.8}.lunch-sides span{display:block;margin-bottom:5px;color:var(--gold);font-size:11px;letter-spacing:.16em}
@media(max-width:900px){.lunch-menu-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.lunch-menu-grid{grid-template-columns:1fr}.lunch-menu-grid .card-body{min-height:0}}
.drink-nav{display:grid;grid-template-columns:repeat(4,1fr);margin:0 0 70px;border:1px solid var(--line);background:#fff}.drink-nav a{padding:20px 12px;border-right:1px solid var(--line);text-align:center;font-family:var(--serif);letter-spacing:.08em}.drink-nav a:last-child{border-right:0}.drink-nav small{color:var(--gold);font:10px var(--sans);letter-spacing:.13em}.drink-section{scroll-margin-top:100px;margin-top:90px}.drink-section:first-of-type{margin-top:0}.drink-section-title{margin-bottom:28px;padding-bottom:18px;border-bottom:1px solid var(--gold)}.drink-section-title h2{margin:4px 0 0;font:400 clamp(28px,4vw,42px) var(--serif);letter-spacing:.1em}.drink-section .menu-box h3{font:400 22px var(--serif);margin:0 0 22px;letter-spacing:.08em}.drink-section .menu-list li{align-items:start;padding:15px 0}.drink-section .menu-name{min-width:0}.drink-section .menu-name b{display:block;font-weight:400;line-height:1.65}.drink-section .menu-name small{margin-top:3px;font-size:11px;line-height:1.55}.drink-section .price{text-align:right;line-height:1.65}
@media(max-width:760px){.drink-nav{grid-template-columns:repeat(2,1fr)}.drink-nav a:nth-child(2){border-right:0}.drink-nav a:nth-child(-n+2){border-bottom:1px solid var(--line)}.drink-section{margin-top:65px}.drink-section .menu-list li{grid-template-columns:minmax(0,1fr) auto;gap:12px}.drink-section .price{font-size:13px}}
.access-map{min-height:680px;overflow:hidden;background:#e8e3da;box-shadow:var(--shadow)}.access-map iframe{display:block;width:100%;height:100%;min-height:680px;border:0;filter:saturate(.72) contrast(.94)}
@media(max-width:760px){.access-map,.access-map iframe{min-height:420px}}
.reserve-container{max-width:1040px}.reservation-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.reservation-card{display:flex;flex-direction:column;min-height:390px;padding:clamp(36px,5vw,62px);background:#fff;border-top:1px solid var(--gold);box-shadow:var(--shadow)}.reservation-card--phone{justify-content:center;text-align:center}.reservation-label{margin:0 0 14px;color:var(--gold);font-size:11px;letter-spacing:.2em}.reservation-card h2{margin:0 0 28px;font:400 clamp(24px,3vw,32px) var(--serif);letter-spacing:.08em}.reservation-card p{color:var(--muted)}.reservation-tel{display:block;margin:5px 0 16px;color:var(--ink);font:clamp(30px,4vw,44px) Georgia,var(--serif);letter-spacing:.05em}.reservation-links{display:grid;gap:14px;margin-top:auto}.reservation-links a{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border:1px solid var(--line);transition:background .25s,color .25s,border-color .25s}.reservation-links a:hover{background:var(--ink);border-color:var(--ink);color:#fff}.reservation-links b,.reservation-links small{display:block}.reservation-links b{font:400 22px var(--serif);letter-spacing:.1em}.reservation-links small{margin-top:3px;color:var(--muted);font-size:10px;letter-spacing:.13em}.reservation-links a:hover small{color:#ddd5c8}
@media(max-width:760px){.reservation-grid{grid-template-columns:1fr}.reservation-card{min-height:0}.reservation-card--phone{padding-top:55px;padding-bottom:55px}}
.instagram-link{position:relative;display:block;flex:0 0 34px;width:34px;height:34px;border:1.5px solid #806b43;border-radius:9px;color:#806b43;transition:background .25s,color .25s,transform .25s}.instagram-link:before{content:"";position:absolute;left:8px;top:8px;width:14px;height:14px;border:1.5px solid currentColor;border-radius:50%}.instagram-link:after{content:"";position:absolute;right:6px;top:6px;width:3px;height:3px;background:currentColor;border-radius:50%}.instagram-link:hover{background:#806b43;color:#fff;transform:translateY(-1px)}
@media(max-width:1100px){.header-inner{gap:14px}.instagram-link{margin-left:auto}.reserve-link{margin-left:0}}
@media(max-width:760px){.instagram-link{flex-basis:30px;width:30px;height:30px;border-radius:8px}.instagram-link:before{left:7px;top:7px;width:12px;height:12px}.instagram-link:after{right:5px;top:5px}.header-inner{gap:9px}}
.language-switch{display:flex;align-items:center;gap:6px;font-size:10px;letter-spacing:.08em;white-space:nowrap}.language-switch a{padding:4px 3px;color:var(--muted);border-bottom:1px solid transparent}.language-switch a:hover,.language-switch a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--gold)}
@media(max-width:1100px){.language-switch{margin-left:auto}.instagram-link{margin-left:0}}
@media(max-width:760px){.language-switch{gap:3px;font-size:9px}.language-switch a{padding:3px 2px}.reserve-link{display:none}}
