@font-face {
  font-family:"Pretendard Variable";
  src:url("/fonts/PretendardVariable-SEASTAY.woff") format("woff");
  font-style:normal;
  font-weight:100 900;
  font-display:swap
}
[hidden] {
  display:none!important
}
:root {
  --ink:#111a20;
  --paper:#fff;
  --warm-white:#fff;
  --mist:#e9f8fb;
  --sea:#79cad8;
  --sea-soft:#f3fbfd;
  --sea-deep:#0d7085;
  --line:#111a2026;
  --font-sans:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",Arial,sans-serif
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-sans);
  margin:0
}
body.is-scroll-locked {
  overflow:hidden
}
.skip-link {
  z-index:200;
  color:var(--ink);
  background:#fff;
  border:2px solid var(--sea-deep);
  align-items:center;
  min-height:44px;
  padding:8px 14px;
  font-size:13px;
  font-weight:700;
  display:inline-flex;
  position:fixed;
  top:12px;
  left:12px;
  transform:translateY(calc(-100% - 20px));
  transition:transform .16s
}
.skip-link:focus {
  transform:translateY(0)
}
a {
  color:inherit;
  text-decoration:none
}
button,input,select {
  font:inherit
}
button {
  color:inherit
}
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible {
  outline:2px solid currentColor;
  outline-offset:3px
}
img {
  max-width:100%;
  display:block
}
.error-page {
  background:linear-gradient(145deg,var(--sea-soft),#fff 62%);
  place-items:center;
  min-height:100svh;
  padding:32px;
  display:grid
}
.error-panel {
  border:1px solid var(--line);
  background:#ffffffeb;
  width:min(680px,100%);
  padding:clamp(36px,8vw,76px)
}
.error-brand {
  flex-direction:column;
  gap:5px;
  width:max-content;
  margin-bottom:clamp(72px,12vw,120px);
  display:flex
}
.error-brand strong {
  letter-spacing:.19em;
  font-size:25px
}
.error-brand span,.error-panel>p {
  color:var(--sea-deep);
  letter-spacing:.14em;
  font-size:10px;
  font-weight:700
}
.error-panel h1 {
  letter-spacing:-.055em;
  margin:18px 0 42px;
  font-size:clamp(34px,7vw,62px);
  font-weight:550;
  line-height:1.2
}
.error-home {
  background:var(--ink);
  color:#fff;
  justify-content:space-between;
  align-items:center;
  width:min(270px,100%);
  min-height:60px;
  padding:0 20px;
  font-size:13px;
  font-weight:700;
  display:flex
}
.section-shell {
  width:min(100% - 112px,1240px);
  margin-inline:auto
}
.site-header {
  z-index:40;
  color:#fff;
  border-bottom:1px solid #ffffff47;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  width:100%;
  height:116px;
  padding:0 48px;
  display:grid;
  position:absolute;
  top:0;
  left:0
}
.brand {
  flex-direction:column;
  justify-content:center;
  gap:3px;
  width:max-content;
  min-height:44px;
  display:flex
}
.brand strong {
  letter-spacing:.19em;
  font-size:27px;
  font-weight:700;
  line-height:1
}
.brand span {
  letter-spacing:.13em;
  opacity:.88;
  font-size:11px;
  font-weight:500
}
.desktop-nav {
  align-items:center;
  gap:clamp(28px,4.3vw,68px);
  display:flex
}
.desktop-nav a,.header-reserve {
  letter-spacing:.12em;
  font-size:14px;
  font-weight:600;
  position:relative
}
.desktop-nav a {
  align-items:center;
  min-height:44px;
  display:inline-flex
}
.desktop-nav a:after {
  content:"";
  background:#fff;
  height:1px;
  transition:right .24s;
  position:absolute;
  bottom:-7px;
  left:0;
  right:100%
}
.desktop-nav a:hover:after {
  right:0
}
.header-reserve {
  border:1px solid #ffffffb3;
  justify-self:end;
  padding:15px 20px;
  transition:background .2s,color .2s
}
.header-reserve:hover {
  color:var(--ink);
  background:#fff
}
.menu-button {
  background:0 0;
  border:0;
  width:44px;
  height:44px;
  padding:10px 5px;
  display:none
}
.menu-button span {
  background:currentColor;
  width:100%;
  height:1px;
  margin:7px 0;
  transition:transform .22s;
  display:block
}
.mobile-menu {
  z-index:70;
  color:var(--ink);
  visibility:hidden;
  opacity:0;
  background:#fff;
  flex-direction:column;
  justify-content:space-between;
  padding:130px 26px 32px;
  transition:opacity .24s,transform .24s,visibility 0s linear .24s;
  display:flex;
  position:fixed;
  inset:0;
  transform:translateY(-16px)
}
.mobile-menu.is-open {
  visibility:visible;
  opacity:1;
  transition-delay:0s;
  transform:translateY(0)
}
.mobile-menu.is-open~.mobile-reserve,.mobile-menu.is-open~.promo-fab {
  visibility:hidden;
  pointer-events:none
}
.mobile-menu nav {
  display:grid
}
.mobile-menu nav a {
  border-bottom:1px solid var(--line);
  letter-spacing:-.04em;
  justify-content:space-between;
  padding:19px 0;
  font-size:clamp(30px,10vw,46px);
  font-weight:500;
  display:flex
}
.mobile-menu nav a span {
  letter-spacing:.08em;
  opacity:.55;
  font-size:12px
}
.mobile-menu-bottom {
  color:#111a209e;
  justify-content:space-between;
  gap:16px;
  font-size:12px;
  line-height:1.6;
  display:flex
}
.mobile-menu-bottom a {
  color:var(--sea-deep);
  font-size:15px;
  font-weight:700
}
.hero {
  color:#fff;
  height:100svh;
  min-height:860px;
  position:relative;
  overflow:hidden
}
.hero-slides,.hero-slide,.hero-slide img,.hero-overlay {
  width:100%;
  height:100%;
  position:absolute;
  inset:0
}
.hero-slide {
  opacity:0;
  transition:opacity .9s,transform 6.8s;
  transform:scale(1.03)
}
.hero-slide.is-active {
  opacity:1;
  transform:scale(1)
}
.hero-slide img {
  object-fit:cover
}
.hero-slide:nth-child(2) img {
  object-position:center 38%
}
.hero-overlay {
  background:linear-gradient(#072c395c 0%,#0b455405 45%,#072c3947 100%)
}
.hero-copy {
  z-index:2;
  text-align:center;
  width:min(1120px,100% - 64px);
  position:absolute;
  top:47%;
  left:50%;
  transform:translate(-50%,-50%)
}
.hero-copy>p {
  letter-spacing:.26em;
  margin:0 0 24px;
  font-size:13px;
  font-weight:650
}
.hero-copy h1 {
  letter-spacing:.035em;
  text-shadow:0 3px 30px #00000021;
  margin:0;
  font-size:clamp(70px,9.4vw,150px);
  font-weight:650;
  line-height:.82;
  display:grid
}
.hero-title-line {
  min-width:0;
  max-width:100%;
  white-space:nowrap
}
.hero-copy strong {
  letter-spacing:-.02em;
  margin-top:35px;
  font-family:AppleMyungjo,"Noto Serif KR",Batang,"Pretendard Variable",serif;
  font-size:clamp(17px,1.6vw,24px);
  font-weight:400;
  display:block
}
.hero-controls {
  z-index:3;
  letter-spacing:.1em;
  align-items:center;
  gap:12px;
  font-size:11px;
  font-weight:700;
  display:flex;
  position:absolute;
  bottom:142px;
  left:48px
}
.hero-progress {
  background:#ffffff6b;
  width:76px;
  height:1px;
  position:relative;
  overflow:hidden
}
.hero-progress i {
  background:#fff;
  width:33.333%;
  transition:width .3s;
  position:absolute;
  inset:0 auto 0 0
}
.hero-dots {
  gap:0;
  margin-left:8px;
  display:flex
}
.hero-dots button {
  cursor:pointer;
  background:0 0;
  border:0;
  width:44px;
  height:44px;
  padding:0;
  position:relative
}
.hero-dots button:after {
  content:"";
  cursor:pointer;
  background:0 0;
  border:1px solid #fff;
  border-radius:999px;
  width:6px;
  height:6px;
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%)
}
.hero-dots button.is-active:after {
  background:#fff
}
.hero-toggle {
  color:#fff;
  cursor:pointer;
  background:transparent;
  border:1px solid #ffffff8c;
  border-radius:50%;
  place-items:center;
  width:44px;
  height:44px;
  padding:0;
  font-size:12px;
  line-height:1;
  display:grid
}
.hero-toggle:hover,
.hero-toggle:focus-visible {
  background:#ffffff1f;
  border-color:#fff
}
.scroll-cue {
  z-index:3;
  letter-spacing:.2em;
  align-items:center;
  gap:13px;
  font-size:10px;
  font-weight:700;
  min-height:44px;
  display:flex;
  position:absolute;
  bottom:139px;
  right:48px
}
.scroll-cue i {
  background:#fff;
  width:42px;
  height:1px;
  display:block
}
.booking-dock {
  z-index:5;
  min-height:106px;
  color:var(--ink);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  background:#fffffff5;
  grid-template-columns:1fr 1fr .9fr 220px;
  align-items:stretch;
  padding-left:max(48px,50vw - 620px);
  display:grid;
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  box-shadow:0 -10px 40px #113a4514
}
.booking-dock label,.booking-dock-info {
  border-right:1px solid var(--line);
  flex-direction:column;
  justify-content:center;
  gap:8px;
  min-width:0;
  padding:24px 30px;
  display:flex
}
.booking-dock label span,.booking-dock-info span {
  letter-spacing:.18em;
  color:var(--sea-deep);
  font-size:10px;
  font-weight:700
}
.booking-dock-info strong {
  letter-spacing:-.02em;
  font-size:15px;
  font-weight:650
}
.booking-dock input {
  width:100%;
  color:var(--ink);
  --lightningcss-light:initial;
  --lightningcss-dark: ;
  color-scheme:light;
  background:0 0;
  border:0;
  min-height:44px;
  outline:0;
  padding:0;
  font-size:16px;
  font-weight:500
}
.booking-dock button {
  background:var(--sea);
  color:var(--ink);
  letter-spacing:.16em;
  cursor:pointer;
  border:0;
  font-size:14px;
  font-weight:800;
  transition:background .2s
}
.booking-dock button:hover {
  background:#a8e1e9
}
.eyebrow {
  align-items:center;
  gap:20px;
  display:flex
}
.eyebrow span {
  border:1px solid;
  border-radius:50%;
  place-items:center;
  width:33px;
  height:33px;
  font-size:10px;
  font-weight:700;
  display:grid
}
.eyebrow p {
  letter-spacing:.22em;
  margin:0;
  font-size:12px;
  font-weight:750
}
.eyebrow.light {
  color:var(--sea-deep)
}
.intro {
  padding-top:142px;
  padding-bottom:154px
}
.intro-grid {
  grid-template-columns:1.15fr .85fr;
  align-items:start;
  gap:100px;
  margin-top:86px;
  display:grid
}
.intro-grid>h2,.rooms-heading h2,.guide-heading h2,.location-copy h2 {
  letter-spacing:-.055em;
  margin:0;
  font-size:clamp(62px,8vw,124px);
  font-weight:650;
  line-height:.86
}
.intro-copy {
  padding-top:8px
}
.intro-copy h3,.location-copy h3 {
  letter-spacing:-.045em;
  margin:0 0 30px;
  font-family:AppleMyungjo,"Noto Serif KR",Batang,"Pretendard Variable",serif;
  font-size:clamp(25px,3vw,42px);
  font-weight:400;
  line-height:1.38
}
.intro-copy>p {
  color:#171916ad;
  margin:0;
  font-size:16px;
  line-height:1.9
}
.intro-facts {
  border-top:1px solid var(--line);
  margin-top:55px
}
.intro-facts div {
  border-bottom:1px solid var(--line);
  grid-template-columns:110px 1fr;
  gap:20px;
  padding:22px 0;
  display:grid
}
.intro-facts strong {
  letter-spacing:.14em;
  font-size:11px
}
.intro-facts span {
  color:#171916b8;
  font-size:14px
}
.editorial-image {
  height:min(72vw,860px);
  min-height:520px;
  position:relative;
  overflow:hidden
}
.editorial-image>img {
  object-fit:cover;
  width:100%;
  height:100%
}
.editorial-image:after {
  content:"";
  background:linear-gradient(#0000 50%,#03181f7a);
  position:absolute;
  inset:0
}
.editorial-caption {
  z-index:1;
  color:#fff;
  position:absolute;
  bottom:62px;
  left:max(56px,50% - 620px)
}
.editorial-caption p {
  letter-spacing:.22em;
  margin:0 0 12px;
  font-size:11px;
  font-weight:700
}
.editorial-caption strong {
  font-family:AppleMyungjo,"Noto Serif KR",Batang,"Pretendard Variable",serif;
  font-size:clamp(26px,3vw,44px);
  font-weight:400
}
.rooms-section {
  background:var(--sea-soft);
  padding:150px 0 170px;
  overflow:hidden
}
.rooms-heading>div:last-child {
  justify-content:space-between;
  align-items:end;
  gap:40px;
  margin-top:72px;
  display:flex
}
.rooms-heading>div:last-child>p {
  color:#1719169e;
  max-width:430px;
  margin:0 0 10px;
  font-size:15px;
  line-height:1.8
}
.room-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:76px 34px;
  margin-top:46px;
  display:grid
}
.room-grid:has(.room-card:only-child) .room-card {
  max-width:760px
}
.room-card {
  min-width:0
}
.room-details {
  display:none
}
.room-specs {
  border-top:1px solid var(--line);
  grid-template-columns:1fr 1fr;
  margin:0;
  display:grid
}
.room-specs>div {
  border-bottom:1px solid var(--line);
  min-width:0;
  padding:15px 0 16px
}
.room-specs>div:nth-child(odd) {
  border-right:1px solid var(--line);
  padding-right:18px
}
.room-specs>div:nth-child(even) {
  padding-left:18px
}
.room-specs dt,.room-layout>span {
  color:var(--sea-deep);
  letter-spacing:.15em;
  margin-bottom:7px;
  font-size:9px;
  font-weight:750
}
.room-specs dd {
  color:var(--ink);
  margin:0;
  font-size:15px;
  font-weight:650;
  line-height:1.45
}
.room-specs dd small {
  color:#17191685;
  font-size:11px;
  font-weight:500
}
.room-layout {
  border-bottom:1px solid var(--line);
  padding:20px 0
}
.room-layout>span {
  display:block
}
.room-layout p {
  margin:0;
  font-size:14px;
  font-weight:650;
  line-height:1.6
}
.room-layout small {
  color:#17191680;
  margin-top:5px;
  font-size:11px;
  line-height:1.55;
  display:block
}
.room-more {
  border-bottom:1px solid var(--line)
}
.room-more summary {
  cursor:pointer;
  list-style:none;
  justify-content:space-between;
  align-items:center;
  min-height:52px;
  font-size:12px;
  font-weight:650;
  display:flex
}
.room-more summary::-webkit-details-marker {
  display:none
}
.room-more summary span {
  width:13px;
  height:13px;
  position:relative
}
.room-more summary span:before,.room-more summary span:after {
  content:"";
  background:var(--ink);
  width:13px;
  height:1px;
  position:absolute;
  top:6px;
  left:0;
  transition:transform .18s
}
.room-more summary span:after {
  transform:rotate(90deg)
}
.room-more[open] summary span:after {
  transform:rotate(0)
}
.room-more>div {
  padding:0 0 18px
}
.room-more p {
  color:#1719168c;
  margin:0;
  font-size:11px;
  line-height:1.75
}
.room-more small {
  color:var(--sea-deep);
  margin-top:10px;
  font-size:10px;
  line-height:1.55;
  display:block
}
.room-policy {
  color:#17191680;
  margin:15px 0 0;
  font-size:10px;
  line-height:1.65
}
.room-image {
  aspect-ratio:4/3;
  background:var(--mist);
  touch-action:pan-y;
  width:100%;
  position:relative;
  overflow:hidden
}
.room-photo-open {
  cursor:zoom-in;
  background:0 0;
  border:0;
  width:100%;
  height:100%;
  padding:0;
  display:block;
  position:relative
}
.room-photo-open img {
  object-fit:cover;
  width:100%;
  height:100%;
  animation:none;
  transition:none;
  position:absolute;
  inset:0;
  will-change:opacity,transform
}
.room-photo-controls {
  pointer-events:none;
  justify-content:space-between;
  align-items:center;
  display:flex;
  position:absolute;
  bottom:16px;
  left:16px;
  right:16px
}
.room-photo-controls button {
  color:#fff;
  cursor:pointer;
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  pointer-events:auto;
  background:#05242c59;
  border:1px solid #ffffffb8;
  border-radius:50%;
  place-items:center;
  width:44px;
  height:44px;
  padding:0;
  font-size:17px;
  transition:background .18s;
  display:grid
}
.room-photo-controls>button {
  flex:0 0 44px
}
.room-photo-controls button:hover {
  background:#05242cc2
}
.room-photo-controls>div {
  pointer-events:auto;
  gap:2px;
  display:flex
}
.room-photo-controls>div button {
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  background:0 0;
  border:0;
  width:22px;
  height:44px;
  position:relative
}
.room-photo-controls>div button:before {
  content:"";
  position:absolute;
  inset:0 -1px
}
.room-photo-controls>div button:after {
  content:"";
  background:#ffffff80;
  border-radius:50%;
  width:5px;
  height:5px;
  transition:transform .18s,background .18s;
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%)
}
.room-photo-controls>div button:hover {
  background:0 0
}
.room-photo-controls>div button.is-active:after {
  background:#fff;
  transform:translate(-50%,-50%)scale(1.4)
}
.room-body {
  padding-top:26px
}
.room-body>p:first-child {
  color:var(--sea-deep);
  letter-spacing:.18em;
  margin:0 0 8px;
  font-size:10px;
  font-weight:750
}
.room-body h3 {
  letter-spacing:-.045em;
  margin:0;
  font-size:clamp(25px,2.7vw,39px);
  font-weight:550
}
.room-summary {
  color:#111a2099;
  min-height:50px;
  margin:16px 0 0;
  font-size:14px;
  line-height:1.75
}
.room-meta {
  border-top:1px solid var(--line);
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin-top:20px;
  padding-top:17px;
  display:flex
}
.room-meta>span {
  color:#171916a3;
  font-size:13px
}
.guide-section {
  background:var(--mist);
  color:var(--ink);
  padding:150px 0 160px
}
.guide-heading {
  grid-template-columns:1fr .55fr;
  align-items:end;
  gap:80px;
  margin-top:80px;
  display:grid
}
.guide-heading p {
  color:#111a20ad;
  margin:0 0 10px;
  font-family:AppleMyungjo,"Noto Serif KR",Batang,"Pretendard Variable",serif;
  font-size:clamp(20px,2vw,30px);
  line-height:1.55
}
.guide-list {
  border-top:1px solid #0d70853d;
  margin-top:90px
}
.guide-list article {
  border-bottom:1px solid #0d70853d;
  grid-template-columns:60px 1fr 1fr 1.25fr;
  align-items:center;
  gap:20px;
  min-height:112px;
  display:grid
}
.guide-list article>span {
  color:var(--sea-deep);
  font-size:11px;
  font-weight:700
}
.guide-list article>p {
  letter-spacing:.17em;
  font-size:11px;
  font-weight:700
}
.guide-list article>strong {
  font-size:clamp(19px,2vw,27px);
  font-weight:500
}
.guide-list article>small {
  color:#526168;
  font-size:13px
}
.guide-more-link {
  border-bottom:1px solid #0d70853d;
  justify-content:space-between;
  align-items:center;
  width:min(340px,100%);
  min-height:68px;
  margin:42px 0 0 auto;
  font-size:13px;
  font-weight:700;
  display:flex
}
.guide-more-link b {
  color:var(--sea-deep);
  font-size:18px
}
.location-section {
  padding-top:148px;
  padding-bottom:160px
}

