/* The original NHN colors and page layout remain the foundation of this proposal. */
.nhn-signature-menu-ready .nhn-signature-header .desktop-nav,
.nhn-signature-menu-ready .nhn-signature-header .menu-toggle,
.nhn-signature-menu-ready .nhn-signature-header .header-contact,
.nhn-signature-menu-ready #mobile-nav { display: none !important; }
.nhn-signature-header { gap: 18px; }
.nhn-signature-header > .nhn-booking-entry { display: inline-flex !important; margin: 0 0 0 auto !important; min-height: 48px; }
.nhn-signature-header > .gateway-heading { margin-inline: auto; }
.nhn-signature-header > .gateway-edition { display: none; }
.nhn-signature-menu-trigger { display: inline-flex; align-items: center; justify-content: center; flex: none; gap: 15px; min-height: 48px; padding: 12px 5px 12px 16px; color: #f3f0e8; background: none; border: 0; font: 500 12px/1.2 Manrope, Arial, sans-serif; cursor: pointer; }
.nhn-signature-menu-dot { display: block; width: 7px; height: 7px; border-radius: 50%; background: #c2a46f; transition: transform .3s ease; }
.nhn-signature-menu-trigger:hover .nhn-signature-menu-dot { transform: scale(1.65); }
.nhn-signature-menu-trigger:focus-visible { outline: 2px solid #c2a46f; outline-offset: 5px; }

.nhn-signature-menu { --menu-forest: #102b24; --menu-paper: #f3f0e8; --menu-gold: #c2a46f; --menu-ease: cubic-bezier(.2,.75,.25,1); position: fixed; inset: 0; width: 100%; height: 100%; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: var(--menu-paper); color: var(--menu-forest); font: 400 14px/1.5 Manrope, Arial, sans-serif; overscroll-behavior: contain; overflow-x: hidden; overflow-y: auto; opacity: 0; transition: opacity .32s ease; }
.nhn-signature-menu:not([open]) { display: none !important; }
.nhn-signature-menu[open] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 28%); }
.nhn-signature-menu::backdrop { background: #102b24; }
.nhn-signature-menu.is-visible { opacity: 1; }
.nhn-signature-menu.is-closing { opacity: 0; transition-duration: .18s; }
.nhn-signature-menu *, .nhn-signature-menu *::before, .nhn-signature-menu *::after { box-sizing: border-box; }
.nhn-signature-menu a { color: inherit; text-decoration: none; }
.nhn-signature-menu button { font: inherit; cursor: pointer; }
.nhn-signature-menu button:focus-visible, .nhn-signature-menu a:focus-visible { outline: 2px solid #8a672e; outline-offset: 6px; }
.nhn-signature-menu-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
/* The native modal stays viewport-sized while its content scrolls. Keep this
   independent of that scroll, including short landscape screens. */
.nhn-signature-menu-close { position: fixed; z-index: 2; top: max(24px, env(safe-area-inset-top)); right: max(32px, env(safe-area-inset-right)); display: flex; align-items: center; gap: 20px; min-height: 48px; padding: 9px 15px; border: 1px solid #c2a46f70; background: #102b24; color: #f3f0e8; border-radius: 30px; font-size: 12px !important; }
.nhn-signature-menu-close > span:last-child { font-size: 25px; font-weight: 300; line-height: 1; color: #c2a46f; transition: transform .3s; }
.nhn-signature-menu-close:hover > span:last-child { transform: rotate(90deg); }
.nhn-signature-menu-main { display: flex; flex-direction: column; min-width: 0; padding: 43px clamp(30px, 5.5vw, 100px) 35px; }
.nhn-signature-menu-eyebrow { margin: 0 0 40px; color: #6e5730; font-size: 10px; letter-spacing: .16em; }
.nhn-signature-menu-nav { display: flex; flex: 1; flex-direction: column; justify-content: center; padding-block: 16px; }
.nhn-signature-menu-link { display: flex; align-items: center; gap: clamp(12px, 2vw, 38px); min-height: 104px; padding: 18px 0 21px; border-top: 1px solid #102b2429; transform: translateY(30px); opacity: 0; transition: transform .7s var(--menu-ease), opacity .6s ease; }
.nhn-signature-menu-link:last-child { border-bottom: 1px solid #102b2429; }
.is-visible .nhn-signature-menu-link { transform: translateY(0); opacity: 1; }
.is-visible .nhn-signature-menu-link:nth-child(2) { transition-delay: .055s; }
.is-visible .nhn-signature-menu-link:nth-child(3) { transition-delay: .11s; }
.is-visible .nhn-signature-menu-link:nth-child(4) { transition-delay: .165s; }
.nhn-signature-menu-number { flex: none; align-self: center; color: #6e756d; font-size: 11px; }
/* Give the italic ascenders/descenders room inside the rolling mask. Equal
   layer heights keep the hidden word fully outside it; negative margins retain
   the original 1.24em row footprint, including the mobile layout. */
.nhn-signature-menu-roll { position: relative; display: block; min-width: 0; height: 1.6em; margin-block: -.18em; padding-right: .1em; overflow: hidden; font-size: clamp(36px, 5.25vw, 86px); line-height: 1.2; letter-spacing: -.055em; }
.nhn-signature-menu-type { display: flex; align-items: center; height: 100%; white-space: nowrap; font-weight: 500; transition: transform .52s var(--menu-ease); }
.nhn-signature-menu-type--alternate { position: absolute; top: 0; left: 0; font-family: Georgia, 'Times New Roman', serif; font-size: 1.035em; font-style: italic; font-weight: 400; letter-spacing: -.05em; transform: translateY(115%); }
.nhn-signature-menu-link:is(:hover, :focus-visible) .nhn-signature-menu-type:first-child { transform: translateY(-115%); }
.nhn-signature-menu-link:is(:hover, :focus-visible) .nhn-signature-menu-type--alternate { transform: translateY(0); }
.nhn-signature-menu-arrow { margin-left: auto; color: #a88546; font-family: Arial, sans-serif; font-size: clamp(27px, 3.5vw, 55px); font-weight: 300; opacity: .6; transform: rotate(45deg); transition: transform .5s var(--menu-ease), opacity .3s; }
.nhn-signature-menu-link:is(:hover, :focus-visible) .nhn-signature-menu-arrow { opacity: 1; transform: rotate(0deg); }
.nhn-signature-menu-link[aria-current="page"] .nhn-signature-menu-number { color: #9b7637; }
.nhn-signature-menu-main-foot { display: flex; justify-content: space-between; align-items: end; flex-wrap: wrap; gap: 15px; padding-top: 35px; }
.nhn-signature-menu-email { display: inline-flex; align-items: center; min-height: 48px; padding-block: 10px; font-size: clamp(14px, 1.5vw, 23px); letter-spacing: -.03em; text-underline-offset: 5px; }
.nhn-signature-menu-email:hover { text-decoration: underline; }
.nhn-signature-menu-main-foot p { margin: 0 0 13px; font-size: 10px; color: #65766b; }
.nhn-signature-menu-aside { position: relative; display: flex; flex-direction: column; min-width: 0; padding: 115px clamp(25px, 3vw, 56px) 35px; background: #102b24; color: #f3f0e8; overflow: hidden; }
.nhn-signature-menu-brand { width: min(100%, 215px); display: block; line-height: 1; font-size: 26px; }
.nhn-signature-menu-brand img { width: 100%; height: auto; object-fit: contain; }
.nhn-signature-menu-visual { position: relative; display: flex; align-items: center; flex: 1; min-height: 250px; padding-block: 60px; }
.nhn-signature-menu-orbit { position: absolute; inset: 7% -45% 7% -20%; border: 1px solid #c2a46f33; border-radius: 50%; transform: rotate(-25deg); pointer-events: none; }
.nhn-signature-menu-star { position: absolute; top: 18%; right: -2px; color: #c2a46f; font-size: 47px; line-height: 1; transform: rotate(0deg); transition: transform 1.1s var(--menu-ease); }
.nhn-signature-menu[data-active-menu="1"] .nhn-signature-menu-star { transform: rotate(90deg); }
.nhn-signature-menu[data-active-menu="2"] .nhn-signature-menu-star { transform: rotate(180deg); }
.nhn-signature-menu[data-active-menu="3"] .nhn-signature-menu-star { transform: rotate(270deg); }
.nhn-signature-menu-note { position: relative; margin: 0; font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-weight: 400; font-size: clamp(28px, 2.6vw, 44px); line-height: 1.2; letter-spacing: -.045em; white-space: pre-line; }
.nhn-signature-menu-greeting { display: flex; flex-direction: column; gap: 7px; margin-top: 15px; }
.nhn-signature-menu-greeting > span:first-child { color: #c2a46f; font: italic 29px/1.2 Georgia, 'Times New Roman', serif; }
.nhn-signature-menu-greeting > span:last-child { color: #e4e5d9; font-size: 12px; }
.nhn-signature-menu .nhn-signature-menu-booking { display: flex; justify-content: space-between; align-items: center; gap: 14px; min-height: 54px; margin-top: 30px; padding-block: 14px; border-top: 1px solid #c2a46f70; border-bottom: 1px solid #c2a46f70; font-size: 12px; }
.nhn-signature-menu-booking span { color: #c2a46f; font-size: 24px; }
.nhn-signature-menu-aside-foot { margin: 20px 0 0; color: #b6c4b9; font-size: 9px; letter-spacing: .06em; }
.nhn-signature-menu-aside a:focus-visible, .nhn-signature-menu-close:focus-visible { outline-color: #c2a46f !important; }

@media (min-width: 761px) {
  .nhn-signature-header .nhn-brand { margin-right: auto; }
  .nhn-signature-header .gateway-heading { margin: 0 auto; }
}
@media (max-width: 1000px) and (min-width: 761px) {
  .nhn-signature-menu[open] { grid-template-columns: minmax(0, 1fr) 28%; }
  .nhn-signature-menu-main { padding-inline: 35px; }
  .nhn-signature-menu-aside { padding-inline: 25px; }
  .nhn-signature-menu-roll { font-size: 5.4vw; }
}
@media (max-width: 760px) {
  .nhn-signature-header { gap: 10px; padding-inline: 5%; }
  .nhn-signature-header .nhn-brand { width: clamp(120px, 35vw, 180px); margin-right: auto; }
  .nhn-signature-header > .nhn-booking-entry { min-height: 48px; padding: 10px !important; font-size: 10px; }
  .nhn-signature-menu-trigger { gap: 9px; padding-inline: 3px; font-size: 11px; }
  .nhn-signature-menu-trigger .nhn-signature-menu-dot { width: 6px; height: 6px; }
  .nhn-signature-menu[open] { display: flex; flex-direction: column; }
  .nhn-signature-menu-close { top: max(17px, env(safe-area-inset-top)); right: max(20px, env(safe-area-inset-right)); min-height: 48px; padding: 9px 12px; gap: 14px; }
  .nhn-signature-menu-main { flex: none; padding: 33px 6% 22px; }
  .nhn-signature-menu-eyebrow { padding-right: 100px; margin-bottom: 45px; font-size: 8px; line-height: 1.5; }
  .nhn-signature-menu-nav { padding-block: 0; }
  .nhn-signature-menu-link { min-height: 91px; gap: 15px; padding-block: 15px; }
  .nhn-signature-menu-number { font-size: 9px; }
  .nhn-signature-menu-roll { font-size: clamp(30px, 7.8vw, 56px); letter-spacing: -.055em; }
  .nhn-signature-menu-arrow { font-size: 30px; }
  .nhn-signature-menu-main-foot { padding-top: 17px; gap: 0; }
  .nhn-signature-menu-email { font-size: 16px; }
  .nhn-signature-menu-main-foot p { width: 100%; margin: 0; font-size: 10px; }
  .nhn-signature-menu-aside { flex: none; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px 22px; padding: 26px 6% max(28px, env(safe-area-inset-bottom)); }
  .nhn-signature-menu-brand, .nhn-signature-menu-visual, .nhn-signature-menu-aside-foot { display: none; }
  .nhn-signature-menu-greeting { margin: 0; justify-content: center; gap: 5px; }
  .nhn-signature-menu-greeting > span:first-child { font-size: 26px; }
  .nhn-signature-menu-greeting > span:last-child { font-size: 10px; }
  .nhn-signature-menu .nhn-signature-menu-booking { margin: 0; align-self: center; font-size: 10px; }
}
@media (max-width: 680px) {
  .nhn-gateway .gateway-header.nhn-signature-header { grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px 11px; }
  .nhn-gateway .gateway-header.nhn-signature-header .nhn-brand { grid-column: 1; grid-row: 1; width: clamp(118px, 33vw, 180px); }
  .nhn-gateway .gateway-header.nhn-signature-header > .nhn-booking-entry { grid-column: 2; grid-row: 1; }
  .nhn-gateway .gateway-header.nhn-signature-header > .nhn-signature-menu-trigger { grid-column: 3; grid-row: 1; }
  .nhn-gateway .gateway-header.nhn-signature-header > .gateway-heading { grid-column: 1 / -1; grid-row: 2; margin: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .nhn-signature-menu, .nhn-signature-menu *, .nhn-signature-menu-trigger * { transition: none !important; animation: none !important; }
  .nhn-signature-menu[open] { opacity: 1; }
  .nhn-signature-menu-link { opacity: 1; transform: none; }
  .nhn-signature-menu-link:is(:hover, :focus-visible) .nhn-signature-menu-type:first-child { transform: none; }
  .nhn-signature-menu-link .nhn-signature-menu-type--alternate { display: none; }
}
html.motion-paused .nhn-signature-menu, html.motion-paused .nhn-signature-menu *, html.motion-paused .nhn-signature-menu-trigger * { transition: none !important; animation: none !important; }
html.motion-paused .nhn-signature-menu[open], html.motion-paused .nhn-signature-menu-link { opacity: 1; }
html.motion-paused .nhn-signature-menu-link { transform: none; }
html.motion-paused .nhn-signature-menu-link:is(:hover, :focus-visible) .nhn-signature-menu-type:first-child { transform: none; }
html.motion-paused .nhn-signature-menu-link .nhn-signature-menu-type--alternate { display: none; }
