/* The Hotel entrance: existing night garden, clearer doors and readable controls. */
.ng-header { position:relative; padding:24px max(24px,5.5%); background:#10251f; gap:28px; z-index:5; }
.ng-brand { font-size:14px; letter-spacing:1.5px; gap:14px; flex-shrink:0; }
.ng-brand small { display:block; font-size:12px; letter-spacing:.9px; margin-top:6px; }
.ng-nav { margin-left:auto; gap:26px; font-size:14px; }
.ng-nav a { min-height:48px; white-space:nowrap; }
.ng-menu { display:block; position:relative; flex-shrink:0; }
.ng-menu summary { display:flex; align-items:center; gap:12px; min-height:48px; padding:0 4px; color:#f1eadc; font-size:14px; cursor:pointer; list-style:none; }
.ng-menu summary::-webkit-details-marker { display:none; }
.ng-menu summary span { font-size:18px; }
.ng-menu[open] summary { border-bottom:1px solid #dcc39a70; }
.ng-menu nav { display:grid; position:absolute; top:58px; right:0; width:300px; max-width:calc(100vw - 48px); max-height:calc(100svh - 124px); overflow:auto; padding:10px 16px; background:#122920; border:1px solid #d7ba8a80; box-shadow:0 15px 40px #0005; }
.ng-menu nav a { display:flex; align-items:center; min-height:48px; padding:10px 4px; color:#eee7d8; font-size:14px; line-height:1.5; border-bottom:1px solid #d7ba8a26; }
.ng-menu nav a:last-child { border:0; }
.ng-menu nav a:hover { color:#f4d2a2; }
.ng-header a:focus-visible,.ng-menu summary:focus-visible,.ng-arrival a:focus-visible,.ng-lobby a:focus-visible { outline:2px solid #f4d2a2; outline-offset:5px; }
.ng-arrival { min-height:clamp(680px,78svh,850px); }
.ng-arrival-copy { max-width:1480px; padding:96px 5.5% 136px; }
.ng-arrival .ng-eyebrow { font-size:13px; letter-spacing:1.3px; margin:0; }
.ng-arrival h1 { max-width:780px; margin:24px 0 0; font-size:clamp(3.4rem,6.2vw,5.8rem); line-height:1.08; letter-spacing:-.045em; }
.ng-intro { max-width:420px; margin:26px 0 0; font-size:17px; line-height:1.75; }
.ng-actions { margin-top:28px; gap:24px; }
.ng-button { min-height:54px; padding:15px 20px; gap:18px; font-size:14px; }
.ng-text-link { min-height:48px; gap:14px; font-size:14px; }
.ng-small-note { margin-top:18px; font-size:14px; line-height:1.6; }
.ng-garden-label { right:6%; bottom:128px; }
.ng-garden-label small { font-size:12px; letter-spacing:1px; line-height:1.5; }
.ng-threshold { padding:22px 0 24px; }
.ng-threshold a { min-height:48px; font-size:12px; letter-spacing:1px; }
.ng-lobby { padding:64px 5.5% 48px; }
.ng-eyebrow { font-size:12px; letter-spacing:1.2px; }
.ng-lobby-heading>p { max-width:410px; font-size:16px; padding:0; }
.ng-door-number { font-size:12px; letter-spacing:.8px; }
.ng-door-copy p { font-size:16px; line-height:1.7; }
.ng-door-action { font-size:14px; min-height:44px; }
.ng-lobby-foot { margin-top:32px; font-size:17px; line-height:1.8; }
.ng-lobby-foot a { min-height:48px; font-size:14px; margin-left:24px; padding:12px 0; }
@media(min-width:1700px) { .ng-arrival-copy { padding-left:5.5%; padding-right:5.5%; } }
@media(max-width:1100px) { .ng-nav { gap:18px; } .ng-brand small { font-size:12px; } .ng-header { gap:20px; } }
@media(max-width:950px) { .ng-nav { display:none; } .ng-menu { margin-left:auto; } .ng-arrival h1 { font-size:clamp(3.2rem,7vw,4.5rem); } }
@media(max-width:680px) {
  /* Keep the phone entrance clear; the shop stays in Menu and at the end. */
  .bookshop-freeze { display:none; }
  .ng-header { padding:18px 24px; gap:16px; }
  .ng-brand { font-size:13px; letter-spacing:1px; gap:12px; }
  .ng-brand small { font-size:10px; letter-spacing:.6px; }
  .ng-arrival { min-height:0; align-items:stretch; }
  .ng-garden { height:360px; object-position:68% 45%; }
  .hotel-flower-corner { top:16px; right:0; width:50vw; max-width:210px; }
  .ng-arrival::before { background:linear-gradient(180deg,#06181020,transparent 18%,#10251f66 29%,#10251ff5 47%,#10251f 60%); }
  .ng-arrival-copy { padding:270px 24px 114px; }
  .ng-arrival .ng-eyebrow { font-size:12px; letter-spacing:.7px; gap:8px; }
  .ng-arrival .ng-eyebrow>span { font-size:20px; }
  .ng-arrival h1 { font-size:clamp(2.4rem,11.4vw,3.5rem); margin-top:16px; letter-spacing:-.04em; }
  .ng-intro { max-width:100%; font-size:16px; line-height:1.65; margin-top:22px; }
  .ng-actions { gap:20px; margin-top:24px; }
  .ng-button { min-height:52px; padding:14px 16px; gap:12px; font-size:14px; }
  .ng-text-link { font-size:14px; min-height:48px; gap:10px; }
  .ng-small-note { margin-top:16px; font-size:14px; }
  .ng-garden-label { top:198px; bottom:auto; right:24px; }
  .ng-garden-label p { font-size:18px; }
  .ng-garden-label small { font-size:10px; letter-spacing:.6px; }
  .ng-threshold { left:24px; right:24px; gap:18px; padding:16px 0 20px; }
  .ng-threshold p { font-size:16px; }
  .ng-threshold a { font-size:11px; letter-spacing:.6px; gap:10px; }
  .ng-lobby { padding:48px 24px 30px; }
  .ng-lobby-heading { margin-bottom:28px; gap:20px; }
  .ng-lobby-heading .ng-eyebrow { font-size:12px; letter-spacing:1px; }
  .ng-lobby-heading>p { font-size:16px; }
  .ng-door-visual { height:230px; }
  .ng-door-number { font-size:12px; left:20px; }
  .ng-door-copy { padding:24px; }
  .ng-door-copy p { font-size:16px; }
  .ng-lobby-foot a { display:block; width:fit-content; margin:12px auto 0; font-size:14px; }
}
@media(max-width:360px) {
  .ng-header { padding:16px; gap:12px; }
  .ng-brand { font-size:12px; gap:8px; }
  .ng-brand>span:last-child { max-width:136px; }
  .ng-monogram { font-size:22px; padding:7px 8px 9px 6px; flex-shrink:0; }
  .ng-brand small { font-size:10px; }
  .ng-arrival-copy { padding:240px 20px 120px; }
  .ng-arrival h1 { font-size:2.25rem; }
  .ng-actions { gap:12px; }
  .ng-button,.ng-text-link { font-size:14px; }
  .ng-threshold { left:20px; right:20px; }
  .ng-threshold a { font-size:10px; }
  .ng-lobby { padding-left:20px; padding-right:20px; }
}
@media(prefers-reduced-motion:reduce) { .ng-button { transition:none; } }