/* Detailed stay guide page */
.guide-page {
  background:#fff
}
.guide-page .desktop-nav a[aria-current="page"]:after {
  right:0
}
.stay-guide-hero {
  color:#fff;
  min-height:700px;
  position:relative;
  overflow:hidden
}
.stay-guide-hero>img,.stay-guide-hero-overlay {
  width:100%;
  height:100%;
  position:absolute;
  inset:0
}
.stay-guide-hero>img {
  object-fit:cover;
  object-position:center 48%
}
.stay-guide-hero-overlay {
  background:linear-gradient(90deg,#04141ac9 0%,#04141a66 48%,#04141a1f 100%)
}
.stay-guide-hero-copy {
  padding-top:230px;
  position:relative;
  z-index:1
}
.stay-guide-hero-copy>p,.stay-guide-kicker,.stay-guide-block-heading>p,.stay-guide-contact-grid>div>p:first-child,.stay-guide-location-grid>div>p {
  letter-spacing:.2em;
  font-size:10px;
  font-weight:750
}
.stay-guide-hero-copy h1 {
  letter-spacing:-.055em;
  margin:24px 0 30px;
  font-size:clamp(76px,10vw,146px);
  font-weight:500;
  line-height:.82
}
.stay-guide-hero-copy>strong {
  font-family:AppleMyungjo,"Noto Serif KR",Batang,"Pretendard Variable",serif;
  font-size:clamp(19px,2vw,28px);
  font-weight:400
}
.guide-breadcrumb {
  color:#5f686d;
  letter-spacing:.14em;
  align-items:center;
  gap:12px;
  padding-top:28px;
  font-size:9px;
  display:flex
}
.guide-breadcrumb strong {
  color:var(--sea-deep)
}
.stay-guide-intro {
  grid-template-columns:1.15fr .85fr;
  align-items:end;
  gap:100px;
  padding-top:120px;
  padding-bottom:88px;
  display:grid
}
.stay-guide-kicker,.stay-guide-block-heading>p {
  color:var(--sea-deep);
  margin:0 0 24px
}
.stay-guide-intro h2,.stay-guide-block-heading h2,.stay-guide-contact-grid h2,.stay-guide-location-grid h2 {
  letter-spacing:-.055em;
  margin:0;
  font-size:clamp(42px,5.6vw,78px);
  font-weight:500;
  line-height:1.05
}
.stay-guide-intro>p {
  color:#111a20a3;
  margin:0 0 6px;
  font-size:16px;
  line-height:1.9
}
.stay-guide-jump {
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  grid-template-columns:repeat(4,1fr);
  display:grid
}
.stay-guide-jump a {
  border-right:1px solid var(--line);
  justify-content:space-between;
  align-items:center;
  min-height:86px;
  padding:0 24px;
  display:flex
}
.stay-guide-jump a:last-child {
  border-right:0
}
.stay-guide-jump span {
  color:var(--sea-deep);
  font-size:10px;
  font-weight:750
}
.stay-guide-jump strong {
  font-size:14px;
  font-weight:650
}
.stay-guide-block {
  scroll-margin-top:30px;
  padding-top:150px;
  padding-bottom:160px
}
.stay-guide-block-heading {
  margin-bottom:68px
}
.stay-guide-cards {
  display:grid
}
.stay-guide-cards-three {
  grid-template-columns:repeat(3,1fr)
}
.stay-guide-cards article {
  border-top:1px solid var(--sea-deep);
  border-right:1px solid var(--line);
  min-height:260px;
  padding:34px 36px
}
.stay-guide-cards article:last-child {
  border-right:0
}
.stay-guide-cards article>span,.stay-guide-room-grid article>span {
  color:var(--sea-deep);
  letter-spacing:.18em;
  font-size:9px;
  font-weight:750
}
.stay-guide-cards article>strong {
  letter-spacing:-.035em;
  margin:48px 0 25px;
  font-size:clamp(29px,3vw,44px);
  font-weight:500;
  display:block
}
.stay-guide-cards article>p,.stay-guide-room-grid article>p {
  color:#111a2096;
  margin:0;
  font-size:14px;
  line-height:1.8
}
.stay-guide-block-tint {
  background:var(--mist)
}
.stay-guide-split {
  grid-template-columns:.8fr 1.2fr;
  gap:110px;
  display:grid
}
.stay-guide-capacity {
  align-items:center;
  gap:28px;
  margin-top:68px;
  display:flex
}
.stay-guide-capacity div {
  flex-direction:column;
  display:flex
}
.stay-guide-capacity span {
  color:var(--sea-deep);
  letter-spacing:.15em;
  font-size:8px;
  font-weight:750
}
.stay-guide-capacity strong {
  letter-spacing:-.06em;
  margin:6px 0 0;
  font-size:76px;
  font-weight:500;
  line-height:1
}
.stay-guide-capacity small {
  color:#111a2080;
  margin-top:8px;
  font-size:11px
}
.stay-guide-capacity i {
  color:var(--sea-deep);
  font-size:24px;
  font-style:normal
}
.stay-guide-rules {
  border-top:1px solid #0d70853d
}
.stay-guide-rules article {
  border-bottom:1px solid #0d70853d;
  grid-template-columns:52px 1fr;
  gap:20px;
  padding:31px 0;
  display:grid
}
.stay-guide-rules article>span {
  color:var(--sea-deep);
  font-size:10px;
  font-weight:750
}
.stay-guide-rules h3 {
  margin:0 0 12px;
  font-size:21px;
  font-weight:600
}
.stay-guide-rules p {
  color:#111a2096;
  margin:0;
  font-size:14px;
  line-height:1.8
}
.policy-columns {
  background:var(--line);
  border:1px solid var(--line);
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  margin-top:72px;
  display:grid
}
.policy-panel {
  background:#fff;
  min-width:0;
  padding:50px
}
.policy-label {
  color:var(--sea-deep);
  letter-spacing:.18em;
  margin:0 0 18px;
  font-size:9px;
  font-weight:750
}
.policy-panel h3 {
  letter-spacing:-.04em;
  margin:0;
  font-size:clamp(27px,3vw,40px);
  font-weight:550
}
.policy-panel .stay-guide-capacity {
  margin:42px 0
}
.policy-panel .stay-guide-capacity strong {
  font-size:64px
}
.policy-list {
  border-top:1px solid var(--line);
  margin:38px 0 0;
  padding:0;
  list-style:none
}
.policy-list li {
  color:#111a20a3;
  border-bottom:1px solid var(--line);
  padding:18px 0 18px 20px;
  font-size:14px;
  line-height:1.75;
  position:relative
}
.policy-list li:before {
  content:"";
  background:var(--sea-deep);
  border-radius:50%;
  width:4px;
  height:4px;
  position:absolute;
  top:28px;
  left:2px
}
.policy-account {
  background:var(--sea-soft);
  margin-top:42px;
  padding:30px 32px;
  display:flex;
  flex-direction:column
}
.policy-account span {
  color:var(--sea-deep);
  letter-spacing:.16em;
  font-size:9px;
  font-weight:750
}
.policy-account strong {
  letter-spacing:-.025em;
  margin:14px 0 8px;
  font-size:clamp(20px,2.1vw,29px);
  font-weight:600;
  overflow-wrap:anywhere
}
.policy-account small {
  color:#111a2087;
  font-size:12px
}
.policy-callout {
  color:#fff;
  background:var(--ink);
  grid-template-columns:.75fr 1.25fr;
  align-items:center;
  gap:60px;
  margin-top:1px;
  padding:40px 50px;
  display:grid
}
.policy-callout>div:first-child {
  flex-direction:column;
  gap:10px;
  display:flex
}
.policy-callout span {
  color:var(--sea);
  letter-spacing:.16em;
  font-size:9px;
  font-weight:750
}
.policy-callout strong {
  font-size:18px;
  font-weight:550
}
.policy-callout-links {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  display:grid
}
.policy-callout-links a {
  border-bottom:1px solid #ffffff42;
  min-width:0;
  padding:15px 0;
  font-size:clamp(14px,1.5vw,20px);
  font-weight:550;
  white-space:nowrap
}
.policy-notice-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:70px;
  display:grid
}
.policy-notice-grid article {
  border-top:1px solid #0d70853d;
  grid-template-columns:44px 1fr;
  gap:18px;
  min-width:0;
  padding:30px 0;
  display:grid
}
.policy-notice-grid article>span {
  color:var(--sea-deep);
  font-size:10px;
  font-weight:750
}
.policy-notice-grid h3 {
  margin:0 0 11px;
  font-size:20px;
  font-weight:600
}
.policy-notice-grid p {
  color:#111a2096;
  margin:0;
  font-size:14px;
  line-height:1.8
}
.refund-layout {
  grid-template-columns:.85fr 1.15fr;
  align-items:start;
  gap:90px;
  display:grid
}
.refund-copy>p {
  color:#111a20a3;
  margin:0;
  font-size:16px;
  line-height:1.85
}
.refund-copy .policy-list {
  margin-top:34px
}
.refund-table-wrap {
  min-width:0
}
.refund-table {
  border-collapse:collapse;
  width:100%;
  table-layout:fixed
}
.refund-table caption {
  color:var(--sea-deep);
  letter-spacing:.14em;
  border-top:2px solid var(--sea-deep);
  padding:17px 0;
  font-size:10px;
  font-weight:750;
  text-align:left
}
.refund-table th,.refund-table td {
  border-bottom:1px solid var(--line);
  padding:17px 18px;
  font-size:14px;
  text-align:left
}
.refund-table thead th {
  color:#58666c;
  background:var(--sea-soft);
  font-size:11px;
  font-weight:700
}
.refund-table tbody th {
  font-weight:600
}
.refund-table tbody td:nth-child(2) {
  color:#9f3d2f;
  font-weight:700
}
.refund-table tbody td:last-child {
  color:var(--sea-deep);
  font-weight:700
}
.refund-note {
  color:#5f686d;
  margin:20px 0 0;
  font-size:12px;
  line-height:1.75
}
.stay-guide-room-grid {
  grid-template-columns:1.15fr .85fr .85fr;
  border-top:1px solid var(--line);
  display:grid
}
.stay-guide-room-grid article {
  border-right:1px solid var(--line);
  min-height:330px;
  padding:42px 38px
}
.stay-guide-room-grid article:last-child {
  border-right:0
}
.stay-guide-room-grid h3 {
  letter-spacing:-.035em;
  margin:48px 0 24px;
  font-size:clamp(24px,2.5vw,34px);
  font-weight:550
}
.stay-guide-room-grid article>a {
  border-bottom:1px solid var(--line);
  justify-content:space-between;
  align-items:center;
  width:min(230px,100%);
  min-height:54px;
  margin-top:34px;
  font-size:12px;
  font-weight:700;
  display:flex
}
.stay-guide-room-grid article>a b {
  color:var(--sea-deep)
}
.stay-guide-contact {
  background:var(--ink);
  color:#fff
}
.stay-guide-contact-grid {
  grid-template-columns:.9fr 1.1fr;
  align-items:end;
  gap:110px;
  display:grid
}
.stay-guide-contact-grid>div>p:first-child {
  color:var(--sea);
  margin:0 0 24px
}
.stay-guide-contact-copy {
  color:#ffffffa8;
  max-width:520px;
  margin:34px 0 0;
  font-size:14px;
  line-height:1.8
}
.stay-guide-contact-actions {
  border-top:1px solid #ffffff3d
}
.stay-guide-contact-actions>a {
  border-bottom:1px solid #ffffff3d;
  grid-template-columns:1fr 1.4fr auto;
  align-items:center;
  gap:20px;
  min-height:106px;
  padding:0 8px;
  display:grid
}
.stay-guide-contact-actions span {
  color:#ffffff91;
  letter-spacing:.14em;
  font-size:9px;
  font-weight:700
}
.stay-guide-contact-actions strong {
  font-size:clamp(21px,2.4vw,32px);
  font-weight:500
}
.stay-guide-contact-actions b {
  color:var(--sea);
  font-size:20px
}
.stay-guide-faq {
  padding-top:150px;
  padding-bottom:160px
}
.stay-guide-faq-list {
  border-top:1px solid var(--line)
}
.stay-guide-faq-list details {
  border-bottom:1px solid var(--line)
}
.stay-guide-faq-list summary {
  cursor:pointer;
  list-style:none;
  justify-content:space-between;
  align-items:center;
  min-height:92px;
  gap:30px;
  font-size:18px;
  font-weight:600;
  display:flex
}
.stay-guide-faq-list summary::-webkit-details-marker {
  display:none
}
.stay-guide-faq-list summary span {
  color:var(--sea-deep);
  font-size:25px;
  font-weight:300;
  transition:transform .2s
}
.stay-guide-faq-list details[open] summary span {
  transform:rotate(45deg)
}
.stay-guide-faq-list details>p {
  color:#111a2096;
  max-width:760px;
  margin:-8px 0 32px;
  font-size:14px;
  line-height:1.85
}
.stay-guide-location {
  background:var(--sea-soft);
  padding:110px 0
}
.stay-guide-location-grid {
  grid-template-columns:1fr .75fr;
  align-items:end;
  gap:100px;
  display:grid
}
.stay-guide-location-grid>div>p {
  color:var(--sea-deep);
  margin:0 0 24px
}
.stay-guide-location-grid address {
  border-bottom:1px solid var(--line);
  padding-bottom:22px;
  font-size:21px;
  font-style:normal;
  font-weight:600
}
.stay-guide-location-grid a {
  justify-content:space-between;
  align-items:center;
  min-height:64px;
  font-size:13px;
  font-weight:700;
  display:flex
}
.stay-guide-location-grid a b {
  color:var(--sea-deep)
}
.guide-sticky-reserve {
  display:none
}

