/* Sakuragawa · editorial design revision */
:root{--paper:#fffaf5;--ink:#294455}body{color:var(--ink)}header{position:sticky;top:0;z-index:10;background:var(--paper);padding:20px 5%;min-height:90px}html{scroll-padding-top:110px}nav{align-items:center;gap:34px}nav a{font-size:14px}.nav-book{border-bottom:1px solid var(--navy);padding-bottom:6px}.brand-logo{width:250px}.review{font-size:10px;padding:6px;letter-spacing:2px}main>section{padding:100px 8%;border:0}.hero.immersive{display:block;position:relative;min-height:730px;height:calc(100svh - 120px);max-height:1000px;padding:70px 8% 90px;isolation:isolate;background:var(--navy);color:white}.hero-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%;z-index:-2}.hero.immersive:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,31,38,.83),rgba(13,31,38,.55) 50%,rgba(13,31,38,.12));z-index:-1}.hero-content{max-width:800px;padding-top:35px}.hero h1{font-size:clamp(50px,6.6vw,96px);letter-spacing:-3px;line-height:1.12;margin:26px 0}.hero .subtitle{font-family:'Noto Serif','Yu Mincho',serif;font-size:22px;letter-spacing:3px;line-height:1.8}.hero .intro{font-size:18px;line-height:1.75;color:#fff3e7}.hero .button{background:var(--cream);color:var(--ink);border-color:var(--cream)}.hero .text-link{color:white}.hero-scroll{position:absolute;bottom:28px;left:8%;font-size:10px;letter-spacing:3px;text-decoration:none}.visit-ribbon{display:flex;justify-content:space-between;gap:20px;padding:23px 8%;background:var(--cream);font-size:13px}.visit-ribbon a{text-decoration:none}.editorial-story{grid-template-columns:1fr 1fr;gap:12%;align-items:start}.editorial-story h2{font-size:clamp(42px,4.8vw,68px)}.story-copy{padding-top:30px}.story-copy .large{font-family:'Noto Serif',Georgia,serif;font-size:28px;line-height:1.5;margin-top:0}.story-copy>p:not(.large){max-width:470px}details{border-top:1px solid #37536740;margin-top:28px;padding-top:18px}summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:15px;padding:5px 0;min-height:44px}summary::-webkit-details-marker{display:none}summary span{font-size:22px}details[open] summary span{transform:rotate(45deg)}details p{font-size:16px;line-height:1.8}.room-gallery{background:#f0e8de}.section-head{margin-bottom:30px}.section-head>p{font-size:16px}.gallery-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:18px;align-items:start}.gallery-tile{position:relative;display:block;border:0;padding:0;background:var(--cream);width:100%;color:var(--ink);text-align:left;cursor:zoom-in;overflow:hidden}.gallery-tile:nth-child(2){margin-top:55px}.gallery-tile:nth-child(3){margin-top:110px}.gallery-tile img{display:block;width:100%;height:310px;object-fit:cover;transition:transform .5s}.gallery-room img{height:450px}.gallery-tile:hover img{transform:scale(1.035)}.gallery-tile span{display:flex;justify-content:space-between;padding:15px 17px;font-size:13px}.gallery-tile b{font-weight:400}#menu{padding-top:105px;padding-bottom:90px}.menu-tabs{border-bottom:1px solid #37536730;gap:30px;padding-bottom:0;margin:35px 0}.menu-tabs button{border:0;border-bottom:3px solid transparent;padding:15px 0;background:none;font-size:17px}.menu-tabs button[aria-selected=true]{background:none;color:var(--ink);border-bottom-color:var(--pink)}.menu-mood{font-size:18px;margin-bottom:25px}.menu-slide{background:#f1e3d6;grid-template-columns:1.15fr 1fr}.slide-image{height:470px;background:#e7d6c6}.slide-copy{padding:45px 55px}.slide-copy h3{font-size:clamp(32px,3.6vw,50px)}.slide-copy .eyebrow{color:var(--navy);font-size:10px}.slide-copy>p:not(.eyebrow){font-size:17px}.visit{background:var(--navy);color:var(--paper);gap:14%;grid-template-columns:1.2fr 1fr}.visit .button{background:var(--cream);color:var(--ink);border-color:var(--cream);margin-top:25px}.visit details{border-color:#ffffff50}.visit .hours{border-color:var(--cream)}.visit h2{font-size:clamp(43px,4.8vw,68px)}.hours h3{font-size:28px}.hours dt{font-size:14px;letter-spacing:1px}.hours dd{font-size:18px}.hours small{color:#f6e1d0}.reservation{background:var(--paper)}.reservation form{background:var(--cream);padding:35px}.booking-steps{display:grid;gap:12px;margin:28px 0;font-size:14px}.booking-steps span{border-bottom:1px solid #37536730;padding:10px 0}.recipes.recipe-teaser{background:#f0e8de;color:var(--ink);padding-top:65px;padding-bottom:65px}.recipe-teaser h2{font-size:38px}.recipe-teaser p{font-size:16px}footer{padding:60px 8% 100px;gap:35px}footer .brand-logo{width:230px}#gallery-view{width:92vw;max-width:1200px;background:var(--paper);padding:20px;border:0}#gallery-image{display:block;width:100%;height:70svh;object-fit:contain}.gallery-top,.gallery-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px}.gallery-top{margin-bottom:15px;font-size:12px;letter-spacing:2px}.gallery-bottom p{font-size:14px;text-align:center}.gallery-top button,.gallery-bottom button{background:transparent;border:1px solid #37536750;min-height:44px;min-width:44px;color:var(--ink)}.gallery-top button{padding:5px 15px}.gallery-bottom button{font-size:24px}button:hover:not(:disabled){filter:brightness(.96)}
@media(max-width:760px){header{min-height:78px;padding:16px 5%}header .brand-logo{width:180px;max-width:43vw}nav{gap:10px 16px;max-width:155px}nav a{font-size:12px}.hero.immersive{min-height:650px;height:calc(100svh - 100px);max-height:850px;padding:50px 6% 75px}.hero h1{font-size:clamp(47px,10vw,68px);letter-spacing:-2px}.hero .eyebrow{font-size:9px;letter-spacing:2px}.hero .subtitle{font-size:17px;letter-spacing:1px}.hero .intro{font-size:16px}.hero-content{padding-top:25px}.hero.immersive:after{background:linear-gradient(90deg,#0d1f26d9,#0d1f2680)}.hero-scroll{left:6%;font-size:9px}.visit-ribbon{padding:20px 6%;flex-wrap:wrap;gap:8px 20px;font-size:12px}.visit-ribbon span:first-child{width:100%}main>section{padding:65px 6%}.editorial-story{grid-template-columns:1fr;gap:10px}.story-copy{padding-top:0}.story-copy .large{font-size:24px}.gallery-grid{grid-template-columns:1fr 1fr;gap:12px}.gallery-room{grid-column:1/-1}.gallery-room img{height:340px}.gallery-tile img{height:205px}.gallery-tile:nth-child(2),.gallery-tile:nth-child(3){margin:0}.gallery-tile span{font-size:11px;padding:12px}.gallery-room img{height:340px}#menu{padding-top:65px;padding-bottom:60px}.menu-tabs{gap:24px}.menu-tabs button{font-size:15px}.menu-slide{grid-template-columns:1fr}.slide-image{height:310px}.slide-copy{padding:28px;min-height:280px}.slide-copy h3{font-size:32px}.visit{grid-template-columns:1fr;gap:40px}.reservation form{padding:25px 20px}.reservation{gap:25px}.recipe-teaser h2{font-size:32px}#gallery-view{padding:14px}#gallery-image{height:62svh}.gallery-bottom{gap:8px}.gallery-bottom p{font-size:12px}footer{padding:45px 6% 110px}html{scroll-padding-top:100px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Consistent section palettes: one surface per section, restrained pink accents. */
:root{--paper:#fffaf5;--ink:#203847}
header{border-bottom:1px solid #37536730;background:var(--paper)}
.nav-book{background:var(--navy);color:white;border:0;padding:11px 16px}
.hero .subtitle{color:var(--cream)}
.hero .button{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.visit-ribbon{background:var(--cream);color:var(--ink);border-bottom:1px solid #37536730}
.editorial-story{background:var(--cream);color:var(--ink)}
.editorial-story h2:after{content:'';display:block;width:70px;height:3px;background:var(--navy);margin-top:28px}
.room-gallery{background:var(--navy);color:var(--paper)}
.gallery-tile,.gallery-tile:nth-child(2),.gallery-tile:nth-child(3){background:var(--navy);color:var(--paper)}
.gallery-tile span{border-bottom:1px solid #fffaf550;padding:16px 0}
#menu{background:var(--paper);color:var(--ink)}
.menu-tabs{gap:28px;border-bottom:1px solid #37536740}
.menu-tabs button{background:transparent;color:var(--ink);padding:15px 0;border:0;border-bottom:3px solid transparent;border-radius:0}
.menu-tabs button[aria-selected=true]{background:transparent;color:var(--ink);border-bottom-color:var(--navy);box-shadow:none}
.menu-slide,.slide-image,.slide-copy{background:var(--paper);color:var(--ink)}
.slide-copy .eyebrow,.slide-copy .text-link{color:var(--ink)}
.slide-copy{border-top:1px solid #37536730;border-bottom:1px solid #37536730}
.slider-arrows button{background:transparent;color:var(--ink);border-color:var(--navy)}
.visit{background:var(--cream);color:var(--ink);border:0}
.visit .hours{background:transparent;color:var(--ink);border-top:2px solid var(--navy);padding:20px 0 0}
.visit .hours h3,.visit .hours small{color:var(--ink)}
.visit details{border-color:#37536750}
.visit .button{background:var(--navy);color:white;border-color:var(--navy)}
.reservation{background:var(--blue);color:var(--ink)}
.reservation form{background:transparent;border:1px solid #37536770;padding:35px}
.reservation input,.reservation select{color:var(--ink)}
.reservation .button{background:var(--navy);color:white}
.recipes.recipe-teaser{background:var(--cream);color:var(--ink);border-top:1px solid #37536730}
footer{background:var(--navy);color:var(--paper);border:0;display:grid;grid-template-columns:1fr 1fr;align-items:start}
footer>a:first-child{background:transparent;padding:0;justify-self:start}
footer .brand-logo{width:270px;max-width:100%;height:auto}
.footer-socials{display:flex;gap:14px 24px;flex-wrap:wrap;grid-column:1/-1;border-top:1px solid #fffaf550;padding-top:25px}
.footer-socials a{font-size:14px;text-decoration:none;padding:8px 0}
footer>button{justify-self:start;padding:0}
footer>.small{margin:0;font-size:12px}
.mobile-bar{background:var(--navy);border-top:1px solid #fffaf550}
@media(max-width:760px){.nav-book{padding:8px 10px}.menu-tabs{gap:24px}.reservation form{padding:25px 20px}.slide-copy{border-top:0}footer{grid-template-columns:1fr;gap:25px}footer .brand-logo{width:240px}.footer-socials{gap:10px 22px}}
.footer-socials{max-width:none;justify-content:flex-start;align-items:center}
/* Product viewing: fit full photos inside the slide with breathing room. */
.menu-slide{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}
.slide-image{height:400px;padding:32px;display:flex;align-items:center;justify-content:center;overflow:hidden;min-width:0;background:var(--paper)}
.slide-image img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;object-position:center;flex:0 1 auto}
.slide-copy{min-width:0;padding:35px 42px}
@media(max-width:760px){.menu-slide{grid-template-columns:minmax(0,1fr)}.slide-image{height:285px;padding:24px}.slide-copy{padding:25px;min-height:265px}}
/* Full photo framing with a gentle, manually pausable Ken Burns movement. */
.slide-image{height:470px;padding:0;position:relative;overflow:hidden}
.slide-image img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;object-position:center;transform:scale(1)}
.menu-slide.is-active .slide-image img{animation:menu-ken-burns 16s ease-in-out infinite alternate;animation-play-state:paused}
.menu-in-view:not(.photo-motion-paused):not(.page-hidden) .menu-slide.is-active .slide-image img{animation-play-state:running}
@keyframes menu-ken-burns{from{transform:scale(1);transform-origin:48% 52%}to{transform:scale(1.07);transform-origin:52% 48%}}
#panel-drinks .slide-image img{object-fit:contain}
.photo-motion-toggle{display:block;margin:-12px 0 24px;padding:8px 0;min-height:44px;border:0;background:transparent;color:var(--ink);font-size:12px;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
@media(max-width:760px){.slide-image{height:330px;padding:0}}
@media(prefers-reduced-motion:reduce){.menu-slide.is-active .slide-image img{animation:none!important;transform:none!important}.photo-motion-toggle{display:none}}
/* Shared interaction language across every menu category. */
.menu-tabs{position:relative;align-items:center;row-gap:8px}
.menu-tabs button[aria-selected=true]{border-bottom-color:transparent}
.menu-tab-underline{position:absolute;left:0;top:0;height:3px;background:var(--navy);pointer-events:none;transition:transform .35s ease,width .35s ease}
.menu-panel:not([hidden]){animation:menu-category-fade .45s ease both}
@keyframes menu-category-fade{from{opacity:0}to{opacity:1}}
.menu-slide.is-active .slide-copy{animation:dish-copy-in .5s ease both}
.menu-slide.is-active .slide-image{animation:menu-category-fade .65s ease both}
@keyframes dish-copy-in{from{opacity:.2;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
.section-reveal{opacity:0;transform:translateY(14px);transition:opacity .65s ease,transform .65s ease}
.section-reveal.revealed,.section-reveal:focus-within,.section-reveal:target{opacity:1;transform:none}
.button,.nav-book{transition:background-color .2s ease,color .2s ease,box-shadow .2s ease}
.button:hover,.nav-book:hover{box-shadow:inset 0 -3px 0 var(--pink)}
.text-link{transition:text-decoration-color .2s ease;text-decoration-color:currentColor}
.text-link:hover{text-decoration-color:var(--pink)}
.gallery-tile span b{transition:transform .25s ease}
.gallery-tile:hover span b{transform:translate(2px,-2px)}
@media(max-width:760px){.menu-tabs{gap:4px 20px}.menu-tabs button{font-size:14px;padding:12px 0}}
@media(prefers-reduced-motion:reduce){.section-reveal{opacity:1;transform:none}.menu-tab-underline{transition:none}.menu-panel:not([hidden]),.menu-slide.is-active .slide-copy,.menu-slide.is-active .slide-image{animation:none}}
/* Cookie consent: equally prominent choices, readable at mobile sizes. */
dialog.cookie-consent{position:fixed;inset:auto 24px 24px auto;margin:0;width:min(530px,calc(100vw - 48px));max-width:none;max-height:85svh;overflow-y:auto;background:var(--paper);color:var(--ink);border:1px solid var(--navy);padding:28px;box-shadow:0 20px 80px #102c3b40}
.cookie-consent::backdrop{background:#18323f66}
.consent-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.consent-header .eyebrow{font-size:9px;letter-spacing:2px;margin:0}
.cookie-consent #privacy-close{background:transparent;border:0;margin:0;padding:0;width:44px;height:44px;font-size:28px;color:var(--ink)}
.cookie-consent h2{font-size:38px;margin:8px 0 18px}.cookie-consent p{font-size:14px;line-height:1.65}
.consent-current{font-weight:bold}.consent-details{margin-top:18px;padding-top:10px}.consent-details summary{font-size:14px}.consent-details p{font-size:13px}
.consent-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}.cookie-consent .consent-actions button{margin:0;padding:13px 12px;min-height:52px;border:1px solid var(--navy);background:var(--navy);color:white;font-size:13px;line-height:1.4;cursor:pointer}
.cookie-consent .consent-footnote{font-size:11px;margin:16px 0 0}.cookie-consent button:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
@media(max-width:560px){dialog.cookie-consent{inset:auto 12px 12px;margin:0;width:calc(100vw - 24px);padding:22px;max-height:88svh}.cookie-consent h2{font-size:32px}.consent-actions{gap:8px}.cookie-consent .consent-actions button{font-size:12px;padding:12px 8px}}

#visit.visit{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px 7%;align-items:start}
.arrival-view{margin:0;grid-row:span 2;min-width:0}.arrival-photo{overflow:hidden;background:var(--navy);aspect-ratio:4/5}.arrival-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 40%}.arrival-view figcaption{padding-top:16px}.exterior-switch{display:flex;gap:8px}.exterior-switch button{font:inherit;font-size:13px;border:1px solid var(--navy);padding:10px 24px;min-height:44px;background:transparent;color:var(--navy);cursor:pointer}.exterior-switch button[aria-pressed=true]{background:var(--navy);color:var(--cream)}.exterior-switch button:focus-visible{outline:3px solid var(--navy);outline-offset:3px}.arrival-view figcaption p{font-size:13px;line-height:1.6;margin:12px 0 0}#visit .hours{grid-column:2}
@media(max-width:760px){#visit.visit{grid-template-columns:minmax(0,1fr);gap:32px}.arrival-view{grid-row:auto;grid-row-start:2}.arrival-photo{aspect-ratio:4/3}.arrival-photo img{object-position:center 34%}#visit .hours{grid-column:1}}

.entrance-video-button{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;margin-top:22px;padding:16px 0;border:0;border-top:1px solid #37536755;border-bottom:1px solid #37536755;background:transparent;color:var(--navy);font:inherit;font-size:15px;text-align:left;cursor:pointer}.entrance-video-button:focus-visible{outline:3px solid var(--navy);outline-offset:4px}.arrival-view .arrival-video-note{font-size:12px}
#entrance-video-dialog{width:min(480px,calc(100vw - 24px));max-width:none;max-height:90svh;overflow:auto;padding:22px;background:var(--paper);color:var(--ink)}.entrance-video-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.entrance-video-header h2{font-size:25px;margin:0}.entrance-video-header button{margin:0;white-space:nowrap;background:transparent;min-height:44px}#entrance-video{display:block;width:100%;max-height:58svh;background:#14232d;margin-top:18px}#entrance-video-dialog>p{font-size:13px;line-height:1.6}#entrance-video-dialog>a{display:inline-block;font-size:12px;padding:8px 0}
