@charset "UTF-8";
:root{--navy:#15364b;--deep:#102c40;--gold:#d9c59b;--cream:#f6f4ef;--ink:#233a46;--muted:#65737a;--line:#dce0dd;--serif:"Yu Mincho","Hiragino Mincho ProN",Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);background:#fff;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:14px;line-height:1.9;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}img{display:block;width:100%;height:auto}button{background:none;border:0}h1,h2,h3,p{margin:0}h2{font-family:var(--serif);font-weight:500;font-size:36px;line-height:1.8;letter-spacing:.08em}h3{font-weight:500}a,button{transition:background .2s,color .2s,opacity .2s}a:hover,button:hover{opacity:.8}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #bd9a56;outline-offset:5px}[hidden]{display:none!important}.skip{position:fixed;top:-100px;background:white;z-index:100;padding:10px}.skip:focus{top:0}.header{height:100px;display:flex;align-items:center;padding:0 4%;gap:30px;background:var(--navy);color:white;position:sticky;top:0;z-index:20;border-bottom:1px solid #ffffff15}.brand{display:flex;align-items:center;gap:18px;margin-right:auto}.brand img{width:76px;height:76px;object-fit:contain}.brand>span{font-size:8px;letter-spacing:.16em;color:var(--gold);max-width:85px;line-height:1.7}.header nav{display:flex;gap:26px;font-size:11px;letter-spacing:.06em}.button{display:inline-flex;gap:34px;justify-content:space-between;align-items:center;padding:16px 25px;font-size:12px;letter-spacing:.05em;background:var(--navy);color:#fff}.button span{font-size:19px}.header-cta{border:1px solid #d9c59b70;color:var(--gold);padding:12px 19px;font-size:11px}.gold{background:var(--gold);color:var(--deep)}.nav-toggle{display:none}.hero{position:relative;height:min(730px,calc(100svh - 100px));min-height:570px;overflow:hidden;background:#8cc2d8}.hero-photo{position:absolute;inset:0;height:100%;object-fit:cover;object-position:68% center}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#12354bf5 0%,#15364bda 23%,#15364b72 44%,#15364b00 72%)}.hero-copy{position:relative;color:white;padding:67px 0 0 9%}.eyebrow{font-size:10px;font-weight:500;letter-spacing:.19em;line-height:1.7;color:#8a7855;margin-bottom:23px}.eyebrow span{margin-left:20px;opacity:.5}.hero .eyebrow{color:var(--gold);font-size:10px;letter-spacing:.22em;margin-bottom:26px}.hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(44px,4.5vw,68px);line-height:1.65;letter-spacing:.13em}.hero-description{font-size:13px;letter-spacing:.08em;line-height:2.2;margin:20px 0 25px;color:#edf2f5}.hero-caption{margin-top:27px;font-size:8px;letter-spacing:.17em;color:#d0dde3}.hero-caption strong{font-family:Georgia,serif;font-size:18px;font-weight:400;margin-left:13px}.hero-bottom{position:absolute;bottom:23px;left:4%;right:4%;display:flex;justify-content:space-between;color:white;font-size:8px;letter-spacing:.16em}.hero-bottom a span{padding-left:18px;font-size:17px}.intro-strip{padding:26px 8%;background:var(--cream);display:flex;align-items:center;justify-content:space-between;gap:20px}.intro-strip>span:first-child{font-family:Georgia,serif;font-size:12px;letter-spacing:.14em}.intro-strip p{font-size:12px;letter-spacing:.15em}.small-star{font-size:30px;color:#b59a66}.section{max-width:1160px;margin:auto;padding:110px 30px}.concept{display:grid;grid-template-columns:1fr 1fr;gap:105px;align-items:center}.concept-image{position:relative;margin-right:15px}.concept-image img{height:490px;object-fit:cover;object-position:38% center}.image-label{position:absolute;bottom:20px;left:22px;color:#fff;font-size:8px;letter-spacing:.18em}.concept-copy h2{margin-bottom:28px}.concept-copy>p:not(.eyebrow):not(.signature){font-size:13px;line-height:2.35;margin-bottom:19px}.signature{font-family:Georgia,serif;color:#ad986b;font-size:25px;font-style:italic;margin-top:28px}.menu-section{background:var(--cream);padding:91px max(5%,calc((100% - 1100px)/2)) 65px}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:42px}.section-head h2{font-size:32px}.section-head>p{font-size:12px;color:var(--muted);line-height:2.2;padding-bottom:10px}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.menu-card{background:#fff}.card-image{height:225px;position:relative;overflow:hidden}.card-image img{height:100%;object-fit:cover}.card-image>span{position:absolute;bottom:12px;left:18px;font-size:9px;letter-spacing:.14em;background:#15364be8;color:white;padding:3px 9px}.card-content{padding:28px 27px 18px}.card-content .eyebrow{font-size:9px;margin-bottom:9px}.card-content h3{font-family:var(--serif);font-size:23px;margin-bottom:17px;letter-spacing:.06em}.card-content>p:not(.eyebrow){font-size:11px;color:var(--muted);line-height:2}.card-content .menu-price{margin-top:19px;padding-bottom:16px;color:var(--ink)!important;font-size:12px!important}.text-button{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:17px 0;width:100%;font-size:11px;letter-spacing:.06em;text-align:left}.text-button span{font-size:19px;color:#9c875a}.menu-note{font-size:10px;color:var(--muted);margin-top:24px;line-height:1.9}.guide{display:grid;grid-template-columns:1fr 1.1fr;gap:115px}.guide-heading>p:not(.eyebrow){font-size:12px;color:var(--muted);margin-top:24px}.guide-heading>img{margin-top:27px;height:160px;width:270px;object-fit:cover}.guide-steps{padding-top:21px}.guide-steps article{display:flex;gap:26px;border-top:1px solid var(--line);padding:29px 0}.guide-steps article>span{font-family:Georgia,serif;font-size:28px;color:#af986b;line-height:1.4}.guide-steps h3{font-size:16px;margin-bottom:10px}.guide-steps p{font-size:12px;color:var(--muted);line-height:2}.guide-steps>.text-button{margin-top:9px}.statement{display:grid;grid-template-columns:1fr 1fr;background:var(--navy);color:white}.statement>img{height:380px;object-fit:cover;object-position:50% 40%}.statement>div{display:flex;flex-direction:column;justify-content:center;padding:50px 12%}.statement h2{font-size:29px;white-space:nowrap}.statement .eyebrow{color:var(--gold)}.statement p:not(.eyebrow){font-size:12px;line-height:2.3;color:#d4dfe3;margin-top:22px}.faq{display:grid;grid-template-columns:1fr 1.7fr;gap:70px}.faq h2{font-size:30px}.faq-list{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{cursor:pointer;position:relative;padding:23px 30px 23px 0;list-style:none;font-size:13px;display:flex;gap:18px;align-items:baseline}summary::-webkit-details-marker{display:none}summary>span{color:#b09765;font-family:Georgia,serif;font-size:18px}summary:after{content:'＋';position:absolute;right:0;color:#9b875f}details[open] summary:after{content:'−'}details>p{font-size:12px;color:var(--muted);padding:0 25px 24px 37px;line-height:2}.access-section{display:grid;grid-template-columns:1fr 1fr;background:var(--cream)}.access-photo{position:relative}.access-photo img{height:100%;min-height:470px;object-fit:cover}.access-photo>span{position:absolute;bottom:22px;left:30px;font-size:9px;letter-spacing:.2em;color:white}.access-content{padding:60px 13% 55px}.access-content h2{font-size:31px}.access-content h3{font-size:13px;margin-top:24px}dl{font-size:11px;margin:20px 0}dl>div{display:grid;grid-template-columns:80px 1fr;border-top:1px solid #d8d9d1;padding:12px 0}dt{color:var(--muted)}dd{margin:0;white-space:pre-line}.reservation{text-align:center;padding:85px 20px 90px;background:var(--navy);color:white}.reservation .eyebrow{color:var(--gold);margin-bottom:17px}.reservation h2{font-size:34px}.reservation>p:not(.eyebrow){font-size:12px;color:#cedbe1;margin:20px auto 27px}.reservation .button{min-width:310px}.pending{display:inline-block;color:var(--gold);border:1px solid #d9c59b55;padding:15px 70px;font-size:11px;letter-spacing:.2em}footer{background:var(--deep);color:#c8d4dc;text-align:center;padding:38px 25px 30px;position:relative}footer .footer-brand{display:block;width:115px;margin:auto}footer p{font-size:10px;letter-spacing:.08em;margin:8px 0 25px}.footer-links{display:flex;justify-content:center;align-items:center;gap:30px;font-size:9px;letter-spacing:.08em}.plain-button{font-size:9px;padding:0}footer small{font-size:9px;display:block;margin-top:28px;color:#a4b7c3}.back-top{position:absolute;right:35px;bottom:30px;border:1px solid #c8d4dc55;width:40px;height:40px;display:grid;place-items:center}.mobile-only,.mobile-booking{display:none}dialog{border:0;width:min(800px,90vw);max-height:85svh;padding:35px;color:var(--ink);box-shadow:0 20px 100px #0005}dialog::backdrop{background:#0e273bd9}body:has(dialog[open]){overflow:hidden}.dialog-top{display:flex;justify-content:space-between;align-items:center}.dialog-top .eyebrow{margin:0}.dialog-close{font-size:30px;line-height:1;padding:5px 10px}dialog h2{font-size:25px;margin:15px 0}dialog>p{font-size:12px;line-height:2;margin-top:14px}dialog img{max-height:52svh;object-fit:contain}
@media(min-width:1600px){.hero-photo{object-position:center 40%}.hero-copy{padding-left:max(9%,calc((100% - 1200px)/2))}}
@media(max-width:1100px){.header{gap:20px;padding:0 25px}.brand>span{display:none}.header nav{gap:17px;font-size:10px}.header-cta{gap:15px;padding:10px 14px}.concept{gap:55px}.guide{gap:60px}.statement>div{padding:45px 10%}.statement h2{font-size:24px}.access-content{padding:50px 10%}.section-head h2{font-size:29px}.card-content{padding:24px 20px 15px}}
@media(max-width:780px){html{scroll-padding-top:80px}.header{height:78px;padding:0 20px;gap:18px}.brand img{width:62px;height:62px}.brand>span{display:block;font-size:7px}.header-cta{font-size:10px;padding:8px 12px;gap:12px}.header-cta span{font-size:15px}.nav-toggle{display:flex;flex-direction:column;gap:6px;padding:10px 0 10px 8px}.nav-toggle span{display:block;width:24px;height:1px;background:var(--gold)}.header nav{display:none;position:absolute;top:78px;left:0;right:0;flex-direction:column;background:var(--deep);padding:20px 30px;gap:0;font-size:13px;box-shadow:0 20px 25px #0002}.header nav.is-open{display:flex}.header nav a{padding:14px 0;border-bottom:1px solid #ffffff15}.hero{height:690px;min-height:0;max-height:850px}.hero-photo{object-position:62% center}.hero-shade{background:linear-gradient(90deg,#102c40d9,#15364b65 55%,#15364b05),linear-gradient(0deg,#102c4066,transparent 35%)}.hero-copy{padding:63px 7% 0}.hero h1{font-size:47px}.hero-description{font-size:12px;margin-top:23px}.hero .eyebrow{font-size:8px}.hero .button{font-size:11px;gap:25px;padding:14px 20px}.hero-caption{margin-top:30px}.hero-bottom{left:7%;right:7%;font-size:7px}.intro-strip{padding:24px 7%}.intro-strip>span:first-child{font-size:9px}.intro-strip p{font-size:10px;letter-spacing:.03em}.small-star{display:none}.section{padding:75px 7%}.concept{gap:35px;grid-template-columns:1fr 1fr}.concept-image img{height:370px}.concept-image{margin:0}h2{font-size:27px}.concept-copy>p:not(.eyebrow):not(.signature){font-size:11px}.signature{font-size:20px}.menu-section{padding:65px 7% 45px}.section-head{display:block;margin-bottom:30px}.section-head>p{margin-top:18px}.section-head h2{font-size:29px}.menu-grid{gap:15px;grid-template-columns:1fr}.menu-card{display:grid;grid-template-columns:42% 58%}.card-image{height:100%;min-height:260px}.card-content{padding:22px}.card-content h3{font-size:22px}.card-content>p:not(.eyebrow){font-size:11px}.card-content .menu-price{margin-top:13px}.guide{gap:40px;grid-template-columns:1fr 1.1fr}.guide-heading>img{width:100%;height:150px}.guide-steps{padding:0}.guide-steps article{gap:17px;padding:22px 0}.guide-steps h3{font-size:14px}.guide-steps p{font-size:11px}.statement>img{height:330px}.statement>div{padding:35px 8%}.statement h2{font-size:20px}.statement p:not(.eyebrow){font-size:11px}.statement .eyebrow{font-size:8px}.faq{gap:25px;grid-template-columns:1fr}.faq h2{font-size:27px}.access-content{padding:40px 10%}.access-content h2{font-size:24px}.access-photo img{min-height:430px}.access-content .eyebrow{font-size:8px}dl>div{grid-template-columns:65px 1fr}.reservation{padding:65px 7%}.reservation h2{font-size:29px}}
@media(max-width:520px){.brand>span{display:none}.header-cta{margin-left:auto;font-size:9px;letter-spacing:0}.header{gap:15px}.brand{margin-right:0}.hero{height:675px}.hero-photo{object-position:59% center}.hero-shade{background:linear-gradient(90deg,#102c40da,#15364b65 65%,#15364b15),linear-gradient(0deg,#102c4090,transparent 45%)}.hero-copy{padding-top:62px}.hero h1{font-size:42px}.hero .eyebrow{letter-spacing:.14em}.hero-description{margin-top:25px;font-size:11px}.hero .button{margin-top:4px;font-size:10px}.hero-caption{margin-top:28px}.intro-strip{display:block;padding:22px 7%}.intro-strip p{margin-top:5px;font-size:11px;letter-spacing:.1em}.concept{grid-template-columns:1fr;gap:38px}.concept-image{width:85%;margin-bottom:3px}.concept-image img{height:310px}.concept-copy{padding-left:10%}.concept-copy h2{font-size:28px}.concept-copy>p:not(.eyebrow):not(.signature){font-size:12px}.eyebrow{font-size:9px;margin-bottom:18px}.menu-grid{gap:24px}.menu-card{display:block}.card-image{height:220px;min-height:0}.card-content{padding:25px 25px 15px}.card-content h3{font-size:24px}.card-content>p:not(.eyebrow){font-size:12px}.menu-note{font-size:9px}.mobile-only{display:block}.section-head h2{font-size:28px}.guide{grid-template-columns:1fr;gap:35px}.guide-heading>img{display:none}.guide-heading>p:not(.eyebrow){margin-top:17px}.guide-steps h3{font-size:15px}.guide-steps p{font-size:12px}.statement{grid-template-columns:1fr}.statement>img{height:280px;object-position:center 38%}.statement>div{padding:42px 9% 46px}.statement h2{font-size:26px}.statement p:not(.eyebrow){font-size:12px}.faq .eyebrow{margin-bottom:12px}.faq{gap:30px}.faq h2{font-size:28px}summary{font-size:12px;gap:13px}details>p{padding-left:30px}.access-section{grid-template-columns:1fr}.access-photo img{min-height:0;height:245px}.access-content{padding:45px 9%}.access-content h2{font-size:28px}.access-content .eyebrow{font-size:9px}dl{font-size:12px}dl>div{padding:15px 0;grid-template-columns:85px 1fr}.reservation h2{font-size:27px}.reservation>p:not(.eyebrow){font-size:11px}.reservation .button{min-width:0;width:100%}.pending{padding:14px 60px}.footer-links{flex-wrap:wrap;gap:15px 25px}footer{padding-bottom:96px}.back-top{bottom:94px;right:20px}.mobile-booking{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:15;background:var(--gold);color:var(--deep);padding:14px 25px calc(14px + env(safe-area-inset-bottom));justify-content:center;gap:40px;font-size:12px;box-shadow:0 -3px 15px #0001}dialog{padding:23px}dialog h2{font-size:21px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}a,button{transition:none}}

/* Menu pricing */
.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}
.price-panel{display:grid;grid-template-columns:1fr 1.8fr;gap:50px;margin-top:55px;background:#fff;padding:40px}.price-intro h3{font-family:var(--serif);font-size:25px;line-height:1.9;letter-spacing:.04em}.price-intro>p:last-child{font-size:11px;color:var(--muted);margin-top:17px}.price-table{width:100%;border-collapse:collapse;text-align:left}.price-table thead{font-size:10px;letter-spacing:.1em;color:var(--muted)}.price-table th,.price-table td{padding:14px 0;border-bottom:1px solid var(--line)}.price-table tbody th{font-size:13px;font-weight:400}.price-table td{text-align:right;white-space:nowrap;font-family:Georgia,"Yu Mincho",serif;font-size:19px;color:var(--navy);padding-left:18px}.price-table thead th:last-child{text-align:right}.price-table small{font-size:11px;color:var(--muted)}
@media(max-width:780px){.price-panel{grid-template-columns:1fr;gap:23px;padding:30px;margin-top:35px}.price-intro h3{font-size:23px}.price-intro>p:last-child{margin-top:10px}.price-intro .eyebrow{margin-bottom:12px}}
@media(max-width:520px){.price-panel{padding:25px 19px}.price-table tbody th{font-size:12px}.price-table small{display:block;font-size:10px}.price-table td{font-size:18px;padding-left:10px}.reservation #booking-link{font-size:11px;justify-content:center;padding:17px 12px;letter-spacing:0}}

/* Hero: keep the portrait and copy in separate layout regions. */
.hero{display:grid;grid-template-columns:52% 48%;height:auto;min-height:650px;background:var(--navy)}
.hero-photo{position:absolute;inset:0 auto 0 0;width:52%;height:100%;object-fit:cover;object-position:35% center}
.hero-shade{inset:0 auto 0 0;width:52%;background:linear-gradient(0deg,#102c4040,transparent 35%);pointer-events:none}
.hero-copy{grid-column:2;min-width:0;width:100%;margin:0;padding:65px clamp(28px,4vw,80px) 100px}
.hero h1{font-size:clamp(36px,4.1vw,64px);letter-spacing:.08em}
.hero-description{overflow-wrap:anywhere}
.hero .button{max-width:100%;gap:18px}
.hero-bottom{pointer-events:none}
.hero-bottom a{pointer-events:auto}
/* Prices: stable columns, separate descriptions, aligned numeric amounts. */
.menu-grid>*{min-width:0}
.card-content{min-width:0}
.card-content .menu-price{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-variant-numeric:tabular-nums;font-weight:600;line-height:1.8;overflow-wrap:normal}
.price-panel{grid-template-columns:minmax(200px,.85fr) minmax(0,1.8fr);gap:36px}
.price-table-wrap{min-width:0}
.price-table{table-layout:fixed;width:100%}
.price-table thead th:first-child{width:65%}
.price-table thead th:last-child{width:35%;text-align:right}
.price-table tbody th{padding:18px 16px 18px 0;line-height:1.6;overflow-wrap:anywhere}
.price-table tbody th small{display:block;margin-top:5px;font-size:11px;line-height:1.6;font-weight:400}
.price-table td{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:20px;font-weight:500;letter-spacing:0;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;padding:18px 0;vertical-align:middle}
@media(max-width:1000px){
 .hero{min-height:610px}
 .hero-copy{padding:56px 28px 90px}
 .hero h1{font-size:clamp(32px,4.4vw,44px)}
 .hero .eyebrow{font-size:8px;letter-spacing:.12em}
 .hero-description{font-size:11px;letter-spacing:.02em}
 .hero .button{font-size:10px;padding:14px 16px;gap:10px;letter-spacing:0}
 .price-panel{grid-template-columns:1fr;gap:25px}
}
@media(max-width:780px){
 .hero{display:flex;flex-direction:column;height:auto;min-height:0;max-height:none}
 .hero-photo{position:relative;inset:auto;width:100%;height:clamp(280px,60vw,430px);object-position:35% 30%;flex:none}
 .hero-shade{display:none}
 .hero-copy{padding:38px 7% 90px;width:100%}
 .hero h1{font-size:clamp(34px,6vw,46px);line-height:1.65}
 .hero .eyebrow{font-size:9px;margin-bottom:18px}
 .hero-description{font-size:12px;margin:20px 0 24px}
 .hero .button{font-size:11px;padding:16px 22px;gap:24px}
 .hero-caption{margin-top:24px}
 .hero-bottom{bottom:20px;left:7%;right:7%}
 .price-panel{padding:30px 24px}
}
@media(max-width:520px){
 .hero-photo{height:300px;object-position:35% 28%}
 .hero-copy{padding:32px 7% 85px}
 .hero h1{font-size:38px}
 .hero .button{font-size:10px;gap:20px}
 .price-panel{padding:26px 18px}
 .price-table thead th:first-child{width:62%}
 .price-table thead th:last-child{width:38%}
 .price-table tbody th{font-size:12px;padding-right:10px}
 .price-table tbody th small{font-size:10px}
 .price-table td{font-size:18px}
}