@media (max-width:980px) {
  .stay-guide-intro,.stay-guide-split,.stay-guide-contact-grid,.stay-guide-location-grid {
    grid-template-columns:1fr;
    gap:58px
  }
  .stay-guide-jump {
    grid-template-columns:repeat(2,1fr)
  }
  .stay-guide-jump a:nth-child(2) {
    border-right:0
  }
  .stay-guide-jump a:nth-child(-n+2) {
    border-bottom:1px solid var(--line)
  }
  .stay-guide-cards-three,.stay-guide-room-grid {
    grid-template-columns:1fr
  }
  .stay-guide-cards article,.stay-guide-room-grid article {
    border-right:0;
    border-bottom:1px solid var(--line);
    min-height:0
  }
  .stay-guide-cards article:last-child,.stay-guide-room-grid article:last-child {
    border-bottom:0
  }
  .stay-guide-room-grid article {
    padding:38px 0
  }
  .stay-guide-contact-actions {
    max-width:680px
  }
  .policy-columns,.refund-layout {
    grid-template-columns:1fr
  }
  .refund-layout {
    gap:58px
  }
  .policy-callout {
    grid-template-columns:1fr;
    gap:25px
  }
}

@media (max-width:640px) {
  .guide-page {
    padding-bottom:82px
  }
  .stay-guide-hero {
    min-height:610px
  }
  .stay-guide-hero>img {
    object-position:43% center
  }
  .stay-guide-hero-copy {
    padding-top:210px
  }
  .stay-guide-hero-copy h1 {
    margin-top:18px;
    font-size:clamp(55px,18vw,78px)
  }
  .stay-guide-hero-copy>strong {
    max-width:280px;
    font-size:17px;
    line-height:1.6;
    display:block
  }
  .guide-breadcrumb {
    padding-top:20px
  }
  .stay-guide-intro {
    gap:30px;
    padding-top:76px;
    padding-bottom:62px
  }
  .stay-guide-intro h2,.stay-guide-block-heading h2,.stay-guide-contact-grid h2,.stay-guide-location-grid h2 {
    font-size:clamp(37px,12vw,52px)
  }
  .stay-guide-intro>p {
    font-size:14px
  }
  .stay-guide-jump a {
    min-height:72px;
    padding:0 14px
  }
  .stay-guide-jump strong {
    font-size:12px
  }
  .stay-guide-block,.stay-guide-faq {
    padding-top:92px;
    padding-bottom:104px
  }
  .stay-guide-block-heading {
    margin-bottom:45px
  }
  .stay-guide-cards article {
    padding:28px 4px
  }
  .stay-guide-cards article>strong {
    margin:28px 0 15px;
    font-size:31px
  }
  .stay-guide-split {
    gap:42px
  }
  .stay-guide-capacity {
    margin-top:42px
  }
  .stay-guide-capacity strong {
    font-size:61px
  }
  .stay-guide-rules article {
    grid-template-columns:34px 1fr;
    gap:12px;
    padding:25px 0
  }
  .stay-guide-rules h3 {
    font-size:18px
  }
  .policy-columns {
    margin-top:48px
  }
  .policy-panel {
    padding:34px 22px
  }
  .policy-panel .stay-guide-capacity {
    margin:34px 0
  }
  .policy-panel .stay-guide-capacity strong {
    font-size:56px
  }
  .policy-account {
    margin-top:34px;
    padding:25px 22px
  }
  .policy-callout {
    padding:30px 22px
  }
  .policy-callout-links {
    grid-template-columns:1fr
  }
  .policy-callout-links a {
    font-size:17px
  }
  .policy-notice-grid {
    grid-template-columns:1fr
  }
  .policy-notice-grid article {
    grid-template-columns:34px 1fr;
    gap:12px;
    padding:25px 0
  }
  .policy-notice-grid h3 {
    font-size:18px
  }
  .refund-layout {
    gap:46px
  }
  .refund-table th,.refund-table td {
    padding:15px 10px;
    font-size:13px
  }
  .refund-table thead th {
    font-size:10px
  }
  .stay-guide-room-grid h3 {
    margin:30px 0 18px
  }
  .stay-guide-contact-actions>a {
    grid-template-columns:1fr auto;
    min-height:96px
  }
  .stay-guide-contact-actions span {
    grid-column:1/-1;
    margin-bottom:-18px
  }
  .stay-guide-faq-list summary {
    min-height:82px;
    font-size:15px;
    line-height:1.55
  }
  .stay-guide-location {
    padding:84px 0
  }
  .stay-guide-location-grid address {
    font-size:17px
  }
  .guide-more-link {
    margin-top:30px
  }
  .guide-sticky-reserve {
    z-index:55;
    color:var(--ink);
    -webkit-backdrop-filter:blur(12px);
    backdrop-filter:blur(12px);
    background:#fffffff5;
    border:1px solid #79cad8a6;
    justify-content:space-between;
    align-items:center;
    min-height:66px;
    padding:0 21px;
    display:flex;
    position:fixed;
    bottom:12px;
    left:12px;
    right:12px;
    box-shadow:0 10px 40px #113a4529
  }
  .guide-sticky-reserve span {
    color:#111a208c;
    font-size:11px
  }
  .guide-sticky-reserve strong {
    color:var(--sea-deep);
    letter-spacing:.16em;
    font-size:12px
  }
  .mobile-menu.is-open~main~.guide-sticky-reserve {
    visibility:hidden;
    pointer-events:none
  }
}
.location-grid {
  grid-template-columns:1.1fr .75fr;
  gap:100px;
  margin-top:82px;
  display:grid
}
.location-copy h3 {
  margin-top:42px
}
.location-details {
  align-self:end
}
.location-details address {
  border-bottom:1px solid var(--line);
  letter-spacing:-.03em;
  padding:0 0 24px;
  font-size:clamp(19px,2vw,27px);
  font-style:normal;
  font-weight:600
}
.location-details>p {
  color:#171916a8;
  margin:26px 0 48px;
  font-size:15px;
  line-height:1.9
}
.location-actions {
  grid-template-columns:1fr 1fr;
  gap:12px;
  display:grid
}
.location-actions a {
  border:1px solid var(--ink);
  justify-content:space-between;
  align-items:center;
  min-height:65px;
  padding:0 20px;
  font-size:12px;
  font-weight:650;
  display:flex
}
.location-actions a:first-child {
  background:var(--ink);
  color:#fff
}
.location-actions a strong {
  font-size:12px;
  font-weight:700;
  white-space:nowrap
}
.closing-section {
  color:#fff;
  height:min(72vw,820px);
  min-height:600px;
  position:relative;
  overflow:hidden
}
.closing-section>img,.closing-overlay {
  width:100%;
  height:100%;
  position:absolute;
  inset:0
}
.closing-section>img {
  object-fit:cover
}
.closing-overlay {
  background:linear-gradient(90deg,#04141aa3,#04141a1f 68%)
}
.closing-copy {
  z-index:1;
  position:absolute;
  top:50%;
  left:max(56px,50% - 620px);
  transform:translateY(-50%)
}
.closing-copy>p {
  letter-spacing:.22em;
  margin:0 0 28px;
  font-size:11px;
  font-weight:700
}
.closing-copy h2 {
  letter-spacing:-.05em;
  margin:0 0 48px;
  font-family:AppleMyungjo,"Noto Serif KR",Batang,"Pretendard Variable",serif;
  font-size:clamp(36px,5vw,70px);
  font-weight:400;
  line-height:1.32
}
.closing-copy a {
  letter-spacing:.13em;
  border:1px solid #ffffffbf;
  justify-content:space-between;
  align-items:center;
  width:260px;
  min-height:68px;
  padding:0 22px;
  font-size:11px;
  font-weight:700;
  transition:background .2s,color .2s;
  display:flex
}
.closing-copy a:hover {
  color:var(--ink);
  background:#fff
}
.closing-copy a strong {
  font-size:14px
}
footer {
  color:var(--ink);
  border-top:1px solid var(--line);
  background:#fff;
  padding:75px 56px 38px
}
.footer-top {
  justify-content:space-between;
  align-items:flex-start;
  gap:60px;
  display:flex
}
.footer-brand {
  flex-direction:column;
  gap:7px;
  display:flex
}
.footer-brand strong {
  letter-spacing:.16em;
  font-size:38px;
  line-height:1
}
.footer-brand span {
  letter-spacing:.12em;
  color:#5b6469;
  font-size:11px
}
.footer-top nav {
  letter-spacing:.16em;
  gap:42px;
  font-size:11px;
  font-weight:700;
  display:flex
}
.footer-contact {
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  grid-template-columns:minmax(250px,.72fr) minmax(520px,1.28fr);
  gap:70px;
  margin-top:72px;
  padding:52px 0 58px;
  display:grid
}
.footer-contact-heading>p {
  color:var(--sea-deep);
  letter-spacing:.18em;
  margin:2px 0 12px;
  font-size:9px;
  font-weight:750
}
.footer-contact-heading h2 {
  letter-spacing:-.055em;
  margin:0;
  font-size:clamp(42px,5vw,72px);
  font-weight:500;
  line-height:.95
}
.footer-contact-list {
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:42px;
  margin:0;
  display:grid
}
.footer-contact-list>div {
  border-top:1px solid var(--line);
  grid-template-columns:112px minmax(0,1fr);
  gap:18px;
  min-width:0;
  padding:17px 0;
  display:grid
}
.footer-contact-list>div:nth-child(-n+2) {
  border-top:0
}
.footer-contact-list>.contact-wide {
  grid-column:1/-1
}
.footer-contact-list dt {
  color:#5b6469;
  font-size:10px;
  font-weight:650
}
.footer-contact-list dd {
  min-width:0;
  margin:0;
  font-size:12px;
  line-height:1.55
}
.footer-contact-list a {
  align-items:center;
  min-height:44px;
  text-underline-offset:4px;
  text-decoration-thickness:1px;
  display:inline-flex
}
.footer-contact-list a:hover {
  text-decoration:underline
}
.contact-phones {
  flex-wrap:wrap;
  gap:8px 24px;
  display:flex
}
.footer-contact address {
  font-style:normal
}
.footer-bottom {
  border-top:1px solid var(--line);
  color:#5b6469;
  letter-spacing:.06em;
  justify-content:space-between;
  gap:30px;
  margin-top:0;
  padding-top:25px;
  font-size:10px;
  display:flex
}
.footer-top nav a,
.footer-bottom a,
.guide-breadcrumb a,
.room-breadcrumb a {
  align-items:center;
  min-width:44px;
  min-height:44px;
  display:inline-flex
}
.mobile-reserve {
  display:none
}
.promo-fab {
  z-index:58;
  width:148px;
  min-height:66px;
  color:var(--ink);
  text-align:left;
  cursor:pointer;
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  background:#fffffff5;
  border:1px solid #79cad8bf;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  padding:11px 14px;
  display:flex;
  position:fixed;
  bottom:28px;
  right:28px;
  box-shadow:0 14px 38px #0c4e5e2e
}
.promo-fab span {
  color:var(--sea-deep);
  letter-spacing:.16em;
  font-size:8px;
  font-weight:800
}
.promo-fab strong {
  letter-spacing:-.03em;
  font-size:16px
}
.promo-modal {
  z-index:105;
  -webkit-backdrop-filter:blur(9px);
  backdrop-filter:blur(9px);
  background:#041d25ad;
  place-items:center;
  padding:24px;
  display:grid;
  position:fixed;
  inset:0
}
.promo-card {
  width:min(430px,100%);
  max-height:calc(100svh - 48px);
  color:var(--ink);
  text-align:center;
  background:linear-gradient(#fff 0% 72%,#edf8fb 100%);
  padding:42px 38px 0;
  position:relative;
  overflow-y:auto;
  box-shadow:0 28px 80px #00000047
}
.promo-card:before {
  content:"";
  background:var(--sea);
  height:5px;
  position:absolute;
  top:0;
  left:0;
  right:0
}
.promo-close {
  color:#111a208c;
  cursor:pointer;
  background:0 0;
  border:0;
  width:44px;
  height:44px;
  padding:0;
  font-size:25px;
  position:absolute;
  top:14px;
  right:14px
}
.promo-event {
  border:1px solid var(--ink);
  letter-spacing:.16em;
  border-radius:999px;
  width:max-content;
  margin:0 auto 22px;
  padding:7px 14px;
  font-size:9px;
  font-weight:800
}
.promo-card h2 {
  letter-spacing:-.06em;
  margin:0;
  font-size:clamp(35px,7vw,47px);
  line-height:1.18
}
.promo-card h2 em {
  color:var(--sea-deep);
  font-style:normal
}
.promo-copy {
  color:#111a20ad;
  margin:18px 0 0;
  font-family:AppleMyungjo,"Noto Serif KR",Batang,"Pretendard Variable",serif;
  font-size:14px;
  line-height:1.65
}
.promo-ticket {
  text-align:left;
  background:#f8fdfe;
  border:1px dashed #0d708552;
  grid-template-columns:1fr 70px;
  align-items:center;
  min-height:138px;
  margin-top:28px;
  padding:20px 22px;
  display:grid;
  position:relative;
  overflow:hidden
}
.promo-ticket:after {
  content:"";
  border-left:1px dashed #0d708533;
  position:absolute;
  top:0;
  bottom:0;
  right:70px
}
.promo-ticket div {
  flex-direction:column;
  gap:6px;
  display:flex
}
.promo-ticket span {
  color:var(--sea-deep);
  letter-spacing:.13em;
  font-size:8px;
  font-weight:800
}
.promo-ticket strong {
  letter-spacing:-.07em;
  font-size:72px;
  line-height:.86
}
.promo-ticket strong small {
  margin-left:4px;
  font-size:24px
}
.promo-ticket>p {
  z-index:1;
  color:#0d708547;
  letter-spacing:.15em;
  text-align:center;
  white-space:nowrap;
  margin:0;
  font-size:8px;
  font-weight:800;
  line-height:1.6;
  position:relative;
  transform:rotate(90deg)
}
.promo-call {
  background:var(--ink);
  color:#fff;
  border-radius:999px;
  align-items:center;
  gap:9px;
  width:max-content;
  margin:22px auto 0;
  padding:7px 12px 7px 7px;
  font-size:12px;
  display:flex
}
.promo-call span {
  background:var(--sea);
  color:var(--ink);
  border-radius:999px;
  padding:5px 8px;
  font-size:9px;
  font-weight:800
}
.promo-note {
  color:#111a208c;
  background:#edf8fb;
  margin:21px -38px 0;
  padding:17px 20px;
  font-size:10px;
  line-height:1.6
}
.promo-actions {
  grid-template-columns:1fr 1fr;
  margin:0 -38px;
  display:grid
}
.promo-actions button {
  color:#111a20ad;
  cursor:pointer;
  background:#fff;
  border:0;
  border-top:1px solid #111a201f;
  min-height:47px;
  font-size:11px
}
.promo-actions button+button {
  background:var(--ink);
  color:#fff;
  border-left:1px solid #111a201f
}
.mobile-booking-sheet {
  z-index:85;
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  background:#0a0d0cb3;
  align-items:end;
  display:grid;
  position:fixed;
  inset:0
}
.mobile-booking-panel {
  background:var(--warm-white);
  width:100%;
  max-height:94svh;
  padding:28px 24px 30px;
  overflow-y:auto
}
.mobile-booking-heading {
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  display:flex
}
.mobile-booking-heading p {
  color:var(--sea-deep);
  letter-spacing:.17em;
  margin:0 0 7px;
  font-size:9px;
  font-weight:750
}
.mobile-booking-heading h2 {
  letter-spacing:-.05em;
  margin:0;
  font-size:35px;
  font-weight:550
}
.mobile-booking-heading>button {
  border:1px solid var(--line);
  background:0 0;
  width:44px;
  height:44px;
  padding:0;
  font-size:26px;
  line-height:1
}
.mobile-booking-panel form {
  gap:11px;
  margin-top:30px;
  display:grid
}
.mobile-booking-panel label {
  border:1px solid var(--line);
  flex-direction:column;
  justify-content:center;
  gap:7px;
  min-height:72px;
  padding:13px 16px;
  display:flex
}
.mobile-booking-panel label span {
  color:#17191680;
  letter-spacing:.17em;
  font-size:9px;
  font-weight:750
}
.mobile-booking-provider {
  background:var(--sea-soft);
  border:1px solid #79cad8a8;
  flex-direction:column;
  justify-content:center;
  gap:7px;
  min-height:72px;
  padding:13px 16px;
  display:flex
}
.mobile-booking-provider span {
  color:var(--sea-deep);
  letter-spacing:.17em;
  font-size:9px;
  font-weight:750
}
.mobile-booking-provider strong {
  font-size:15px;
  font-weight:650
}
.mobile-booking-panel input {
  width:100%;
  color:var(--ink);
  background:0 0;
  border:0;
  outline:0;
  padding:0;
  font-size:15px
}
.mobile-booking-panel form>button {
  background:var(--ink);
  color:#fff;
  border:0;
  justify-content:space-between;
  align-items:center;
  min-height:67px;
  padding:0 19px;
  font-size:13px;
  font-weight:700;
  display:flex
}
.mobile-booking-panel>small {
  color:#17191680;
  margin-top:15px;
  font-size:10px;
  line-height:1.55;
  display:block
}
.room-modal {
  z-index:90;
  -webkit-backdrop-filter:blur(9px);
  backdrop-filter:blur(9px);
  background:#090b0b;
  place-items:center;
  padding:0;
  display:grid;
  position:fixed;
  inset:0
}
.room-modal-panel {
  background:#090b0b;
  width:100vw;
  height:100svh;
  max-height:none;
  display:block;
  position:relative;
  overflow:hidden
}
.modal-close {
  z-index:2;
  color:#fff;
  cursor:pointer;
  background:transparent;
  border:0;
  border-radius:0;
  box-sizing:border-box;
  box-shadow:none;
  filter:drop-shadow(0 1px 4px #000b);
  place-items:center;
  width:44px;
  height:44px;
  min-width:44px;
  padding:0;
  margin:0;
  line-height:0;
  display:grid;
  position:absolute;
  top:20px;
  right:20px
}
.modal-close:hover {
  color:#fff;
  background:transparent;
  opacity:.72
}
.modal-close:active {
  transform:scale(.97)
}
.modal-gallery {
  background:#090b0b;
  width:100%;
  height:100%;
  min-height:0;
  display:block
}
.modal-main-image {
  touch-action:pan-y;
  user-select:none;
  -webkit-user-select:none;
  cursor:default;
  width:100%;
  height:100%;
  min-height:0;
  position:relative;
  overflow:hidden
}
.modal-main-image>img {
  object-fit:contain;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
  width:100%;
  height:100%;
  opacity:1;
  transform:scale(1);
  transition:none;
  position:absolute;
  inset:0;
  will-change:opacity,transform
}
.modal-main-image>.modal-swipe-image {
  visibility:hidden;
  opacity:0
}
.modal-main-image>.modal-swipe-image.is-ready {
  visibility:visible
}
.modal-photo-nav {
  color:#fff;
  justify-content:space-between;
  align-items:center;
  display:flex;
  position:absolute;
  bottom:24px;
  left:24px;
  right:24px
}
.modal-photo-nav button {
  color:#fff;
  cursor:pointer;
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  background:rgba(7,12,13,.34);
  border:1px solid rgba(255,255,255,.62);
  border-radius:50%;
  width:46px;
  height:46px;
  padding:0;
  transition:background .2s ease,color .2s ease
}
.modal-photo-nav button:hover {
  color:var(--ink);
  background:#fff
}
@media (max-width:980px) {
  .section-shell {
    width:min(100% - 56px,820px)
  }
  .site-header {
    grid-template-columns:1fr auto;
    height:96px;
    padding:0 28px
  }
  .desktop-nav,.header-reserve {
    display:none
  }
  .menu-button {
    z-index:2;
    display:block
  }
  .site-header.menu-is-open {
    z-index:71;
    color:var(--ink);
    border-color:var(--line);
    position:fixed
  }
  .site-header.menu-is-open .menu-button span:first-child {
    transform:translateY(4px)rotate(45deg)
  }
  .site-header.menu-is-open .menu-button span:last-child {
    transform:translateY(-4px)rotate(-45deg)
  }
  .hero {
    min-height:760px
  }
  .hero-copy h1 {
    font-size:clamp(60px,10.9vw,92px)
  }
  .booking-dock {
    grid-template-columns:1fr 1fr 180px;
    padding-left:28px
  }
  .booking-dock-info {
    display:none
  }
  .intro-grid,.location-grid {
    grid-template-columns:1fr;
    gap:72px
  }
  .intro-copy {
    width:min(560px,100%);
    margin-left:auto
  }
  .rooms-heading>div:last-child,.guide-heading {
    flex-direction:column;
    grid-template-columns:1fr;
    align-items:start
  }
  .guide-heading {
    gap:48px
  }
  .room-grid {
    grid-template-columns:1fr;
    gap:64px
  }
  .location-details {
    width:min(590px,100%);
    margin-left:auto
  }
  .footer-contact {
    grid-template-columns:1fr;
    gap:36px
  }
}
@media (max-width:640px) {
  .section-shell {
    width:calc(100% - 40px)
  }
  .site-header {
    height:82px;
    padding:0 20px
  }
  .brand strong {
    font-size:21px
  }
  .brand span {
    font-size:9px
  }
  .hero {
    height:100svh;
    min-height:700px
  }
  .hero-slide:first-child img {
    object-position:42% center
  }
  .hero-slide:nth-child(2) img {
    object-position:52% center
  }
  .hero-slide:nth-child(3) img {
    object-position:42% center
  }
  .hero-copy {
    width:calc(100% - 36px);
    top:45%
  }
  .hero-copy>p {
    letter-spacing:.2em;
    margin-bottom:18px;
    font-size:9px
  }
  .hero-copy h1 {
    letter-spacing:-.025em;
    font-size:clamp(34px,11.5vw,68px);
    line-height:.87
  }
  .hero-copy strong {
    margin-top:25px;
    font-size:17px
  }
  .hero-controls {
    bottom:94px;
    left:20px
  }
  .hero-progress {
    width:54px
  }
  .hero-dots,.scroll-cue,.booking-dock {
    display:none
  }
  .mobile-reserve {
    z-index:55;
    min-height:66px;
    color:var(--ink);
    -webkit-backdrop-filter:blur(12px);
    backdrop-filter:blur(12px);
    text-align:left;
    cursor:pointer;
    background:#fffffff5;
    border:1px solid #79cad8a6;
    justify-content:space-between;
    align-items:center;
    padding:0 21px;
    display:flex;
    position:fixed;
    bottom:12px;
    left:12px;
    right:12px;
    box-shadow:0 10px 40px #113a4529
  }
  .mobile-reserve span {
    color:#111a208c;
    font-size:11px
  }
  .mobile-reserve strong {
    color:var(--sea-deep);
    letter-spacing:.16em;
    font-size:12px
  }
  .intro,.rooms-section,.guide-section,.location-section {
    padding-top:92px;
    padding-bottom:104px
  }
  .eyebrow {
    gap:14px
  }
  .eyebrow span {
    width:29px;
    height:29px;
    font-size:9px
  }
  .eyebrow p {
    font-size:10px
  }
  .intro-grid,.location-grid {
    gap:54px;
    margin-top:54px
  }
  .intro-grid>h2,.rooms-heading h2,.guide-heading h2,.location-copy h2 {
    font-size:clamp(49px,17vw,72px);
    line-height:.89
  }
  .intro-copy h3,.location-copy h3 {
    font-size:26px
  }
  .intro-copy>p {
    font-size:14px
  }
  .intro-facts {
    margin-top:38px
  }
  .intro-facts div {
    grid-template-columns:82px 1fr
  }
  .intro-facts span {
    font-size:12px;
    line-height:1.6
  }
  .editorial-image {
    min-height:620px
  }
  .editorial-image>img {
    object-position:42% center
  }
  .editorial-caption {
    bottom:32px;
    left:20px
  }
  .editorial-caption strong {
    font-size:26px
  }
  .rooms-heading>div:last-child {
    align-items:flex-start;
    margin-top:50px
  }
  .rooms-heading>div:last-child>p {
    margin-top:24px;
    font-size:13px
  }
  .room-grid {
    gap:58px;
    margin-top:32px
  }
  .room-specs dd {
    font-size:14px
  }
  .room-specs dd small {
    line-height:1.5;
    display:block
  }
  .room-image {
    aspect-ratio:4/3.2
  }
  .room-photo-controls {
    bottom:12px;
    left:12px;
    right:12px
  }
  .room-photo-controls button {
    width:44px;
    height:44px
  }
  .room-photo-controls>div {
    gap:0
  }
  .room-photo-controls>div button {
    width:18px
  }
  .room-photo-controls>div button:before {
    inset:0 -3px
  }
  .room-body h3 {
    font-size:27px
  }
  .room-summary {
    min-height:0;
    font-size:13px
  }
  .guide-heading {
    gap:35px;
    margin-top:52px
  }
  .guide-heading p {
    font-size:19px
  }
  .guide-list {
    margin-top:60px
  }
  .guide-list article {
    grid-template-columns:34px 1fr;
    grid-template-areas:"num label""num value""num note";
    gap:5px 12px;
    min-height:128px;
    padding:22px 0
  }
  .guide-list article>span {
    grid-area:num;
    align-self:start;
    padding-top:2px
  }
  .guide-list article>p {
    grid-area:label;
    margin:0
  }
  .guide-list article>strong {
    grid-area:value;
    margin:8px 0
  }
  .guide-list article>small {
    grid-area:note
  }
  .location-copy h3 {
    margin-top:30px
  }
  .location-actions {
    grid-template-columns:1fr
  }
  .closing-section {
    min-height:650px
  }
  .closing-section>img {
    object-position:58% center
  }
  .closing-overlay {
    background:linear-gradient(90deg,#04141aa8,#04141a14)
  }
  .closing-copy {
    left:20px;
    right:20px
  }
  .closing-copy h2 {
    font-size:38px
  }
  .closing-copy a {
    width:100%
  }
  footer {
    padding:64px 20px 108px
  }
  .footer-top,.footer-bottom {
    flex-direction:column
  }
  .footer-brand strong {
    font-size:30px
  }
  .footer-top nav {
    border-top:1px solid var(--line);
    grid-template-columns:1fr 1fr;
    gap:0;
    width:100%;
    margin-top:30px;
    display:grid
  }
  .footer-top nav a {
    border-bottom:1px solid var(--line);
    padding:18px 0
  }
  .footer-contact {
    grid-template-columns:1fr;
    gap:36px;
    margin-top:48px;
    padding:42px 0 38px
  }
  .footer-contact-heading h2 {
    font-size:42px
  }
  .footer-contact-list {
    grid-template-columns:1fr
  }
  .footer-contact-list>div,.footer-contact-list>.contact-wide {
    grid-column:1;
    grid-template-columns:88px minmax(0,1fr);
    gap:12px
  }
  .footer-contact-list>div:nth-child(2) {
    border-top:1px solid var(--line)
  }
  .contact-phones {
    flex-direction:column;
    align-items:flex-start;
    gap:7px
  }
  .footer-bottom {
    gap:12px;
    margin-top:0;
    line-height:1.6
  }
  .promo-fab {
    text-align:center;
    align-items:center;
    width:96px;
    min-height:48px;
    padding:8px 10px;
    bottom:88px;
    right:12px
  }
  .promo-fab span {
    display:none
  }
  .promo-fab strong {
    font-size:12px
  }
  .promo-modal {
    padding:16px
  }
  .promo-card {
    max-height:calc(100svh - 32px);
    padding:34px 24px 0
  }
  .promo-event {
    margin-bottom:17px
  }
  .promo-card h2 {
    font-size:37px
  }
  .promo-copy {
    margin-top:14px;
    font-size:13px
  }
  .promo-ticket {
    min-height:124px;
    margin-top:21px;
    padding:17px 18px
  }
  .promo-ticket strong {
    font-size:64px
  }
  .promo-note {
    margin-inline:-24px;
    padding:14px 16px
  }
  .promo-actions {
    margin-inline:-24px
  }
}
@media (prefers-reduced-motion:reduce) {
  *,:before,:after {
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
    animation-duration:.01ms!important
  }

}


.modal-close-icon {
  position:relative;
  width:22px;
  height:22px;
  flex:0 0 22px;
  display:block;
}
.modal-close-icon::before,
.modal-close-icon::after {
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:22px;
  height:1.5px;
  background:currentColor;
  transform-origin:center;
}
.modal-close-icon::before { transform:translate(-50%,-50%) rotate(45deg); }
.modal-close-icon::after { transform:translate(-50%,-50%) rotate(-45deg); }

/* Gallery and room actions: photo-first overlay with soft crossfades. */
.visually-hidden {
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
  position:absolute;
}

.room-photo-open:hover img { transform:none; }
.room-photo-open img.photo-transition-layer {
  z-index:2;
  opacity:0;
}

.modal-close:focus-visible {
  outline:1px solid currentColor;
  outline-offset:3px;
}
@media (max-width:700px) {
  .room-modal-panel,
  .modal-gallery,
  .modal-main-image {
    width:100%;
    height:100svh;
    min-height:0;
  }
  .modal-close {
    width:44px;
    height:44px;
    min-width:44px;
    background:transparent;
    border:0;
    top:16px;
    right:16px;
  }
  .modal-photo-nav {
    bottom:max(18px,env(safe-area-inset-bottom));
    left:16px;
    right:16px;
  }
  .modal-photo-nav button {
    width:44px;
    height:44px;
  }
}

@media (min-width:981px) and (max-width:1100px) {
  .location-actions {
    grid-template-columns:1fr
  }
}

/* Editorial room cards — calmer overview, one clear action per card */
.rooms-editorial .room-grid {
  margin-top:72px;
  gap:92px 36px
}
.rooms-editorial .room-photo-controls,
.rooms-editorial .room-details {
  display:none!important
}
.rooms-editorial .room-image {
  aspect-ratio:4/3
}
.rooms-editorial .room-photo-open {
  cursor:pointer;
  overflow:hidden
}
.rooms-editorial .room-photo-open img {
  transition:transform .7s cubic-bezier(.22,.72,.22,1)
}
.rooms-editorial .room-card:hover .room-photo-open img {
  transform:scale(1.018)
}
.rooms-editorial .room-body {
  padding-top:30px
}
.rooms-editorial .room-body>p:first-child {
  margin-bottom:10px
}
.rooms-editorial .room-summary {
  min-height:0;
  max-width:520px;
  margin-top:15px
}
.rooms-editorial .room-meta {
  display:flex!important;
  grid-template-columns:none;
  margin-top:28px;
  padding-top:20px
}
.rooms-editorial .room-meta>span {
  display:block!important;
  color:#526168;
  font-size:12px
}
.rooms-editorial .room-card-action {
  appearance:none;
  color:var(--ink);
  letter-spacing:.08em;
  white-space:nowrap;
  text-decoration:none;
  cursor:pointer;
  background:#fff;
  border:1px solid var(--ink);
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:44px;
  margin-left:auto;
  padding:0 15px;
  font-size:14px;
  font-weight:700;
  line-height:1;
  display:inline-flex;
  transition:color .2s,background-color .2s,border-color .2s
}
.rooms-editorial .room-card-action b {
  color:var(--sea-deep);
  font-size:16px;
  font-weight:500;
  transition:transform .2s
}
.rooms-editorial .room-card-action>span,
.rooms-editorial .room-card-action b {
  flex:none
}
.rooms-editorial .room-card-action:hover b {
  color:#fff;
  transform:translateX(4px)
}
.rooms-editorial .room-card-action:hover {
  color:#fff;
  background:var(--ink)
}
.rooms-editorial .room-card-action:focus-visible {
  outline:2px solid var(--sea-deep);
  outline-offset:3px
}

/* Editorial stay guide */
.is-editorial-guide {
  background:#fff
}
.is-editorial-guide .desktop-nav a[aria-current="page"]:after,
.room-detail-page .desktop-nav a[aria-current="page"]:after {
  right:0
}
.guide-editorial-hero {
  color:#fff;
  min-height:520px;
  position:relative;
  overflow:hidden
}
.guide-editorial-hero>img,
.guide-editorial-hero-overlay {
  width:100%;
  height:100%;
  position:absolute;
  inset:0
}
.guide-editorial-hero>img {
  object-fit:cover;
  object-position:center 48%
}
.guide-editorial-hero-overlay {
  background:linear-gradient(90deg,#04141acd 0%,#04141a75 46%,#04141a29 100%)
}
.guide-editorial-hero-copy {
  z-index:1;
  padding-top:230px;
  position:relative
}
.guide-editorial-hero-copy>p,
.guide-editorial-lead>p,
.guide-document-nav>p,
.guide-document-heading p,
.guide-final-cta-grid>div>p,
.room-detail-hero-copy>p,
.room-editorial-intro>div>p,
.room-editorial-gallery-heading p,
.room-editorial-section header>p,
.room-final-cta-grid>div>p {
  color:var(--sea-deep);
  letter-spacing:.2em;
  margin:0;
  font-size:10px;
  font-weight:750
}
.guide-editorial-hero-copy>p,
.room-detail-hero-copy>p {
  color:#fff
}
.guide-editorial-hero-copy h1 {
  letter-spacing:-.045em;
  margin:25px 0 18px;
  font-size:clamp(54px,6vw,86px);
  font-weight:500;
  line-height:1
}
.guide-editorial-hero-copy h1 span,
.room-detail-hero-copy h1 span {
  letter-spacing:.18em;
  margin-bottom:13px;
  font-size:12px;
  font-weight:650;
  line-height:1.2;
  display:block
}
.guide-editorial-hero-copy>strong {
  font-family:AppleMyungjo,"Noto Serif KR",Batang,"Pretendard Variable",serif;
  font-size:clamp(17px,1.8vw,23px);
  font-weight:400
}
.guide-editorial-summary {
  grid-template-columns:1.1fr .9fr;
  align-items:end;
  gap:110px;
  padding-top:108px;
  padding-bottom:82px;
  display:grid
}
.guide-editorial-lead>p {
  margin-bottom:22px
}
.guide-editorial-lead h2,
.guide-document-heading h2,
.guide-final-cta-grid h2,
.room-editorial-intro h2,
.room-editorial-gallery-heading h2,
.room-editorial-section h2,
.room-final-cta-grid h2 {
  letter-spacing:-.05em;
  margin:0;
  font-size:clamp(38px,5vw,68px);
  font-weight:500;
  line-height:1.08
}
.guide-editorial-summary>p,
.room-editorial-intro>p {
  color:#111a20a0;
  margin:0;
  font-size:15px;
  line-height:1.9
}
.guide-quick-facts,
.room-editorial-facts {
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  grid-template-columns:repeat(4,minmax(0,1fr));
  display:grid
}
.guide-quick-facts>div,
.room-editorial-facts>div {
  border-right:1px solid var(--line);
  min-width:0;
  padding:29px 30px
}
.guide-quick-facts>div:first-child,
.room-editorial-facts>div:first-child {
  padding-left:0
}
.guide-quick-facts>div:last-child,
.room-editorial-facts>div:last-child {
  border-right:0
}
.guide-quick-facts dt,
.room-editorial-facts dt {
  color:var(--sea-deep);
  letter-spacing:.18em;
  margin-bottom:13px;
  font-size:9px;
  font-weight:750
}
.guide-quick-facts dd,
.room-editorial-facts dd {
  margin:0;
  font-size:clamp(18px,1.8vw,25px);
  font-weight:550
}
.guide-document {
  grid-template-columns:190px minmax(0,1fr);
  gap:92px;
  padding-top:150px;
  padding-bottom:170px;
  display:grid
}
.guide-document-nav {
  align-self:start;
  flex-direction:column;
  gap:0;
  display:flex;
  position:sticky;
  top:36px
}
.guide-document-nav>p {
  margin-bottom:24px
}
.guide-document-nav a {
  color:#5f686d;
  border-top:1px solid var(--line);
  padding:16px 0;
  font-size:12px;
  font-weight:600;
  transition:color .2s
}
.guide-document-nav a:last-child {
  border-bottom:1px solid var(--line)
}
.guide-document-nav a:hover {
  color:var(--sea-deep)
}
.guide-document-section {
  scroll-margin-top:30px;
  border-top:2px solid var(--ink);
  padding:64px 0 148px
}
.guide-document-section:last-child {
  padding-bottom:0
}
.guide-document-heading {
  margin-bottom:70px;
  display:block
}
.guide-document-heading p,
.room-editorial-section header>p {
  margin-bottom:18px
}
.guide-document-heading h2,
.room-editorial-section h2 {
  font-size:clamp(34px,4.2vw,58px)
}
.guide-document-rows,
.guide-notice-list,
.room-editorial-rows {
  border-top:1px solid var(--line)
}
.guide-document-rows article,
.guide-notice-list article,
.room-editorial-rows article {
  border-bottom:1px solid var(--line);
  grid-template-columns:180px 1fr;
  gap:42px;
  padding:25px 0;
  display:grid
}
.guide-document-rows h3,
.guide-notice-list h3,
.room-editorial-rows h3 {
  margin:0;
  font-size:14px;
  font-weight:650
}
.guide-document-rows p,
.guide-notice-list p,
.room-editorial-rows p {
  color:#626b70;
  margin:0;
  font-size:14px;
  line-height:1.8
}
.guide-account p {
  flex-wrap:wrap;
  align-items:baseline;
  gap:8px 20px;
  display:flex
}
.guide-account strong {
  color:var(--ink);
  font-size:20px;
  font-weight:600
}
.guide-account span {
  color:#5f686d;
  font-size:12px
}
.guide-refund-intro {
  grid-template-columns:.75fr 1.25fr;
  gap:72px;
  margin-bottom:72px;
  display:grid
}
.guide-refund-intro>p {
  color:#111a20a0;
  margin:0;
  font-size:16px;
  line-height:1.85
}
.guide-refund-intro ul {
  border-top:1px solid var(--line);
  margin:0;
  padding:0;
  list-style:none
}
.guide-refund-intro li {
  color:#626b70;
  border-bottom:1px solid var(--line);
  padding:17px 0;
  font-size:13px;
  line-height:1.75
}
.guide-refund-table {
  max-width:760px;
  margin-left:auto
}
.guide-final-cta,
.room-final-cta {
  color:var(--ink);
  background:#eaf5f7;
  border-top:1px solid #79cad866;
  border-bottom:1px solid #79cad866
}
.guide-final-cta-grid,
.room-final-cta-grid {
  grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);
  align-items:stretch;
  gap:clamp(44px,5vw,84px);
  padding-top:76px;
  padding-bottom:80px;
  display:grid
}
.guide-final-cta-grid>div:first-child,
.room-final-cta-grid>div:first-child {
  border-top:1px solid #111a2042;
  border-bottom:1px solid #111a2042;
  flex-direction:column;
  justify-content:center;
  gap:12px;
  min-height:176px;
  padding:26px 0;
  display:flex
}
.guide-final-cta-grid>div>p,
.room-final-cta-grid>div>p {
  color:var(--sea-deep);
  margin-bottom:0
}
.guide-final-cta-grid h2,
.room-final-cta-grid h2 {
  letter-spacing:-.035em;
  font-size:clamp(30px,2.8vw,38px);
  line-height:1.18
}
.guide-final-cta-grid>div>span,
.room-final-cta-grid>div>span {
  color:#536168;
  margin-top:2px;
  font-size:12px;
  line-height:1.7;
  display:block
}
.guide-final-actions,
.room-final-actions {
  border-top:1px solid #111a2042;
  border-bottom:1px solid #111a2042;
  grid-template-columns:repeat(2,minmax(0,1fr));
  display:grid
}
.guide-final-actions a,
.room-final-actions a {
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:auto auto;
  align-content:center;
  align-items:center;
  gap:14px 14px;
  min-height:176px;
  padding:26px 20px;
  display:grid
}
.guide-final-actions a+a,
.room-final-actions a+a {
  border-left:1px solid #111a2042
}
.guide-final-actions span,
.room-final-actions span {
  color:#536168;
  grid-column:1/-1;
  font-size:11px;
  line-height:1.55
}
.guide-final-actions strong,
.room-final-actions strong {
  white-space:nowrap;
  font-size:clamp(22px,2vw,28px);
  font-weight:550;
  line-height:1.2
}
.guide-final-actions b,
.room-final-actions b {
  color:var(--sea-deep);
  align-self:center;
  font-size:20px;
  font-weight:500;
  transition:transform .2s
}
.guide-final-actions a:hover b,
.room-final-actions a:hover b {
  transform:translateX(4px)
}

/* Editorial room detail */
.room-detail-page {
  background:#fff
}
.room-detail-hero {
  color:#fff;
  height:min(82vh,860px);
  min-height:680px;
  position:relative;
  overflow:hidden
}
.room-detail-hero>img,
.room-detail-hero-overlay {
  width:100%;
  height:100%;
  position:absolute;
  inset:0
}
.room-detail-hero>img {
  object-fit:cover;
  object-position:center 53%
}
.room-detail-hero-overlay {
  background:linear-gradient(0deg,#04141ab8 0%,#04141a2e 55%,#04141a45 100%)
}
.room-detail-hero-copy {
  z-index:1;
  padding-top:360px;
  position:relative
}
.room-detail-hero-copy h1 {
  letter-spacing:-.05em;
  margin:25px 0 20px;
  font-size:clamp(58px,7vw,102px);
  font-weight:500;
  line-height:.94
}
.room-detail-hero-copy>strong {
  font-family:AppleMyungjo,"Noto Serif KR",Batang,"Pretendard Variable",serif;
  font-size:clamp(18px,2vw,27px);
  font-weight:400
}
.room-breadcrumb {
  color:#5f686d;
  letter-spacing:.13em;
  align-items:center;
  gap:11px;
  padding-top:28px;
  font-size:9px;
  display:flex
}
.room-breadcrumb strong {
  color:var(--sea-deep)
}
.room-editorial-intro {
  grid-template-columns:1.08fr .92fr;
  align-items:end;
  gap:110px;
  padding-top:116px;
  padding-bottom:84px;
  display:grid
}
.room-editorial-intro>div>p {
  margin-bottom:22px
}
.room-editorial-facts span {
  color:#5f686d;
  margin-top:5px;
  font-size:11px;
  font-weight:500;
  display:block
}
.room-editorial-gallery {
  background:var(--sea-soft);
  margin-top:150px;
  padding:126px 0 142px;
  overflow:hidden
}
.room-editorial-gallery-heading {
  justify-content:space-between;
  align-items:end;
  gap:50px;
  margin-bottom:58px;
  display:flex
}
.room-editorial-gallery-heading p {
  margin-bottom:18px
}
.room-editorial-gallery-heading h2 {
  font-size:clamp(38px,4.8vw,66px)
}
.room-editorial-gallery-side>span {
  color:#526168;
  max-width:330px;
  font-size:12px
}
.room-editorial-gallery-side {
  flex-direction:column;
  align-items:flex-end;
  gap:18px;
  padding-bottom:7px;
  display:flex
}
.room-editorial-gallery-controls {
  gap:8px;
  display:flex
}
.room-editorial-gallery-controls button {
  color:var(--ink);
  background:#fff9;
  border:1px solid #111a2042;
  width:46px;
  height:46px;
  padding:0;
  font-size:18px;
  line-height:1;
  transition:color .2s,background-color .2s,border-color .2s,opacity .2s
}
.room-editorial-gallery-controls button:hover:not(:disabled),
.room-editorial-gallery-controls button:focus-visible {
  color:#fff;
  background:var(--sea-deep);
  border-color:var(--sea-deep)
}
.room-editorial-gallery-controls button:disabled {
  cursor:default;
  opacity:.3
}
.room-editorial-gallery-track {
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  overscroll-behavior-inline:contain;
  scrollbar-width:none;
  cursor:grab;
  gap:28px;
  padding:0 max(56px,calc((100vw - 1240px)/2));
  display:flex;
  overflow-x:auto
}
.room-editorial-gallery-track::-webkit-scrollbar {
  display:none
}
.room-editorial-gallery-track figure {
  scroll-snap-align:start;
  background:var(--mist);
  flex:0 0 min(72vw,980px);
  aspect-ratio:3/2;
  margin:0;
  overflow:hidden
}
.room-editorial-gallery-track img {
  object-fit:cover;
  width:100%;
  height:100%
}
.room-editorial-details {
  padding-top:158px;
  padding-bottom:170px
}
.room-editorial-section {
  border-top:2px solid var(--ink);
  grid-template-columns:.72fr 1.28fr;
  gap:100px;
  padding:64px 0 140px;
  display:grid
}
.room-editorial-section:last-child {
  padding-bottom:0
}
.room-amenities-list {
  border-top:1px solid var(--line);
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin:0;
  padding:0;
  list-style:none;
  display:grid
}
.room-amenities-list li {
  color:#626b70;
  border-bottom:1px solid var(--line);
  padding:19px 0;
  font-size:14px
}
.room-editorial-rows a {
  color:var(--sea-deep);
  align-items:center;
  min-height:44px;
  font-weight:650;
  display:inline-flex
}

@media (max-width:980px) {
  .guide-editorial-summary,
  .room-editorial-intro,
  .guide-final-cta-grid,
  .room-final-cta-grid {
    grid-template-columns:1fr;
    gap:34px
  }
  .guide-document {
    grid-template-columns:1fr;
    gap:70px
  }
  .guide-document-nav {
    z-index:2;
    background:#fff;
    flex-direction:row;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    position:static;
    overflow-x:auto
  }
  .guide-document-nav>p {
    display:none
  }
  .guide-document-nav a,
  .guide-document-nav a:last-child {
    border:0;
    flex:none;
    padding:18px 28px 18px 0
  }
  .guide-refund-intro,
  .room-editorial-section {
    grid-template-columns:1fr;
    gap:54px
  }
  .guide-refund-table {
    max-width:none
  }
  .room-detail-hero-copy {
    padding-top:340px
  }
  .room-editorial-section {
    padding-bottom:112px
  }
}

@media (max-width:640px) {
  .rooms-editorial .room-grid {
    gap:70px;
    margin-top:52px
  }
  .rooms-editorial .room-body {
    padding-top:23px
  }
  .rooms-editorial .room-meta {
    grid-template-columns:none;
    gap:18px;
    align-items:flex-end
  }
  .rooms-editorial .room-meta>span {
    grid-column:auto;
    max-width:145px;
    line-height:1.6
  }
  .rooms-editorial .room-card-action {
    min-height:44px;
    padding:0 12px;
    font-size:13px
  }
  .guide-editorial-hero {
    min-height:440px
  }
  .guide-editorial-hero>img {
    object-position:42% center
  }
  .guide-editorial-hero-copy {
    padding-top:210px
  }
  .guide-editorial-hero-copy h1 {
    margin-top:20px;
    font-size:50px
  }
  .guide-editorial-hero-copy>strong {
    max-width:290px;
    line-height:1.55;
    display:block
  }
  .guide-editorial-summary,
  .room-editorial-intro {
    gap:30px;
    padding-top:76px;
    padding-bottom:60px
  }
  .guide-editorial-lead h2,
  .room-editorial-intro h2 {
    font-size:40px
  }
  .guide-editorial-summary>p,
  .room-editorial-intro>p {
    font-size:14px
  }
  .guide-quick-facts,
  .room-editorial-facts {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .guide-quick-facts>div,
  .room-editorial-facts>div,
  .guide-quick-facts>div:first-child,
  .room-editorial-facts>div:first-child {
    border-right:0;
    border-bottom:1px solid var(--line);
    padding:22px 14px
  }
  .guide-quick-facts>div:nth-child(odd),
  .room-editorial-facts>div:nth-child(odd) {
    border-right:1px solid var(--line);
    padding-left:0
  }
  .guide-quick-facts>div:nth-last-child(-n+2),
  .room-editorial-facts>div:nth-last-child(-n+2) {
    border-bottom:0
  }
  .guide-quick-facts dd,
  .room-editorial-facts dd {
    font-size:17px;
    line-height:1.45
  }
  .guide-document {
    gap:58px;
    padding-top:92px;
    padding-bottom:110px
  }
  .guide-document-nav {
    margin-inline:-2px
  }
  .guide-document-section {
    padding:46px 0 100px
  }
  .guide-document-heading {
    margin-bottom:46px
  }
  .guide-document-heading h2,
  .room-editorial-section h2 {
    font-size:36px
  }
  .guide-document-rows article,
  .guide-notice-list article,
  .room-editorial-rows article {
    grid-template-columns:1fr;
    gap:9px;
    padding:21px 0
  }
  .guide-document-rows h3,
  .guide-notice-list h3,
  .room-editorial-rows h3 {
    font-size:13px
  }
  .guide-document-rows p,
  .guide-notice-list p,
  .room-editorial-rows p {
    font-size:13px
  }
  .guide-account p {
    gap:5px
  }
  .guide-account strong {
    width:100%;
    font-size:17px
  }
  .guide-refund-intro {
    gap:38px;
    margin-bottom:52px
  }
  .guide-refund-intro>p {
    font-size:14px
  }
  .refund-table th,
  .refund-table td {
    padding:14px 9px;
    font-size:12px
  }
  .guide-final-cta-grid,
  .room-final-cta-grid {
    gap:22px;
    padding-top:54px;
    padding-bottom:58px
  }
  .guide-final-cta-grid h2,
  .room-final-cta-grid h2 {
    font-size:30px
  }
  .guide-final-actions a,
  .room-final-actions a {
    grid-template-columns:1fr auto;
    gap:9px 16px;
    min-height:104px;
    padding:20px 0
  }
  .guide-final-actions,
  .room-final-actions {
    grid-template-columns:1fr
  }
  .guide-final-actions a+a,
  .room-final-actions a+a {
    border-top:1px solid #111a2042;
    border-left:0
  }
  .guide-final-cta-grid>div:first-child,
  .room-final-cta-grid>div:first-child {
    gap:10px;
    min-height:142px;
    padding:24px 0
  }
  .guide-final-actions span,
  .room-final-actions span {
    grid-column:1/-1
  }
  .guide-final-actions strong,
  .room-final-actions strong {
    font-size:20px
  }
  .room-detail-hero {
    height:620px;
    min-height:620px
  }
  .room-detail-hero>img {
    object-position:58% center
  }
  .room-detail-hero-copy {
    padding-top:310px
  }
  .room-detail-hero-copy h1 {
    font-size:54px
  }
  .room-detail-hero-copy>strong {
    max-width:300px;
    font-size:17px;
    line-height:1.55;
    display:block
  }
  .room-breadcrumb {
    white-space:nowrap;
    overflow:hidden
  }
  .room-editorial-gallery {
    margin-top:95px;
    padding:84px 0 92px
  }
  .room-editorial-gallery-heading {
    align-items:start;
    flex-direction:column;
    gap:18px;
    margin-bottom:36px
  }
  .room-editorial-gallery-side {
    width:100%;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding-bottom:0
  }
  .room-editorial-gallery-side>span {
    max-width:210px;
    line-height:1.65
  }
  .room-editorial-gallery-controls button {
    width:44px;
    height:44px
  }
  .room-editorial-gallery-heading h2 {
    font-size:38px
  }
  .room-editorial-gallery-track {
    gap:14px;
    padding:0 22px
  }
  .room-editorial-gallery-track figure {
    flex-basis:86vw
  }
  .room-editorial-details {
    padding-top:102px;
    padding-bottom:112px
  }
  .room-editorial-section {
    gap:46px;
    padding:44px 0 96px
  }
  .room-amenities-list {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .room-amenities-list li {
    padding:16px 0;
    font-size:13px
  }
}
