:root{
  --f-display: "Cormorant Garamond", "Times New Roman", serif;
  --f-meta:    "Cinzel", "Times New Roman", serif;
  --f-body:    "Inter", "Helvetica Neue", system-ui, sans-serif;
  --ink-0:   oklch(13% 0.008 70);   
  --ink-1:   oklch(16% 0.010 70);   
  --ink-2:   oklch(20% 0.011 70);   
  --ink-3:   oklch(28% 0.012 70);   
  --paper:   oklch(94% 0.015 80);   
  --paper-2: oklch(82% 0.018 78);   
  --paper-3: oklch(62% 0.018 78);   
  --rule:    oklch(94% 0.015 80 / 0.10);
  --rule-2:  oklch(94% 0.015 80 / 0.18);
  --accent-h: 78;
  --accent-c: 0.11;
  --accent:   oklch(72% var(--accent-c) var(--accent-h));
  --accent-2: oklch(86% calc(var(--accent-c) * 0.7) var(--accent-h));
  --accent-bg: oklch(72% var(--accent-c) var(--accent-h) / 0.08);
  --s-1: 4px; --s-2: 8px; --s-3: 16px; --s-4: 24px;
  --s-5: 40px; --s-6: 64px; --s-7: 96px; --s-8: 144px;
  --pad-section: var(--s-7);
  --pad-page-x: clamp(20px, 6vw, 96px);
  --max-w: 1280px;
  --t-fast: 180ms;
  --t-med:  360ms;
  --t-slow: 700ms;
  --ease:   cubic-bezier(.22, .61, .36, 1);
}
html[data-density="compact"]    { --pad-section: 56px; }
html[data-density="comfortable"]{ --pad-section: 96px; }
html[data-density="spacious"]   { --pad-section: 144px; }
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body{
  background: var(--ink-0);
  color: var(--paper);
  font-family: var(--f-body);
  font-weight: 300;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
::selection { background: var(--accent-bg); color: var(--paper); }
img { display: block; max-width: 100%; }
button { font: inherit; cursor: pointer; background: none; border: none; color: inherit; }
a { color: inherit; text-decoration: none; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--ink-0); }
::-webkit-scrollbar-thumb { background: var(--ink-3); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--paper-3); }
.btn{
  display: inline-flex; align-items: center; justify-content: center;
  gap: 10px;
  padding: 14px 22px;
  font-family: var(--f-body);
  font-weight: 400;
  font-size: 13px;
  letter-spacing: 0.04em;
  border: 1px solid transparent;
  transition: background var(--t-fast) var(--ease),
              border-color var(--t-fast) var(--ease),
              color var(--t-fast) var(--ease),
              transform var(--t-fast) var(--ease);
  cursor: pointer;
  white-space: nowrap;
}
.btn-primary{
  background: var(--accent);
  color: var(--ink-0);
  border: 1px solid var(--accent);
}
.btn-primary:hover{
  background: transparent;
  color: var(--accent);
  border-color: var(--accent);
}
.btn-primary:disabled{
  background: var(--ink-2); color: var(--paper-3); cursor: not-allowed;
  border-color: var(--ink-2);
}
.btn-ghost{
  background: transparent;
  color: var(--paper);
  border-color: var(--rule-2);
}
.btn-ghost:hover{ border-color: var(--paper); }
.btn-block{ width: 100%; }
.btn-arrow{ display: inline-block; transition: transform var(--t-fast) var(--ease); }
.btn:hover .btn-arrow{ transform: translateX(3px); }
.ph{
  position: relative;
  width: 100%;
  background: var(--ink-1);
  color: var(--paper-3);
  overflow: hidden;
  border: 1px solid var(--rule);
}
html[data-images="off"] .ph{
  background: var(--ink-0);
  border: 1px dashed var(--rule-2);
}
.ph-svg{
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  color: var(--paper-3);
}
.ph-label{
  position: absolute; left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--paper-3);
  background: var(--ink-0);
  padding: 6px 10px;
  border: 1px solid var(--rule-2);
  white-space: nowrap;
  pointer-events: none;
}
.ph-label-sm{ font-size: 9px; padding: 4px 8px; }
.ph-img{ background: var(--ink-2); border: none; }
.ph-img img{
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  filter: brightness(0.95) saturate(1.02);
}
.hero-slider{
  position: relative;
  min-height: 100vh;
  padding: 120px var(--pad-page-x) 56px;
  overflow: hidden;
  display: flex; align-items: stretch;
}
.hs-slide{
  position: absolute; inset: 0;
  z-index: 0;
  opacity: 0;
  transition: opacity 1.2s var(--ease);
  pointer-events: none;
}
.hs-slide.is-active{ opacity: 1; }
.hs-bg{ position: absolute; inset: 0; }
.hs-bg img{
  width: 100%; height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 9s var(--ease);
}
.hs-slide.is-active .hs-bg img{ transform: scale(1); }
.hs-veil{
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 45%, oklch(13% 0.008 70 / 0.35) 0%, oklch(13% 0.008 70 / 0.85) 100%),
    linear-gradient(180deg, oklch(13% 0.008 70 / 0.55) 0%, transparent 30%, transparent 70%, oklch(13% 0.008 70 / 0.9) 100%);
}
.hs-watermark{
  position: absolute;
  right: clamp(-40px, -2vw, 0px);
  bottom: clamp(40px, 8vw, 120px);
  font-family: var(--f-display);
  font-weight: 300;
  font-size: clamp(280px, 42vw, 580px);
  line-height: 1;
  color: var(--accent);
  opacity: 0.08;
  z-index: 2;
  pointer-events: none;
  user-select: none;
}
html[data-watermark="off"] .hs-watermark{ display: none; }
.hs-grid{
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: var(--max-w);
  margin: 0 auto;
  display: grid;
  grid-template-rows: auto 1fr auto;
  grid-template-columns: 1fr 1fr;
  gap: 24px 64px;
}
.hs-meta{
  grid-row: 1;
  display: flex; align-items: center; gap: 14px;
  font-family: var(--f-body);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--paper-2);
  padding-top: 8px;
}
.hs-meta-left{ grid-column: 1; justify-self: start; }
.hs-meta-right{ grid-column: 2; justify-self: end; }
.hs-center{
  grid-row: 2;
  grid-column: 1 / -1;
  align-self: center;
  text-align: center;
  max-width: 900px;
  justify-self: center;
  position: relative;
  width: 100%;
}
.hs-content{
  position: absolute; inset: 0;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.9s var(--ease), transform 0.9s var(--ease);
  pointer-events: none;
}
.hs-content.is-active{
  position: relative;
  opacity: 1;
  transform: translateY(0);
  pointer-events: all;
}
.hs-content:not(.is-active){
  visibility: hidden;
}
.hs-foot{
  grid-row: 3;
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 32px;
  padding-top: 24px;
  border-top: 1px solid var(--rule-2);
}
.hs-dots{ display: flex; gap: 10px; }
.hs-dot{
  width: 32px; height: 2px;
  background: var(--rule-2);
  border: none;
  cursor: pointer;
  transition: background var(--t-med) var(--ease), width var(--t-med) var(--ease);
  padding: 0;
}
.hs-dot.is-active{ background: var(--accent); width: 48px; }
.hs-counter{
  font-family: var(--f-display);
  font-size: 16px;
  color: var(--paper-2);
  display: flex; gap: 8px; align-items: baseline;
  justify-self: center;
}
.hs-cur{ color: var(--accent); }
.hs-sep{ color: var(--paper-3); font-style: italic; }
.hs-tot{ color: var(--paper-3); font-size: 13px; }
.hs-arrows{ display: flex; gap: 8px; justify-self: end; }
.hs-arrow{
  width: 40px; height: 40px;
  border: 1px solid var(--rule-2);
  color: var(--paper);
  font-size: 16px;
  background: oklch(13% 0.008 70 / 0.4);
  backdrop-filter: blur(6px);
  transition: background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);
}
.hs-arrow:hover{ background: var(--accent-bg); border-color: var(--accent); }
@media (max-width: 800px){
  .hs-meta-left, .hs-meta-right{ display: none; }
  .hs-foot{ grid-template-columns: 1fr; gap: 14px; justify-items: center; }
  .hs-arrows{ justify-self: center; }
  .hs-counter{ justify-self: center; }
}
.omega-mark{
  font-family: var(--f-display);
  font-weight: 400;
  display: inline-block;
  line-height: 1;
}
.nav{
  position: fixed; top: 0; left: 0; right: 0;
  z-index: 50;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 24px var(--pad-page-x);
  background: transparent;
  transition: background var(--t-med) var(--ease),
              padding var(--t-med) var(--ease),
              border-color var(--t-med) var(--ease);
  border-bottom: 1px solid transparent;
}
.nav.is-scrolled{
  background: oklch(13% 0.008 70 / 0.86);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  padding-top: 14px;
  padding-bottom: 14px;
  border-bottom-color: var(--rule);
}
.nav-brand{
  display: inline-flex; align-items: baseline; gap: 10px;
  cursor: pointer;
  justify-self: start;
}
.nav-brand-mark{
  font-family: var(--f-display);
  font-size: 22px;
  font-weight: 400;
  color: var(--accent);
  line-height: 1;
}
.nav-brand-name{
  font-family: var(--f-display);
  font-size: 16px;
  font-style: italic;
  letter-spacing: 0.02em;
  color: var(--paper);
}
.nav-links{
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  gap: 32px;
  justify-self: center;
}
.nav-link{
  font-family: var(--f-body);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.06em;
  color: var(--paper-2);
  padding: 6px 2px;
  position: relative;
  transition: color var(--t-fast) var(--ease);
}
.nav-link::after{
  content: ""; position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--t-med) var(--ease);
}
.nav-link:hover{ color: var(--paper); }
.nav-link:hover::after,
.nav-link.is-active::after{ transform: scaleX(1); }
.nav-link.is-active{ color: var(--paper); }
.nav-right{
  display: flex; align-items: center; gap: 12px;
  justify-self: end;
}
.nav-lang{
  font-family: var(--f-body);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--paper-3);
  padding: 8px 12px;
  border: 1px solid var(--rule);
  transition: color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);
}
.nav-lang:hover{ color: var(--paper); border-color: var(--rule-2); }
a.nav-cta, a.room-cta, a.btn{ text-decoration: none; cursor: pointer; display: inline-flex; align-items: center; }
a.nav-link{ text-decoration: none; }
a.nav-brand{ text-decoration: none; color: inherit; }
.nav-cta{
  font-family: var(--f-body);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--ink-0);
  background: var(--accent);
  border: 1px solid var(--accent);
  padding: 10px 20px;
  transition: background var(--t-fast) var(--ease),
              color var(--t-fast) var(--ease),
              border-color var(--t-fast) var(--ease);
}
.nav-cta:hover{
  background: transparent;
  color: var(--accent);
  border-color: var(--accent);
}
.hero{
  position: relative;
  min-height: 100vh;
  padding: 120px var(--pad-page-x) 56px;
  overflow: hidden;
  display: flex; align-items: stretch;
}
.hero-bg{
  position: absolute; inset: 0;
  z-index: 0;
}
.hero-bg .ph{
  width: 100%; height: 100%;
  border: none;
  background: linear-gradient(
    135deg,
    oklch(14% 0.012 70) 0%,
    oklch(18% 0.014 70) 35%,
    oklch(15% 0.010 60) 70%,
    oklch(12% 0.008 70) 100%
  );
}
.hero-bg .ph-svg{ opacity: 0.4; }
.hero-bg .ph-label{ display: none; }
.hero-veil{
  position: absolute; inset: 0;
  z-index: 1;
  background:
    radial-gradient(
      ellipse 90% 60% at 50% 38%,
      transparent 0%,
      oklch(13% 0.008 70 / 0.4) 60%,
      oklch(13% 0.008 70 / 0.85) 100%
    ),
    linear-gradient(
      180deg,
      oklch(13% 0.008 70 / 0.5) 0%,
      transparent 25%,
      transparent 75%,
      oklch(13% 0.008 70 / 0.85) 100%
    );
}
.hero-grid{
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--max-w);
  margin: 0 auto;
  display: grid;
  grid-template-rows: auto 1fr auto;
  grid-template-columns: 1fr 1fr;
  gap: 24px 64px;
}
.hero-meta{
  grid-row: 1;
  display: flex; align-items: center; gap: 14px;
  font-family: var(--f-body);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--paper-3);
  padding-top: 8px;
}
.hero-meta-left{ grid-column: 1; justify-self: start; }
.hero-meta-right{ grid-column: 2; justify-self: end; }
.meta-line{
  width: 32px; height: 1px;
  background: var(--accent);
  opacity: 0.7;
}
.hero-center{
  grid-row: 2;
  grid-column: 1 / -1;
  align-self: center;
  text-align: center;
  max-width: 900px;
  justify-self: center;
  animation: heroIn var(--t-slow) var(--ease) both;
}
@keyframes heroIn {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
.hero-eyebrow{
  font-family: var(--f-meta);
  font-size: 11px;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 32px;
}
.hero-title{
  font-family: var(--f-display);
  font-weight: 300;
  font-size: clamp(48px, 8vw, 104px);
  line-height: 1.04;
  letter-spacing: -0.012em;
  margin: 0 0 28px;
  color: var(--paper);
  text-wrap: balance;
}
.hero-title em{
  font-style: italic;
  color: var(--accent-2);
  font-weight: 400;
}
.hero-sub{
  font-family: var(--f-display);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(15px, 1.4vw, 18px);
  line-height: 1.7;
  color: var(--paper-2);
  max-width: 640px;
  margin: 0 auto 36px;
}
.hero-cta{
  display: inline-flex; gap: 14px; flex-wrap: wrap;
  justify-content: center;
}
html[data-hero-variant="editorial"] .hero-center{
  text-align: left;
  justify-self: start;
  margin-left: 0;
}
html[data-hero-variant="editorial"] .hero-sub,
html[data-hero-variant="editorial"] .hero-cta{ margin-left: 0; }
html[data-hero-variant="editorial"] .hero-cta{ justify-content: flex-start; }
.hero-omega{
  position: absolute;
  right: clamp(-40px, -2vw, 0px);
  bottom: clamp(40px, 8vw, 120px);
  font-family: var(--f-display);
  font-weight: 300;
  font-size: clamp(280px, 42vw, 580px);
  line-height: 1;
  color: var(--accent);
  opacity: 0.07;
  z-index: 1;
  pointer-events: none;
  user-select: none;
}
html[data-watermark="off"] .hero-omega{ display: none; }
.hero-foot{
  grid-row: 3;
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  padding-top: 32px;
  border-top: 1px solid var(--rule);
}
.hero-foot-col{
  display: flex; flex-direction: column;
  gap: 6px;
}
.hf-key{
  font-family: var(--f-body);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--paper-3);
}
.hf-val{
  font-family: var(--f-display);
  font-size: 22px;
  font-weight: 300;
  color: var(--paper);
}
.hf-val span{
  font-size: 13px;
  font-style: italic;
  color: var(--paper-3);
}
.hf-scroll{ position: relative; align-items: flex-end; text-align: right; }
.hf-scroll-line{
  width: 1px; height: 28px;
  background: linear-gradient(var(--accent), transparent);
  margin-bottom: 8px;
  animation: scrollPulse 2.4s ease-in-out infinite;
}
@keyframes scrollPulse{
  0%, 100% { opacity: 0.4; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.15); }
}
.section-head{
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 32px;
  margin-bottom: var(--s-6);
  max-width: var(--max-w);
  margin-left: auto;
  margin-right: auto;
  padding: 0 var(--pad-page-x);
}
.sh-eyebrow{
  font-family: var(--f-meta);
  font-size: 11px;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 16px;
}
.sh-title{
  font-family: var(--f-display);
  font-weight: 300;
  font-size: clamp(32px, 4.4vw, 56px);
  line-height: 1.1;
  letter-spacing: -0.01em;
  margin: 0;
  text-wrap: balance;
  max-width: 18ch;
}
.sh-title em{ font-style: italic; color: var(--accent-2); font-weight: 400; }
.link-arrow{
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--f-body);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--paper);
  padding-bottom: 6px;
  border-bottom: 1px solid var(--rule-2);
  transition: border-color var(--t-fast) var(--ease), gap var(--t-fast) var(--ease);
}
.link-arrow span{ color: var(--accent); }
.link-arrow:hover{ border-bottom-color: var(--accent); gap: 14px; }
.link-arrow-static{ color: var(--paper-3); border-bottom: none; cursor: default; font-style: italic; font-family: var(--f-display); font-size: 16px; letter-spacing: 0; text-transform: none; }
.link-arrow-static:hover{ gap: 10px; }
.strip{
  padding: var(--pad-section) var(--pad-page-x);
  text-align: center;
}
.strip-inner{ max-width: 880px; margin: 0 auto; }
.strip-eyebrow{
  font-family: var(--f-meta);
  font-size: 11px;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 32px;
}
.strip-quote{
  font-family: var(--f-display);
  font-weight: 300;
  font-style: italic;
  font-size: clamp(22px, 3vw, 34px);
  line-height: 1.45;
  color: var(--paper);
  margin: 0 0 40px;
  text-wrap: balance;
}
.strip-sign{
  display: inline-flex; align-items: center; gap: 16px;
}
.strip-sign-rule{
  width: 48px; height: 1px;
  background: var(--rule-2);
}
.strip-sign-name{
  font-family: var(--f-meta);
  font-size: 11px;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: var(--paper-3);
}
.rooms-preview{
  padding: var(--pad-section) 0;
  background: var(--ink-1);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.rooms-track{
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--pad-page-x);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
@media (max-width: 1100px){ .rooms-track{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px){ .rooms-track{ grid-template-columns: 1fr; } }
.room-card{
  background: var(--ink-2);
  border: 1px solid var(--rule);
  display: flex; flex-direction: column;
  transition: border-color var(--t-med) var(--ease),
              transform var(--t-med) var(--ease);
}
.room-card:hover{
  border-color: var(--rule-2);
  transform: translateY(-4px);
}
.room-card.is-unavailable{ opacity: 0.55; }
.room-photo{
  position: relative;
  overflow: hidden;
}
.room-photo .ph{ border: none; border-bottom: 1px solid var(--rule); }
.room-num{
  position: absolute; top: 12px; left: 12px;
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--paper);
  background: oklch(13% 0.008 70 / 0.7);
  padding: 5px 9px;
  backdrop-filter: blur(6px);
}
.room-status{
  position: absolute; top: 12px; right: 12px;
  font-family: var(--f-body);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--paper);
  background: oklch(35% 0.08 25 / 0.85);
  padding: 5px 9px;
}
.room-body{
  padding: 22px 22px 24px;
  display: flex; flex-direction: column;
  flex: 1;
}
.room-meta{
  display: inline-flex; gap: 8px; align-items: center;
  font-family: var(--f-body);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 10px;
}
.room-dot{ color: var(--paper-3); }
.room-cap{ color: var(--paper-3); letter-spacing: 0.08em; text-transform: none; font-size: 12px; }
.room-name{
  font-family: var(--f-display);
  font-weight: 300;
  font-size: 26px;
  line-height: 1.15;
  margin: 0 0 8px;
  color: var(--paper);
}
.room-desc{
  font-family: var(--f-body);
  font-size: 13px;
  line-height: 1.65;
  color: var(--paper-3);
  margin: 0 0 20px;
  flex: 1;
}
.room-foot{
  display: flex; justify-content: space-between; align-items: end;
  gap: 12px;
  padding-top: 16px;
  border-top: 1px solid var(--rule);
}
.room-price{
  display: flex; flex-direction: column;
  line-height: 1;
}
.rp-from{
  font-family: var(--f-body);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--paper-3);
  margin-bottom: 4px;
}
.rp-amount{
  font-family: var(--f-display);
  font-size: 28px;
  font-weight: 400;
  color: var(--paper);
}
.rp-cur{ font-size: 14px; color: var(--paper-2); margin-left: 2px; }
.rp-night{
  font-family: var(--f-display);
  font-style: italic;
  font-size: 13px;
  color: var(--paper-3);
  margin-top: 4px;
}
.room-cta{
  font-family: var(--f-body);
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--accent);
  padding: 8px 0;
  border-bottom: 1px solid var(--accent);
  transition: color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);
}
.room-cta:hover{ color: var(--paper); border-bottom-color: var(--paper); }
.room-cta:disabled{ color: var(--paper-3); border-bottom-color: var(--rule); cursor: not-allowed; }
.exp{
  padding: var(--pad-section) 0;
}
.exp-grid{
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--pad-page-x);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--rule);
  border: 1px solid var(--rule);
}
.exp-grid-page{ grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px){
  .exp-grid, .exp-grid-page{ grid-template-columns: 1fr; }
}
.exp-card{
  background: var(--ink-0);
  padding: 36px 32px;
  display: flex; gap: 24px;
  align-items: flex-start;
  transition: background var(--t-med) var(--ease);
}
.exp-card:hover{ background: var(--ink-1); }
.exp-num{
  font-family: var(--f-display);
  font-size: 36px;
  font-weight: 300;
  color: var(--accent);
  line-height: 1;
  flex-shrink: 0;
  min-width: 48px;
}
.exp-body{ flex: 1; }
.exp-key{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--paper-3);
  margin-bottom: 10px;
}
.exp-title{
  font-family: var(--f-display);
  font-weight: 300;
  font-size: 24px;
  line-height: 1.2;
  margin: 0 0 10px;
  color: var(--paper);
}
.exp-desc{
  font-family: var(--f-body);
  font-size: 14px;
  line-height: 1.65;
  color: var(--paper-2);
  margin: 0;
}
.gallery{
  padding: var(--pad-section) 0 calc(var(--pad-section) * 1.2);
  background: var(--ink-1);
  border-top: 1px solid var(--rule);
}
.gal-grid{
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--pad-page-x);
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  grid-auto-rows: auto;
  gap: 16px;
}
.gal-frame:nth-child(1){ grid-column: 1; grid-row: span 2; }
.gal-frame:nth-child(2){ grid-column: 2 / span 2; }
.gal-frame:nth-child(3){ grid-column: 2; }
.gal-frame:nth-child(4){ grid-column: 3; }
.gal-frame:nth-child(5){ grid-column: 1 / span 2; }
.gal-frame:nth-child(6){ grid-column: 3; }
@media (max-width: 900px){
  .gal-grid{ grid-template-columns: 1fr 1fr; }
  .gal-frame:nth-child(n){ grid-column: auto; grid-row: auto; }
}
@media (max-width: 600px){
  .gal-grid{ grid-template-columns: 1fr; }
}
.gal-frame{
  margin: 0;
  position: relative;
  cursor: pointer;
  display: flex; flex-direction: column;
  gap: 12px;
}
.gal-frame .ph{
  border: 1px solid var(--rule);
  transition: border-color var(--t-med) var(--ease);
}
.gal-frame:hover .ph{ border-color: var(--accent); }
.gal-cap{
  display: flex; align-items: baseline; gap: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--rule);
}
.gal-num{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.3em;
  color: var(--accent);
}
.gal-name{
  font-family: var(--f-display);
  font-size: 16px;
  color: var(--paper);
}
.gal-kind{
  font-family: var(--f-display);
  font-style: italic;
  font-size: 13px;
  color: var(--paper-3);
  margin-left: auto;
}
.page{
  padding: 140px var(--pad-page-x) var(--pad-section);
  max-width: var(--max-w);
  margin: 0 auto;
}
.page-head{
  text-align: center;
  max-width: 720px;
  margin: 0 auto var(--s-7);
}
.page-eyebrow{
  font-family: var(--f-meta);
  font-size: 11px;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 24px;
}
.page-title{
  font-family: var(--f-display);
  font-weight: 300;
  font-size: clamp(40px, 6vw, 80px);
  line-height: 1.05;
  letter-spacing: -0.012em;
  margin: 0 0 24px;
  text-wrap: balance;
}
.page-title em{ font-style: italic; color: var(--accent-2); font-weight: 400; }
.page-sub{
  font-family: var(--f-display);
  font-style: italic;
  font-size: 18px;
  line-height: 1.7;
  color: var(--paper-2);
  margin: 0;
  text-wrap: pretty;
}
.rooms-filter{
  display: flex; gap: 4px;
  justify-content: center;
  margin-bottom: var(--s-6);
}
.rf-btn{
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 20px;
  font-family: var(--f-body);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--paper-3);
  border: 1px solid var(--rule);
  transition: color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);
}
.rf-btn:hover{ color: var(--paper); border-color: var(--rule-2); }
.rf-btn.is-active{
  color: var(--ink-0);
  background: var(--paper);
  border-color: var(--paper);
}
.rf-count{
  font-family: var(--f-display);
  font-size: 11px;
  font-style: italic;
  opacity: 0.7;
}
.rooms-list{ display: flex; flex-direction: column; gap: 32px; }
.rooms-row{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
  padding: 24px 0;
}
.rooms-row.is-flipped .rr-photo{ order: 2; }
@media (max-width: 800px){
  .rooms-row{ grid-template-columns: 1fr; gap: 24px; }
  .rooms-row.is-flipped .rr-photo{ order: 0; }
}
.rr-photo{
  position: relative;
}
.rr-num{
  position: absolute; top: 16px; left: 16px;
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.22em;
  color: var(--paper);
  background: oklch(13% 0.008 70 / 0.75);
  padding: 6px 10px;
  backdrop-filter: blur(6px);
}
.rr-eyebrow{
  font-family: var(--f-meta);
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 16px;
}
.rr-title{
  font-family: var(--f-display);
  font-weight: 300;
  font-size: clamp(28px, 3.4vw, 44px);
  line-height: 1.1;
  margin: 0 0 16px;
  color: var(--paper);
}
.rr-desc{
  font-family: var(--f-display);
  font-style: italic;
  font-size: 17px;
  line-height: 1.65;
  color: var(--paper-2);
  margin: 0 0 24px;
}
.rr-bed{
  display: flex; align-items: center; gap: 12px;
  padding: 12px 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  margin-bottom: 24px;
}
.rr-bed-key{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--paper-3);
}
.rr-bed-val{
  font-family: var(--f-display);
  font-size: 16px;
  color: var(--paper);
}
.rr-features{
  list-style: none; padding: 0; margin: 0 0 28px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 24px;
}
.rr-features li{
  font-family: var(--f-body);
  font-size: 13px;
  color: var(--paper-2);
}
.rr-bullet{ color: var(--accent); margin-right: 6px; }
.rr-foot{
  display: flex; justify-content: space-between; align-items: end;
  gap: 16px; flex-wrap: wrap;
}
.rr-price{ display: flex; flex-direction: column; line-height: 1; }
.rrp-from{
  font-family: var(--f-body);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--paper-3);
  margin-bottom: 6px;
}
.rrp-amount{
  font-family: var(--f-display);
  font-size: 36px;
  font-weight: 400;
  color: var(--paper);
}
.rrp-cur{ font-size: 16px; color: var(--paper-2); margin-left: 4px; }
.rrp-night{
  font-family: var(--f-display);
  font-style: italic;
  font-size: 14px;
  color: var(--paper-3);
  margin-top: 6px;
}
.about-grid{
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 64px;
  margin-bottom: var(--s-7);
}
@media (max-width: 800px){ .about-grid{ grid-template-columns: 1fr; gap: 32px; } }
.about-text > * { margin: 0 0 18px; }
.about-h{
  font-family: var(--f-meta);
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--accent);
  margin-top: 28px;
}
.about-h:first-child{ margin-top: 0; }
.about-text p{
  font-family: var(--f-body);
  font-size: 15px;
  line-height: 1.75;
  color: var(--paper-2);
}
.numbers{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--rule);
  border: 1px solid var(--rule);
}
@media (max-width: 800px){ .numbers{ grid-template-columns: repeat(2, 1fr); } }
.num-card{
  background: var(--ink-1);
  padding: 32px 24px;
  text-align: center;
}
.num-val{
  font-family: var(--f-display);
  font-size: 56px;
  font-weight: 300;
  color: var(--accent-2);
  line-height: 1;
  margin-bottom: 10px;
}
.num-lbl{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--paper-3);
}
.contact-grid{
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 48px;
}
@media (max-width: 800px){ .contact-grid{ grid-template-columns: 1fr; } }
.contact-info{ display: flex; flex-direction: column; gap: 4px; }
.ci-block{
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 24px;
  padding: 20px 0;
  border-bottom: 1px solid var(--rule);
}
.ci-block:first-child{ border-top: 1px solid var(--rule); }
.ci-key{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--accent);
}
.ci-val{
  font-family: var(--f-display);
  font-size: 18px;
  font-weight: 300;
  color: var(--paper);
  line-height: 1.5;
}
.ci-link{
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color .2s, color .2s;
}
.ci-link:hover{
  color: var(--accent);
  border-bottom-color: var(--accent);
}
.contact-map{ position: relative; }
.loc-map{
  position: relative;
  border: 1px solid var(--rule);
  background: #1a1a18;
  overflow: hidden;
  height: 100%;
  min-height: 380px;
  display: flex;
  flex-direction: column;
}
.loc-map-svg{
  display: block;
  width: 100%;
  flex: 1;
  min-height: 320px;
}
.loc-map-actions{
  display: flex; gap: 6px; flex-wrap: wrap;
  padding: 12px;
  border-top: 1px solid var(--rule);
  background: var(--ink-1);
}
.loc-map-btn{
  padding: 8px 12px;
  background: var(--ink-1);
  border: 1px solid var(--rule);
  color: var(--paper);
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  transition: border-color .2s, color .2s;
}
.loc-map-btn:hover{ border-color: var(--accent); color: var(--accent); }
.loc-map-btn-ghost{
  background: transparent;
  color: var(--paper-2);
}
.loc-map-btn-primary{
  background: var(--accent);
  color: #0c0d0e;
  border-color: var(--accent);
  font-weight: 500;
}
.loc-map-btn-primary:hover{
  background: transparent;
  border-color: var(--accent);
  color: var(--accent);
}
.loc-map-coords{
  padding: 14px 16px;
  border-top: 1px solid var(--rule);
  background: var(--ink-1);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.loc-map-coord-row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.loc-map-coord-key{
  font-family: var(--f-meta);
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--paper-2);
  margin-bottom: 4px;
}
.loc-map-coord-val{
  font-family: var(--f-meta);
  font-size: 13px;
  color: var(--paper);
  background: transparent;
  padding: 0;
  letter-spacing: 0.02em;
  display: block;
  word-break: break-word;
}
.loc-map-coord-addr{
  font-size: 12px;
  line-height: 1.4;
}
.loc-copy-btn{
  flex-shrink: 0;
  padding: 6px 10px;
  background: transparent;
  border: 1px solid var(--rule);
  color: var(--paper-2);
  font-family: var(--f-meta);
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  cursor: pointer;
  transition: border-color .2s, color .2s, background .2s;
}
.loc-copy-btn:hover{
  border-color: var(--accent);
  color: var(--accent);
}
.loc-copy-btn.is-copied{
  border-color: var(--accent);
  color: var(--accent);
  background: rgba(189,148,90,0.08);
}
.loc-section{
  margin-top: 96px;
  padding-top: 64px;
  border-top: 1px solid var(--rule);
}
.loc-section-head{ max-width: 720px; margin-bottom: 56px; }
.loc-section-title{
  font-family: var(--f-display);
  font-size: clamp(36px, 5vw, 56px);
  font-weight: 300;
  color: var(--paper);
  line-height: 1.1;
  letter-spacing: -0.015em;
  margin: 12px 0 18px;
}
.loc-section-title em{
  font-style: italic;
  color: var(--accent);
}
.loc-section-lead{
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 1.65;
  color: var(--paper-2);
  margin: 0;
  text-wrap: pretty;
  max-width: 640px;
}
.loc-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  margin-bottom: 64px;
}
@media (max-width: 800px){ .loc-grid{ grid-template-columns: 1fr; gap: 48px; } }
.loc-h2{
  font-family: var(--f-display);
  font-size: 22px;
  font-weight: 400;
  color: var(--paper);
  letter-spacing: -0.01em;
  margin: 0 0 22px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--rule);
}
.loc-landmarks, .loc-routes{
  list-style: none;
  margin: 0; padding: 0;
  display: flex; flex-direction: column;
}
.loc-lm{
  display: grid;
  grid-template-columns: 80px 1fr;
  grid-template-rows: auto auto;
  column-gap: 20px;
  padding: 18px 0;
  border-bottom: 1px solid var(--rule-soft, rgba(255,255,255,.06));
}
.loc-lm:last-child{ border-bottom: none; }
.loc-lm-dist{
  grid-row: 1 / span 2;
  align-self: center;
  font-family: var(--f-display);
  font-size: 18px;
  font-weight: 400;
  color: var(--accent);
  letter-spacing: -0.01em;
}
.loc-lm-name{
  font-family: var(--f-display);
  font-size: 16px;
  color: var(--paper);
}
.loc-lm-note{
  font-family: var(--f-body);
  font-size: 13px;
  color: var(--paper-2);
  margin-top: 2px;
}
.loc-route{
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  column-gap: 20px;
  padding: 18px 0;
  border-bottom: 1px solid var(--rule-soft, rgba(255,255,255,.06));
}
.loc-route:last-child{ border-bottom: none; }
.loc-route-from{
  font-family: var(--f-display);
  font-size: 16px;
  color: var(--paper);
}
.loc-route-dur{
  grid-row: 1;
  grid-column: 2;
  align-self: center;
  font-family: var(--f-meta);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}
.loc-route-note{
  grid-column: 1 / -1;
  font-family: var(--f-body);
  font-size: 13px;
  color: var(--paper-2);
  margin-top: 4px;
}
.loc-shuttle{
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 28px;
  align-items: center;
  padding: 32px 36px;
  background: var(--ink-2);
  border: 1px solid var(--rule);
}
@media (max-width: 600px){
  .loc-shuttle{ grid-template-columns: 1fr; padding: 28px 24px; }
}
.loc-shuttle-mark{
  font-family: var(--f-display);
  font-size: 64px;
  font-weight: 300;
  color: var(--accent);
  line-height: 1;
}
.loc-shuttle-eyebrow{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 6px;
}
.loc-shuttle-title{
  font-family: var(--f-display);
  font-size: 22px;
  font-weight: 400;
  color: var(--paper);
  margin: 0 0 8px;
  letter-spacing: -0.01em;
}
.loc-shuttle-desc{
  font-family: var(--f-body);
  font-size: 14px;
  line-height: 1.6;
  color: var(--paper-2);
  margin: 0;
  text-wrap: pretty;
}
.footer{
  background: var(--ink-1);
  border-top: 1px solid var(--rule);
  padding: var(--s-7) var(--pad-page-x) 32px;
}
.footer-top{
  max-width: var(--max-w);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 2fr;
  gap: 48px;
  align-items: start;
}
@media (max-width: 800px){
  .footer-top{ grid-template-columns: 1fr; gap: 32px; }
}
.footer-omega{
  font-family: var(--f-display);
  font-size: 88px;
  font-weight: 300;
  color: var(--accent);
  line-height: 1;
  margin-bottom: 12px;
  opacity: 0.6;
}
.footer-name{
  font-family: var(--f-display);
  font-size: 22px;
  font-style: italic;
  color: var(--paper);
  margin-bottom: 8px;
}
.footer-tag{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--paper-3);
}
.footer-cols{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.footer-col{ display: flex; flex-direction: column; gap: 12px; }
.fc-h{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 6px;
}
.fc-a{
  font-family: var(--f-body);
  font-size: 13px;
  color: var(--paper-2);
  cursor: pointer;
  transition: color var(--t-fast) var(--ease);
}
.fc-a:hover{ color: var(--paper); }
.footer-rule{
  height: 1px;
  background: var(--rule);
  margin: 48px auto 24px;
  max-width: var(--max-w);
}
.footer-bot{
  max-width: var(--max-w);
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--f-body);
  font-size: 11px;
  color: var(--paper-3);
  letter-spacing: 0.06em;
  flex-wrap: wrap;
  gap: 12px;
}
.footer-bot-mid{ flex: 1; text-align: center; }
.drawer-veil{
  position: fixed; inset: 0;
  z-index: 90;
  background: oklch(13% 0.008 70 / 0.7);
  backdrop-filter: blur(6px);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--t-med) var(--ease);
}
.drawer-veil.is-open{ opacity: 1; pointer-events: all; }
.drawer{
  position: fixed; top: 0; right: 0; bottom: 0;
  width: min(480px, 96vw);
  z-index: 100;
  background: var(--ink-1);
  border-left: 1px solid var(--rule-2);
  display: flex; flex-direction: column;
  transform: translateX(100%);
  transition: transform var(--t-med) var(--ease);
  overflow: hidden;
}
.drawer.is-open{ transform: translateX(0); }
.drawer-head{
  display: flex; justify-content: space-between; align-items: flex-start;
  padding: 28px 32px 20px;
  border-bottom: 1px solid var(--rule);
  flex-shrink: 0;
}
.drawer-eyebrow{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.36em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 6px;
}
.drawer-title{
  font-family: var(--f-display);
  font-size: 24px;
  font-weight: 300;
  color: var(--paper);
}
.drawer-close{
  width: 36px; height: 36px;
  border: 1px solid var(--rule-2);
  font-size: 14px;
  color: var(--paper-2);
  transition: color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);
}
.drawer-close:hover{ color: var(--paper); border-color: var(--paper); }
.drawer-steps{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-bottom: 1px solid var(--rule);
  flex-shrink: 0;
}
.ds{
  padding: 14px 8px;
  text-align: center;
  border-right: 1px solid var(--rule);
  display: flex; flex-direction: column; align-items: center; gap: 4px;
}
.ds:last-child{ border-right: none; }
.ds-num{
  font-family: var(--f-display);
  font-style: italic;
  font-size: 13px;
  color: var(--paper-3);
}
.ds-label{
  font-family: var(--f-body);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--paper-3);
}
.ds.is-active{ background: var(--ink-2); }
.ds.is-active .ds-num{ color: var(--accent); }
.ds.is-active .ds-label{ color: var(--paper); }
.ds.is-done .ds-num{ color: var(--paper-2); }
.ds.is-done .ds-label{ color: var(--paper-2); }
.drawer-body{
  flex: 1;
  overflow-y: auto;
  padding: 24px 32px;
}
.drawer-panel{ display: flex; flex-direction: column; }
.dp-help{
  font-family: var(--f-display);
  font-style: italic;
  font-size: 15px;
  color: var(--paper-3);
  margin: 0 0 20px;
}
.dp-rooms{ display: flex; flex-direction: column; gap: 8px; }
.dp-room{
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px;
  padding: 14px 16px;
  border: 1px solid var(--rule);
  background: var(--ink-2);
  text-align: left;
  transition: border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);
}
.dp-room:hover{ border-color: var(--rule-2); }
.dp-room.is-selected{
  border-color: var(--accent);
  background: var(--accent-bg);
}
.dp-room.is-disabled{ opacity: 0.45; cursor: not-allowed; }
.dp-room-name{
  font-family: var(--f-display);
  font-size: 18px;
  color: var(--paper);
  margin-bottom: 4px;
}
.dp-room-meta{
  font-family: var(--f-body);
  font-size: 12px;
  color: var(--paper-3);
}
.dp-room-r{ text-align: right; flex-shrink: 0; }
.dp-room-price{
  font-family: var(--f-display);
  font-size: 20px;
  color: var(--paper);
}
.dp-room-price span{ font-size: 12px; color: var(--paper-2); margin-left: 2px; }
.dp-room-night{
  font-family: var(--f-display);
  font-style: italic;
  font-size: 11px;
  color: var(--paper-3);
}
.dp-room-tag{
  display: inline-block;
  margin-top: 4px;
  font-family: var(--f-body);
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: oklch(70% 0.13 25);
}
.dp-row{ display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.dp-field{ display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.dp-field span{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--paper-3);
}
.dp-field input,
.dp-field textarea,
.dp-field select{
  background: var(--ink-2);
  border: 1px solid var(--rule);
  color: var(--paper);
  padding: 11px 14px;
  font-family: var(--f-body);
  font-size: 14px;
  transition: border-color var(--t-fast) var(--ease);
  outline: none;
}
.dp-field input:focus,
.dp-field textarea:focus,
.dp-field select:focus{ border-color: var(--accent); }
.dp-room-av{
  margin-top: 8px;
  font-family: var(--f-body);
  font-size: 11px;
  letter-spacing: 0.04em;
  padding: 4px 10px;
  display: inline-block;
  border: 1px solid;
}
.dp-room-av.is-ok{
  color: #5de49a;
  border-color: rgba(93, 228, 154, 0.3);
  background: rgba(93, 228, 154, 0.06);
}
.dp-room-av.is-low{
  color: #e4c47a;
  border-color: rgba(228, 196, 122, 0.4);
  background: rgba(228, 196, 122, 0.08);
}
.dp-room-av.is-full{
  color: #e47a7a;
  border-color: rgba(228, 122, 122, 0.35);
  background: rgba(228, 122, 122, 0.08);
}
.drp{
  margin-top: 8px;
  font-family: var(--f-body);
}
.drp-top{
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}
.drp-chip{
  padding: 12px 14px;
  border: 1px solid var(--rule);
  background: var(--ink-2);
  transition: border-color .2s ease;
}
.drp-chip.is-active{
  border-color: var(--accent);
}
.drp-chip-l{
  font-family: var(--f-body);
  font-size: 9px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--paper-3);
  margin-bottom: 4px;
}
.drp-chip-v{
  font-family: var(--f-display);
  font-size: 18px;
  font-weight: 300;
  color: var(--paper);
  font-variant-numeric: tabular-nums;
}
.drp-chip-arrow{
  color: var(--paper-3);
  font-size: 14px;
}
.drp-head{
  display: grid;
  grid-template-columns: 36px 1fr 36px;
  align-items: center;
  margin-bottom: 14px;
  gap: 10px;
}
.drp-titles{
  display: flex;
  justify-content: space-around;
  gap: 24px;
}
.drp-title{
  font-family: var(--f-display);
  font-size: 17px;
  font-weight: 300;
  font-style: italic;
  color: var(--accent-2);
  text-align: center;
  flex: 1;
}
.drp-nav{
  width: 36px;
  height: 36px;
  background: transparent;
  border: 1px solid var(--rule);
  color: var(--paper-2);
  font-size: 18px;
  cursor: pointer;
  transition: border-color .2s ease, color .2s ease;
  font-family: var(--f-body);
  line-height: 1;
}
.drp-nav:hover{
  border-color: var(--accent);
  color: var(--accent);
}
.drp-grids{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}
.drp-grids.is-mobile{
  grid-template-columns: 1fr;
}
.drp-dow{
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  margin-bottom: 6px;
}
.drp-dow-cell{
  text-align: center;
  font-family: var(--f-body);
  font-size: 9px;
  letter-spacing: 0.18em;
  color: var(--paper-3);
  padding: 6px 0;
  text-transform: uppercase;
}
.drp-cells{
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}
.drp-cell{
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid transparent;
  color: var(--paper);
  font-family: var(--f-body);
  font-size: 13px;
  cursor: pointer;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
  padding: 0;
}
.drp-cell.drp-empty{
  cursor: default;
  pointer-events: none;
}
.drp-cell.is-past{
  color: var(--paper-3);
  opacity: 0.35;
  text-decoration: line-through;
  cursor: not-allowed;
  pointer-events: none;
}
.drp-cell:not(.is-past):not(.is-ci):not(.is-co):hover{
  background: rgba(201,168,76,0.08);
  color: var(--accent-2);
}
.drp-cell.is-in-range{
  background: rgba(201,168,76,0.18);
  color: var(--accent-2);
}
.drp-cell.is-ci,
.drp-cell.is-co{
  background: var(--accent);
  color: var(--ink-0);
  font-weight: 500;
}
.drp-foot{
  margin-top: 18px;
  padding: 12px 14px;
  border: 1px solid var(--rule);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.drp-status{
  font-family: var(--f-body);
  font-size: 12px;
  color: var(--paper-2);
  font-style: italic;
}
.drp-clear{
  background: transparent;
  border: none;
  color: var(--paper-3);
  font-family: var(--f-body);
  font-size: 11px;
  letter-spacing: 0.16em;
  cursor: pointer;
  padding: 4px 8px;
  transition: color .2s ease;
}
.drp-clear:hover{ color: var(--accent); }
@media (max-width: 800px){
  .drp-top{
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .drp-chip-arrow{
    display: none;
  }
  .drp-titles .drp-title{ font-size: 15px; }
  .drp-cell{ font-size: 12px; }
}
.dp-availability{
  margin-top: 16px;
  padding: 12px 16px;
  border: 1px solid var(--rule);
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--f-body);
  font-size: 13px;
  letter-spacing: 0.02em;
  animation: dpAvIn 0.3s ease;
}
@keyframes dpAvIn {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}
.dp-av-icon{
  font-family: var(--f-display);
  font-size: 16px;
  font-weight: 400;
}
.dp-availability.is-checking{
  color: var(--paper-3);
  border-color: var(--rule);
}
.dp-av-dot{
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--paper-3);
  animation: dpAvPulse 1.2s infinite ease-in-out;
}
@keyframes dpAvPulse {
  0%, 100% { opacity: 0.3; }
  50%      { opacity: 1; }
}
.dp-availability.is-ok{
  color: #5de49a;
  background: rgba(93, 228, 154, 0.06);
  border-color: rgba(93, 228, 154, 0.3);
}
.dp-availability.is-mid{
  color: var(--accent-2);
  background: rgba(201, 168, 76, 0.06);
  border-color: rgba(201, 168, 76, 0.3);
}
.dp-availability.is-low{
  color: #e4c47a;
  background: rgba(228, 196, 122, 0.08);
  border-color: rgba(228, 196, 122, 0.4);
  font-weight: 500;
}
.dp-availability.is-full{
  color: #e47a7a;
  background: rgba(228, 122, 122, 0.08);
  border-color: rgba(228, 122, 122, 0.35);
  font-weight: 500;
}
.dp-summary{
  margin-top: 20px;
  padding: 16px 18px;
  background: var(--ink-2);
  border: 1px solid var(--rule);
}
.dp-sum-row{
  display: flex; justify-content: space-between; align-items: baseline;
  padding: 6px 0;
  font-family: var(--f-body);
  font-size: 13px;
  color: var(--paper-2);
}
.dp-sum-row span{ color: var(--paper-3); }
.dp-sum-total{
  border-top: 1px solid var(--rule);
  margin-top: 6px; padding-top: 12px;
}
.dp-sum-total span{ color: var(--paper); font-family: var(--f-meta); font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; }
.dp-sum-total strong{
  font-family: var(--f-display); font-weight: 400;
  font-size: 24px; color: var(--accent-2);
}
.dp-pay-tabs{
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  margin-bottom: 18px;
}
.dp-ptab{
  padding: 12px;
  border: 1px solid var(--rule);
  background: var(--ink-2);
  font-family: var(--f-body);
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--paper-3);
  transition: border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}
.dp-ptab:hover{ color: var(--paper); }
.dp-ptab.is-active{ border-color: var(--accent); color: var(--paper); background: var(--accent-bg); }
.dp-paybox{
  padding: 18px;
  background: var(--ink-2);
  border: 1px solid var(--rule);
  font-family: var(--f-display);
  font-style: italic;
  font-size: 14px;
  color: var(--paper-2);
  line-height: 1.6;
}
.pix-box{
  display: flex; flex-direction: column; gap: 18px;
  margin-top: 4px;
}
.pix-grid{
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 24px;
  align-items: start;
  padding: 22px;
  background: var(--ink-2);
  border: 1px solid var(--rule);
}
@media (max-width: 720px){
  .pix-grid{ grid-template-columns: 1fr; gap: 18px; }
}
.pix-qr-wrap{
  position: relative;
  background: #fff;
  padding: 14px;
  border-radius: 4px;
  line-height: 0;
  box-shadow: 0 12px 28px rgba(0,0,0,.35);
}
.pix-qr{ display: block; width: 220px; height: 220px; }
.pix-qr-omega{
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 44px; height: 44px;
  background: #fff;
  border: 2px solid #0c0d0e;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--f-display);
  font-size: 24px;
  color: #0c0d0e;
  line-height: 1;
  pointer-events: none;
}
.pix-info{ display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.pix-info-eyebrow{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
}
.pix-info-title{
  font-family: var(--f-display);
  font-size: 22px;
  font-weight: 400;
  color: var(--paper);
  letter-spacing: -0.01em;
}
.pix-info-desc{
  font-family: var(--f-body);
  font-size: 13px;
  color: var(--paper-2);
  line-height: 1.55;
  margin: 0;
}
.pix-steps{
  margin: 4px 0 0;
  padding-left: 18px;
  font-family: var(--f-body);
  font-size: 12.5px;
  color: var(--paper-2);
  line-height: 1.7;
}
.pix-amount{
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 12px;
  margin-top: 8px;
  padding-top: 14px;
  border-top: 1px solid var(--rule);
}
.pix-amount-key{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--paper-3, var(--paper-2));
}
.pix-amount-val{
  font-family: var(--f-display);
  font-size: 26px;
  font-weight: 300;
  color: var(--paper);
  letter-spacing: -0.01em;
}
.pix-amount-val em{
  font-style: normal;
  font-size: 14px;
  color: var(--accent);
  margin-left: 2px;
}
.pix-beneficiary{
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 12px;
  font-family: var(--f-body);
  font-size: 12px;
  color: var(--paper-2);
}
.pix-beneficiary span{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.pix-beneficiary strong{
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 13px;
  color: var(--paper);
  letter-spacing: 0.04em;
}
.pix-cnc{
  display: flex; flex-direction: column; gap: 8px;
}
.pix-cnc-label{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--paper-2);
}
.pix-cnc-row{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  align-items: stretch;
}
@media (max-width: 540px){
  .pix-cnc-row{ grid-template-columns: 1fr; }
}
.pix-cnc-code{
  display: block;
  padding: 12px 14px;
  background: var(--ink-1);
  border: 1px solid var(--rule);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  color: var(--paper-2);
  word-break: break-all;
  line-height: 1.5;
  max-height: 70px;
  overflow: auto;
}
.pix-cnc-btn{
  padding: 0 22px;
  background: var(--accent);
  color: var(--ink-0, #0c0d0e);
  border: 1px solid var(--accent);
  font-family: var(--f-meta);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .2s, color .2s;
  white-space: nowrap;
}
.pix-cnc-btn:hover{ background: var(--paper); border-color: var(--paper); }
.pix-cnc-btn.is-copied{ background: transparent; color: var(--accent); }
.drawer-foot{
  padding: 18px 32px;
  border-top: 1px solid var(--rule);
  display: flex; gap: 10px;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.drawer-foot .btn-ghost{ flex: 0 0 auto; }
.drawer-foot .btn-block{ flex: 1; }
.dp-err{
  display: flex;
  gap: 12px;
  align-items: flex-start;
  background: rgba(195, 60, 60, 0.08);
  border: 1px solid rgba(195, 60, 60, 0.35);
  border-radius: 4px;
  padding: 14px 16px;
  margin-bottom: 12px;
  width: 100%;
  flex-basis: 100%;
}
.dp-err-icon{
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #c33c3c;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--f-display);
  font-weight: 600;
  font-size: 16px;
  line-height: 1;
}
.dp-err-body{ flex: 1; min-width: 0; }
.dp-err-title{
  font-family: var(--f-display);
  font-size: 15px;
  color: #c33c3c;
  margin-bottom: 4px;
  letter-spacing: 0.01em;
}
.dp-err-msg{
  font-size: 13px;
  color: var(--ink);
  opacity: 0.85;
  line-height: 1.5;
  margin-bottom: 8px;
}
.dp-err-back{
  background: none;
  border: none;
  padding: 0;
  font-family: var(--f-sans);
  font-size: 12px;
  color: var(--accent);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.dp-err-back:hover{ opacity: 0.8; }
.drawer-done{ text-align: center; padding: 8px 0; }
.dd-mark{
  font-family: var(--f-display);
  font-size: 64px;
  color: var(--accent);
  margin-bottom: 8px;
  line-height: 1;
}
.dd-eyebrow{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 12px;
}
.dd-title{
  font-family: var(--f-display);
  font-weight: 300;
  font-size: 28px;
  margin: 0 0 16px;
}
.dd-text{
  font-family: var(--f-body);
  font-size: 14px;
  color: var(--paper-2);
  line-height: 1.7;
  margin-bottom: 24px;
}
.dd-recap{
  text-align: left;
  background: var(--ink-2);
  border: 1px solid var(--rule);
  padding: 16px;
  margin-bottom: 24px;
}
.dd-recap > div{
  display: flex; justify-content: space-between;
  padding: 6px 0;
  font-family: var(--f-body);
  font-size: 13px;
}
.dd-recap span{ color: var(--paper-3); }
.dd-recap strong{ font-family: var(--f-display); font-weight: 400; color: var(--paper); }
@media (max-width: 800px){
  .nav-links{ display: none; }
  .nav{
    grid-template-columns: auto 1fr auto;
    padding: 16px var(--pad-page-x);
    gap: 12px;
    align-items: center;
  }
  .nav-brand{ justify-self: start; }
  .nav-right{ gap: 8px; }
  .hero-grid{ gap: 16px 24px; }
  .hero-meta-left, .hero-meta-right{ display: none; }
  .hero-foot{ grid-template-columns: 1fr 1fr; gap: 16px; padding-top: 24px; }
  .section-head{ grid-template-columns: 1fr; }
  .footer-bot-mid{ text-align: left; flex: 1 1 100%; }
  .d-none-sm{ display: none; }
  .nav-burger{
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 38px;
    height: 38px;
    padding: 0;
    background: transparent;
    border: 1px solid var(--rule);
    cursor: pointer;
    transition: border-color .2s ease;
    justify-self: start;
    flex-shrink: 0;
  }
  .nav-burger:hover{ border-color: var(--accent); }
  .nav-burger span{
    display: block;
    width: 18px;
    height: 1px;
    background: var(--paper);
    margin: 0 auto;
    transition: transform .25s ease, opacity .2s ease;
  }
  .nav-burger.is-open span:nth-child(1){ transform: translateY(6px) rotate(45deg); }
  .nav-burger.is-open span:nth-child(2){ opacity: 0; }
  .nav-burger.is-open span:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }
  .lang-trigger{
    padding: 8px !important;
    min-width: 0 !important;
  }
  .lang-trigger .lang-code,
  .lang-trigger .lang-caret{ display: none !important; }
  .nav-mobile{
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: #0a0908;
    z-index: 8000;
    padding: 96px 32px 40px;
    display: flex;
    flex-direction: column;
    gap: 32px;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-12px);
    transition: opacity .35s ease, transform .35s ease;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    will-change: transform, opacity;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }
  .nav-mobile.is-open{
    opacity: 1;
    pointer-events: all;
    transform: translateY(0);
  }
  .nav-mobile-links{
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }
  .nav-mobile-link{
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--rule);
    padding: 18px 4px;
    font-family: var(--f-display, "Cormorant Garamond", serif);
    font-size: 22px;
    font-weight: 300;
    color: var(--paper-2);
    cursor: pointer;
    transition: color .2s ease, padding-left .2s ease;
    letter-spacing: 0.02em;
  }
  .nav-mobile-link:hover,
  .nav-mobile-link:active{
    color: var(--accent);
    padding-left: 12px;
  }
  .nav-mobile-link.is-active{
    color: var(--accent);
    font-style: italic;
  }
  body.nav-mobile-locked{
    overflow: hidden;
    position: fixed;
    width: 100%;
  }
  .wa-fab{ bottom: 16px; right: 16px; }
  .wa-fab-btn{
    width: 46px;
    height: 46px;
    box-shadow: 0 3px 10px rgba(0,0,0,.35), 0 1px 3px rgba(37,211,102,.35);
  }
  .wa-fab-btn svg{ width: 22px; height: 22px; }
  .wa-fab-tooltip{ display: none; }
}
@media (min-width: 801px){
  .nav-burger{ display: none; }
  .nav-mobile{ display: none; }
}
@media (max-width: 500px){
  :root{ --pad-page-x: 20px; }
  .hero-foot{ grid-template-columns: 1fr; }
  .ci-block{ grid-template-columns: 1fr; gap: 6px; }
}
.lang-wrap{ position: relative; }
.lang-trigger{
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 7px 12px 7px 10px;
  background: transparent;
  border: 1px solid var(--rule);
  color: var(--paper-2);
  font-family: var(--f-eyebrow);
  font-size: 11px;
  letter-spacing: 0.18em;
  cursor: pointer;
  transition: all .2s;
}
.lang-trigger:hover,
.lang-trigger.is-open{ border-color: var(--accent); color: var(--accent); }
.flag-svg{
  width: 20px;
  height: 14px;
  display: block;
  border: 1px solid rgba(255,255,255,0.08);
  flex-shrink: 0;
}
.lang-code{ font-weight: 500; }
.lang-caret{
  font-size: 9px;
  margin-left: 2px;
  opacity: 0.7;
  transition: transform .2s;
}
.lang-trigger.is-open .lang-caret{ transform: rotate(180deg); }
.lang-menu{
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  list-style: none;
  margin: 0;
  padding: 6px;
  background: var(--ink-2);
  border: 1px solid var(--rule);
  min-width: 180px;
  z-index: 100;
  box-shadow: 0 18px 48px rgba(0,0,0,0.6);
  animation: lang-fade .15s ease;
}
@keyframes lang-fade{
  from{ opacity: 0; transform: translateY(-4px); }
  to  { opacity: 1; transform: translateY(0); }
}
.lang-opt{
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 10px 12px;
  background: transparent;
  border: none;
  color: var(--paper-2);
  font: 14px var(--f-body);
  text-align: left;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.lang-opt:hover{
  background: color-mix(in oklch, var(--paper) 4%, transparent);
  color: var(--paper);
}
.lang-opt.is-active{
  color: var(--accent);
  background: color-mix(in oklch, var(--accent) 6%, transparent);
}
.lang-opt-label{ flex: 1; }
.lang-opt-check{
  color: var(--accent);
  font-size: 13px;
  font-weight: 500;
}
.nav-admin{
  background: transparent;
  border: 1px solid var(--rule);
  color: var(--paper-3);
  width: 32px; height: 32px;
  border-radius: 50%;
  font-size: 14px;
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: all .2s ease;
}
.nav-admin:hover{ color: var(--accent); border-color: var(--accent); }
.admin-page{
  padding: calc(var(--nav-h) + 32px) clamp(20px, 5vw, 64px) 80px;
  min-height: 100vh;
  background: var(--ink);
}
.admin-login{
  min-height: calc(100vh - var(--nav-h));
  display: flex; align-items: center; justify-content: center;
  padding: calc(var(--nav-h) + 24px) 24px 80px;
  background:
    radial-gradient(ellipse at 50% 30%, color-mix(in oklch, var(--accent) 8%, transparent), transparent 60%),
    var(--ink);
}
.al-box{
  width: 100%; max-width: 440px;
  background: var(--ink-2);
  border: 1px solid var(--rule);
  padding: 56px 48px;
  text-align: center;
}
.al-eyebrow{
  font-family: var(--f-eyebrow);
  font-size: 11px;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 18px;
}
.al-mark{
  font-family: var(--f-display);
  font-size: 56px;
  font-style: italic;
  font-weight: 300;
  color: var(--accent-2);
  line-height: 1;
  margin-bottom: 14px;
}
.al-title{
  font-family: var(--f-display);
  font-weight: 300;
  font-size: 28px;
  color: var(--paper);
  margin: 0 0 8px;
}
.al-sub{
  font-size: 13px;
  color: var(--paper-3);
  line-height: 1.6;
  margin: 0 0 32px;
}
.al-err{
  color: #e47a7a;
  font-size: 13px;
  font-style: italic;
  margin: 12px 0 16px;
}
.al-demo{
  margin-top: 18px;
  font-size: 12px;
  color: var(--paper-3);
  font-style: italic;
}
.al-demo strong{ color: var(--paper-2); font-weight: 500; font-style: normal; font-family: var(--f-mono, monospace); }
.ad-head{
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 24px; margin-bottom: 40px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--rule);
}
.ad-h1{
  font-family: var(--f-display);
  font-weight: 300;
  font-size: clamp(28px, 3.4vw, 42px);
  margin: 8px 0 0;
  color: var(--paper);
}
.ad-h1 em{ font-style: italic; color: var(--accent-2); font-weight: 400; }
.ad-stats{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 32px;
}
.ad-stat{
  background: var(--ink-2);
  border: 1px solid var(--rule);
  padding: 24px 20px;
}
.ad-stat-hl{ border-color: color-mix(in oklch, var(--accent) 32%, var(--rule)); }
.ad-stat-lbl{
  font-family: var(--f-eyebrow);
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--paper-3);
  margin-bottom: 12px;
}
.ad-stat-val{
  font-family: var(--f-display);
  font-weight: 300;
  font-size: 38px;
  color: var(--paper);
  line-height: 1;
}
.ad-stat-val span{ font-size: 16px; color: var(--paper-3); margin-left: 4px; }
.ad-stat-val.ad-pos{ color: #5de49a; }
.ad-stat-val.ad-neg{ color: #e47a7a; }
.ad-stat-sub{
  font-size: 12px;
  color: var(--paper-3);
  margin-top: 8px;
  font-style: italic;
}
.ad-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}
.ad-panel{
  background: var(--ink-2);
  border: 1px solid var(--rule);
  padding: 28px;
}
.ad-panel-wide{ grid-column: 1 / -1; }
.ad-panel-title{
  font-family: var(--f-eyebrow);
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--rule);
}
.ad-rooms{ display: flex; flex-direction: column; gap: 0; }
.ad-room-row{
  display: grid;
  grid-template-columns: 56px 1fr auto;
  align-items: center;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--rule);
  background: transparent;
  border-left: none; border-right: none; border-top: none;
  text-align: left;
  cursor: pointer;
  color: inherit;
  font: inherit;
  transition: padding-left .2s;
}
.ad-room-row:last-child{ border-bottom: none; }
.ad-room-row:hover{ padding-left: 8px; }
.ad-room-num{
  font-family: var(--f-display);
  font-size: 24px;
  font-weight: 300;
  color: var(--accent-2);
}
.ad-room-mid{ min-width: 0; }
.ad-room-name{
  font-family: var(--f-display);
  font-size: 17px;
  color: var(--paper);
  margin-bottom: 4px;
}
.ad-room-meta{
  font-size: 12px;
  color: var(--paper-3);
  font-style: italic;
}
.ad-pill{
  display: inline-block;
  font-family: var(--f-eyebrow);
  font-size: 9px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  padding: 6px 12px;
  border: 1px solid;
  white-space: nowrap;
}
.ad-pill-available{ color: #5de49a; border-color: rgba(93,228,154,.32); background: rgba(93,228,154,.06); }
.ad-pill-occupied{ color: #e47a7a; border-color: rgba(228,122,122,.32); background: rgba(228,122,122,.06); }
.ad-pill-cleaning{ color: #e4c47a; border-color: rgba(228,196,122,.32); background: rgba(228,196,122,.06); }
.ad-cal-head{
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 16px;
}
.ad-cal-month{
  font-family: var(--f-display);
  font-style: italic;
  font-size: 18px;
  color: var(--paper);
}
.ad-cal-nav{
  width: 32px; height: 32px;
  border: 1px solid var(--rule);
  background: transparent;
  color: var(--paper-2);
  cursor: pointer;
  font-size: 18px;
  transition: all .2s;
}
.ad-cal-nav:hover{ border-color: var(--accent); color: var(--accent); }
.ad-cal-grid{
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
.ad-cal-dn{
  font-family: var(--f-eyebrow);
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--paper-3);
  text-align: center;
  padding: 8px 0;
}
.ad-cal-day{
  aspect-ratio: 1;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px;
  color: var(--paper-2);
  background: color-mix(in oklch, var(--paper) 3%, transparent);
  border: 1px solid transparent;
}
.ad-cal-day.is-today{
  border-color: var(--accent);
  color: var(--accent);
  font-weight: 500;
}
.ad-cal-day.is-busy{
  background: color-mix(in oklch, var(--accent) 14%, transparent);
  color: var(--accent-2);
}
.ad-cal-day.is-low{
  background: rgba(93,228,154,.14);
  color: #5de49a;
}
.ad-cal-day.is-mid{
  background: rgba(228,196,122,.18);
  color: #e4c47a;
}
.ad-cal-day.is-full{
  background: rgba(228,122,122,.18);
  color: #e47a7a;
}
.ad-cal-day{ flex-direction: column; gap: 1px; padding: 4px 0; }
.ad-cal-d{ font-size: 13px; line-height: 1; }
.ad-cal-c{ font-size: 9px; opacity: .85; font-family: var(--f-m); letter-spacing: .04em; }
.ad-cal-legend{
  display: flex; gap: 16px; flex-wrap: wrap;
  margin-top: 18px;
  font-size: 11px;
  color: var(--paper-3);
  font-style: italic;
}
.ad-cal-legend .lg{
  display: inline-block;
  width: 10px; height: 10px;
  margin-right: 6px;
  vertical-align: -1px;
}
.lg-busy{ background: color-mix(in oklch, var(--accent) 30%, transparent); }
.lg-low{ background: rgba(93,228,154,.4); }
.lg-mid{ background: rgba(228,196,122,.4); }
.lg-full{ background: rgba(228,122,122,.4); }
.lg-today{ border: 1px solid var(--accent); }
.ad-floor{ margin-bottom: 18px; }
.ad-floor:last-child{ margin-bottom: 0; }
.ad-floor-label{
  font-family: var(--f-m);
  font-size: 9px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--paper-3);
  padding: 10px 0 6px;
  border-bottom: 1px solid var(--rule);
  margin-bottom: 4px;
}
.ad-room-guest{
  color: var(--accent-2);
  font-style: normal;
  font-weight: 500;
}
.ad-filters{
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 12px;
  margin-bottom: 20px;
}
.ad-input{
  background: var(--ink);
  border: 1px solid var(--rule);
  color: var(--paper);
  padding: 10px 14px;
  font: 14px var(--f-body);
  width: 100%;
}
.ad-input:focus{ outline: none; border-color: var(--accent); }
.ad-table-wrap{ overflow-x: auto; }
.ad-table{
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.ad-table th{
  text-align: left;
  font-family: var(--f-eyebrow);
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--paper-3);
  font-weight: 500;
  padding: 12px 10px;
  border-bottom: 1px solid var(--rule);
}
.ad-table td{
  padding: 14px 10px;
  border-bottom: 1px solid var(--rule);
  vertical-align: middle;
}
.ad-table tbody tr:hover{ background: color-mix(in oklch, var(--paper) 2%, transparent); }
.ad-name{ color: var(--paper); font-family: var(--f-display); font-size: 15px; }
.ad-mut{ color: var(--paper-3); font-size: 12px; font-style: italic; }
.ad-c{ text-align: center; }
.ad-amt{ font-family: var(--f-display); font-size: 16px; color: var(--accent-2); }
.ad-room-tag{
  display: inline-block;
  font-family: var(--f-eyebrow);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--paper-2);
  border: 1px solid var(--rule);
  padding: 4px 10px;
}
.ad-meth{
  display: inline-block;
  font-family: var(--f-eyebrow);
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 5px 10px;
  border: 1px solid var(--rule);
  color: var(--paper-2);
}
.ad-meth-card{ border-color: rgba(120,160,255,.3); color: #9bb6ff; }
.ad-meth-paypal{ border-color: rgba(255,200,120,.3); color: #ffc878; }
.ad-meth-pix{ border-color: rgba(120,255,180,.3); color: #78ffb4; }
.ad-empty{
  text-align: center;
  padding: 32px;
  color: var(--paper-3);
  font-style: italic;
}
.ad-btn{
  font-family: var(--f-eyebrow);
  font-size: 9px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  padding: 6px 12px;
  background: transparent;
  border: 1px solid var(--rule);
  color: var(--paper-2);
  cursor: pointer;
  transition: all .15s;
}
.ad-btn:hover{ border-color: var(--accent); color: var(--accent); }
.ad-btn-danger{ border-color: rgba(228,122,122,.4); color: #e47a7a; }
.ad-btn-danger:hover{ background: rgba(228,122,122,.1); border-color: #e47a7a; color: #e47a7a; }
.ad-modal-veil{
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.72);
  backdrop-filter: blur(8px);
  display: flex; align-items: center; justify-content: center;
  z-index: 200;
  padding: 24px;
}
.ad-modal{
  background: var(--ink-2);
  border: 1px solid var(--rule);
  padding: 36px;
  width: 100%; max-width: 480px;
  max-height: 90vh; overflow-y: auto;
}
.ad-modal-head{
  display: flex; justify-content: space-between; align-items: flex-start;
  margin-bottom: 28px;
}
.ad-modal-eyebrow{
  font-family: var(--f-eyebrow);
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 6px;
}
.ad-modal-title{
  font-family: var(--f-display);
  font-size: 24px;
  font-weight: 300;
  color: var(--paper);
}
.ad-modal-section{
  font-family: var(--f-eyebrow);
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--paper-3);
  margin-bottom: 12px;
  margin-top: 4px;
}
.ad-status-toggle{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 28px;
}
.ad-status-opt{
  font-family: var(--f-eyebrow);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 12px 8px;
  background: transparent;
  border: 1px solid var(--rule);
  color: var(--paper-3);
  cursor: pointer;
  transition: all .15s;
}
.ad-status-available.is-active{ background: rgba(93,228,154,.12); border-color: #5de49a; color: #5de49a; }
.ad-status-occupied.is-active{ background: rgba(228,122,122,.12); border-color: #e47a7a; color: #e47a7a; }
.ad-status-cleaning.is-active{ background: rgba(228,196,122,.12); border-color: #e4c47a; color: #e4c47a; }
.ad-modal-bookings{ margin-bottom: 24px; }
.ad-mb-row{
  padding: 12px 0;
  border-bottom: 1px solid var(--rule);
}
.ad-mb-row:last-child{ border-bottom: none; }
.ad-empty-soft{
  color: var(--paper-3);
  font-style: italic;
  font-size: 13px;
  padding: 8px 0 16px;
}
@media (max-width: 980px){
  .ad-stats{ grid-template-columns: repeat(2, 1fr); }
  .ad-grid{ grid-template-columns: 1fr; }
  .ad-filters{ grid-template-columns: 1fr; }
  .ad-head{ flex-direction: column; align-items: flex-start; }
}
.price-tag{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}
.price-tag.is-stack{
  align-items: center;
  text-align: center;
}
.price-from{
  font-family: var(--f-meta);
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--paper-3);
  margin-bottom: 1px;
}
.price-main{
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
}
.price-amount{
  font-family: var(--f-display);
  font-size: 28px;
  font-weight: 300;
  color: var(--paper);
  letter-spacing: -0.01em;
  line-height: 1;
}
.price-cur{
  font-family: var(--f-meta);
  font-size: 11px;
  color: var(--accent);
  letter-spacing: 0.05em;
  margin-left: 2px;
}
.price-conv{
  display: inline-flex;
  gap: 6px;
  font-family: var(--f-meta);
  font-size: 10px;
  color: var(--paper-3);
  letter-spacing: 0.05em;
  margin-top: 2px;
}
.price-conv-sep{ opacity: 0.4; }
.price-dual{
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 18px;
  row-gap: 14px;
}
.price-dual.is-three{ gap: 14px; }
@media (max-width: 560px){
  .price-dual.is-three{ gap: 12px 18px; }
  .price-dual.is-three .price-dual-sep{ display: none; }
  .price-dual.is-three .price-amount{ font-size: 24px; }
}
.price-dual-col{
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.price-dual-label{
  font-family: var(--f-meta);
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--paper-3);
}
.price-dual-sep{
  width: 1px;
  align-self: stretch;
  background: var(--rule);
}
.price-dual-wrap{
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.price-note{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.08em;
  color: var(--accent);
}
.book-local{
  font-family: var(--f-meta);
  font-size: 11px;
  letter-spacing: 0.05em;
  color: var(--paper-3);
  max-width: 180px;
  text-align: right;
  line-height: 1.5;
}
.book-local a{
  color: var(--accent);
  text-decoration: none;
  border-bottom: 1px solid var(--accent);
}
.policies-page{ padding-bottom: 120px; }
.pol-tabs{
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  border-bottom: 1px solid var(--rule);
  margin: 0 0 48px;
}
.pol-tab{
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  padding: 18px 24px;
  font-family: var(--f-meta);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--paper-2);
  cursor: pointer;
  transition: color .2s, border-color .2s;
  margin-bottom: -1px;
}
.pol-tab:hover{ color: var(--paper); }
.pol-tab.is-active{
  color: var(--accent);
  border-bottom-color: var(--accent);
}
.pol-content{
  max-width: 760px;
  font-family: var(--f-body);
  color: var(--paper-2);
  line-height: 1.75;
}
.pol-h2{
  font-family: var(--f-display);
  font-size: 22px;
  font-weight: 400;
  color: var(--paper);
  letter-spacing: -0.01em;
  margin: 56px 0 16px;
  line-height: 1.3;
}
.pol-h2:first-child{ margin-top: 0; }
.pol-p{
  font-size: 15px;
  margin: 0 0 18px;
  text-wrap: pretty;
}
.pol-ul{
  list-style: none;
  padding: 0;
  margin: 0 0 18px;
}
.pol-ul li{
  font-size: 15px;
  padding: 10px 0 10px 24px;
  border-bottom: 1px solid var(--rule);
  position: relative;
  text-wrap: pretty;
}
.pol-ul li:last-child{ border-bottom: 0; }
.pol-ul li::before{
  content: "—";
  position: absolute;
  left: 0;
  color: var(--accent);
  font-family: var(--f-display);
}
.pol-tiers{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: 24px 0 32px;
}
@media (max-width: 720px){
  .pol-tiers{ grid-template-columns: 1fr; }
}
.pol-tier{
  border: 1px solid var(--rule);
  padding: 22px;
  background: var(--ink-1);
  position: relative;
}
.pol-tier-good{ border-left: 3px solid #6b9d56; }
.pol-tier-warn{ border-left: 3px solid var(--accent); }
.pol-tier-bad{  border-left: 3px solid #b65a4a; }
.pol-tier-tag{
  font-family: var(--f-meta);
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--paper-3);
  margin-bottom: 12px;
}
.pol-tier-title{
  font-family: var(--f-display);
  font-size: 18px;
  font-weight: 400;
  color: var(--paper);
  margin-bottom: 8px;
}
.pol-tier-desc{
  font-size: 13px;
  line-height: 1.55;
  color: var(--paper-2);
}
.pol-dl{
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 0;
  border: 1px solid var(--rule);
  margin: 0 0 24px;
}
@media (max-width: 600px){
  .pol-dl{ grid-template-columns: 1fr; }
}
.pol-dl dt{
  padding: 14px 18px;
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--paper-3);
  background: var(--ink-1);
  border-bottom: 1px solid var(--rule);
}
.pol-dl dd{
  padding: 14px 18px;
  margin: 0;
  font-size: 14px;
  color: var(--paper);
  border-bottom: 1px solid var(--rule);
}
.pol-dl dt:last-of-type, .pol-dl dd:last-of-type{ border-bottom: 0; }
@media (max-width: 600px){
  .pol-dl dt{ border-bottom: 0; }
  .pol-dl dd{ padding-top: 0; }
}
.pol-foot{
  margin-top: 80px;
  padding-top: 32px;
  border-top: 1px solid var(--rule);
  display: flex;
  justify-content: space-between;
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--paper-3);
}
.faq-page{ padding-bottom: 120px; }
.faq-list{
  max-width: 820px;
  margin: 0 auto;
  border-top: 1px solid var(--rule);
}
.faq-row{
  border-bottom: 1px solid var(--rule);
  transition: background-color 0.4s ease;
}
.faq-row.is-open{ background: rgba(193,154,107,0.04); }
.faq-q{
  width: 100%;
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 26px 8px;
  background: transparent;
  border: 0;
  cursor: pointer;
  text-align: left;
  color: var(--paper);
  transition: color 0.3s ease;
}
.faq-q:hover{ color: var(--accent-2); }
.faq-icon{
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid var(--rule);
  border-radius: 50%;
  color: var(--accent-2);
  transition: border-color 0.3s ease, background-color 0.3s ease;
}
.faq-row.is-open .faq-icon{
  border-color: var(--accent-2);
  background: rgba(193,154,107,0.08);
}
.faq-q-text{
  flex: 1;
  font-family: var(--f-display);
  font-weight: 300;
  font-size: 21px;
  letter-spacing: 0.005em;
  line-height: 1.4;
}
.faq-chev{
  flex: 0 0 22px;
  display: grid;
  place-items: center;
  color: var(--paper-3);
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), color 0.3s ease;
}
.faq-row.is-open .faq-chev{
  transform: rotate(180deg);
  color: var(--accent-2);
}
.faq-a-wrap{
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.faq-row.is-open .faq-a-wrap{
  grid-template-rows: 1fr;
}
.faq-a{
  overflow: hidden;
  min-height: 0;
}
.faq-row.is-open .faq-a{
  padding: 0 8px 32px 68px;
}
.faq-a p{
  margin: 0 0 12px;
  font-family: var(--f-body);
  font-size: 15.5px;
  line-height: 1.7;
  color: var(--paper-2);
  max-width: 640px;
}
.faq-a p:last-child{ margin-bottom: 0; }
.faq-foot{
  max-width: 820px;
  margin: 64px auto 0;
  padding: 32px;
  text-align: center;
  border: 1px solid var(--rule);
}
.faq-foot-line{
  font-family: var(--f-display);
  font-style: italic;
  font-weight: 300;
  font-size: 19px;
  color: var(--paper-2);
  margin-bottom: 18px;
}
.faq-foot-actions{
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 28px;
}
.faq-foot-a{
  font-family: var(--f-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--accent-2);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  padding-bottom: 4px;
  transition: border-color 0.3s ease;
}
.faq-foot-a:hover{ border-bottom-color: var(--accent-2); }
@media (max-width: 640px){
  .faq-q{ gap: 14px; padding: 22px 4px; }
  .faq-q-text{ font-size: 17px; }
  .faq-icon{ flex-basis: 32px; width: 32px; height: 32px; }
  .faq-row.is-open .faq-a{ padding: 0 4px 24px 50px; }
  .faq-a p{ font-size: 14.5px; }
}
.cookies-banner{
  position: fixed;
  left: 24px;
  right: 24px;
  bottom: 24px;
  z-index: 1100;
  background: var(--ink-2);
  color: var(--paper);
  border: 1px solid var(--rule);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55);
  font-family: var(--f-body);
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.cookies-banner.is-shown{
  opacity: 1;
  transform: translateY(0);
}
.cookies-inner{
  max-width: 1100px;
  margin: 0 auto;
  padding: 22px 28px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: center;
}
.cookies-banner.is-details .cookies-inner{
  grid-template-columns: 1fr;
  gap: 18px;
}
.cookies-text{ min-width: 0; }
.cookies-title{
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 16px;
  letter-spacing: 0.01em;
  color: var(--paper);
  margin-bottom: 6px;
}
.cookies-body{
  margin: 0;
  font-size: 13px;
  line-height: 1.55;
  color: var(--paper-2);
  max-width: 720px;
}
.cookies-link{
  color: var(--accent-2);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.cookies-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}
.cookies-btn{
  font-family: var(--f-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  padding: 12px 18px;
  border-radius: 0;
  cursor: pointer;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
  border: 1px solid transparent;
  white-space: nowrap;
}
.cookies-btn-ghost{
  background: transparent;
  color: var(--paper);
  border-color: var(--rule);
}
.cookies-btn-ghost:hover{
  border-color: var(--accent);
  color: var(--accent);
}
.cookies-btn-primary{
  background: var(--accent);
  color: var(--ink-0, #0c0d0e);
  border-color: var(--accent);
}
.cookies-btn-primary:hover{
  background: transparent;
  border-color: var(--accent);
  color: var(--accent);
}
.cookies-categories{
  display: flex;
  flex-direction: column;
  gap: 1px;
  background: var(--rule);
  border: 1px solid var(--rule);
}
.cookies-cat{
  background: var(--ink-2);
  padding: 14px 16px;
}
.cookies-cat-row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.cookies-cat-name{
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 14px;
  color: var(--paper);
  margin-bottom: 2px;
}
.cookies-cat-desc{
  font-size: 12px;
  line-height: 1.5;
  color: var(--paper-3);
  max-width: 580px;
}
.cookies-cat-state-locked{
  font-family: var(--f-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--accent-2);
  flex-shrink: 0;
}
.cookies-switch{
  position: relative;
  display: inline-block;
  width: 38px;
  height: 22px;
  flex-shrink: 0;
  cursor: pointer;
}
.cookies-switch input{
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.cookies-switch-slot{
  position: absolute;
  inset: 0;
  background: var(--rule);
  border-radius: 22px;
  transition: background-color 0.25s ease;
}
.cookies-switch-knob{
  position: absolute;
  top: 2px;
  left: 2px;
  width: 18px;
  height: 18px;
  background: white;
  border-radius: 50%;
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.cookies-switch input:checked ~ .cookies-switch-slot{
  background: var(--accent-2);
}
.cookies-switch input:checked ~ .cookies-switch-slot .cookies-switch-knob{
  transform: translateX(16px);
}
@media (max-width: 720px){
  .cookies-banner{ left: 12px; right: 12px; bottom: 12px; }
  .cookies-inner{
    grid-template-columns: 1fr;
    padding: 18px 20px;
    gap: 14px;
  }
  .cookies-actions{ justify-content: stretch; }
  .cookies-btn{ flex: 1; padding: 12px 10px; }
  .cookies-cat-desc{ display: none; }
}
.wa-fab{
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 9000;
  display: flex;
  align-items: flex-end;
  gap: 12px;
}
.wa-fab-btn{
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #25d366;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(0,0,0,.4), 0 1px 4px rgba(37,211,102,.4);
  transition: transform .2s, box-shadow .2s;
  position: relative;
}
.wa-fab-btn:hover{
  transform: scale(1.06);
  box-shadow: 0 6px 22px rgba(0,0,0,.5), 0 2px 8px rgba(37,211,102,.5);
}
.wa-fab-btn::before{
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  background: #25d366;
  opacity: 0.25;
  z-index: -1;
  animation: waPulse 2.4s ease-out infinite;
}
@keyframes waPulse{
  0%   { transform: scale(0.95); opacity: 0.35; }
  70%  { transform: scale(1.5);  opacity: 0;    }
  100% { transform: scale(1.5);  opacity: 0;    }
}
.wa-fab-tooltip{
  background: var(--ink);
  border: 1px solid var(--rule);
  padding: 12px 16px;
  max-width: 220px;
  margin-bottom: 8px;
  position: relative;
  animation: waFadeIn .2s ease-out;
}
@keyframes waFadeIn{
  from{ opacity: 0; transform: translateX(8px); }
  to{   opacity: 1; transform: translateX(0); }
}
.wa-fab-tooltip::after{
  content: "";
  position: absolute;
  right: -6px;
  bottom: 18px;
  width: 10px;
  height: 10px;
  background: var(--ink);
  border-right: 1px solid var(--rule);
  border-top: 1px solid var(--rule);
  transform: rotate(45deg);
}
.wa-fab-tip-title{
  font-family: var(--f-display);
  font-size: 14px;
  color: var(--paper);
  margin-bottom: 2px;
}
.wa-fab-tip-sub{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--paper-3);
  text-transform: uppercase;
}
.wa-fab-close{
  position: absolute;
  top: -6px;
  right: -6px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--ink);
  border: 1px solid var(--rule);
  color: var(--paper-2);
  font-size: 12px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  opacity: 0;
  transition: opacity .2s, color .2s, border-color .2s;
}
.wa-fab:hover .wa-fab-close{ opacity: 1; }
.wa-fab-close:hover{ color: var(--accent); border-color: var(--accent); }
@media (max-width: 600px){
  .wa-fab{ bottom: 16px; right: 16px; }
  .wa-fab-tooltip{ display: none; }
}
.bk-conf{ padding: 0; }
.bk-conf-head{
  text-align: center;
  padding: 16px 0 32px;
  border-bottom: 1px solid var(--rule);
}
.bk-ref{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px;
  background: var(--ink-1);
  border: 1px solid var(--rule);
  border-top: 0;
  margin-bottom: 32px;
}
.bk-ref-key{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--paper-3);
}
.bk-ref-val{
  font-family: var(--f-meta);
  font-size: 16px;
  letter-spacing: 0.1em;
  color: var(--accent);
  background: transparent;
  padding: 0;
}
.bk-recap{
  margin-bottom: 32px;
}
.bk-recap-h{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--paper-3);
  margin: 28px 0 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--rule);
}
.bk-recap-h:first-child{ margin-top: 0; }
.bk-recap-row{
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 12px 0;
  font-size: 14px;
  gap: 16px;
}
.bk-recap-row span{
  color: var(--paper-3);
  font-family: var(--f-body);
  flex-shrink: 0;
}
.bk-recap-row strong{
  font-family: var(--f-display);
  font-weight: 400;
  color: var(--paper);
  text-align: right;
}
.bk-recap-row strong em{
  font-style: italic;
  color: var(--paper-3);
  font-size: 13px;
}
.bk-recap-total{
  border-top: 1px solid var(--rule);
  margin-top: 8px;
  padding-top: 16px;
}
.bk-recap-total strong{
  font-size: 22px;
  color: var(--accent);
}
.bk-recap-conv{
  font-style: normal;
  font-size: 12px;
  color: var(--paper-3);
  font-family: var(--f-meta);
  letter-spacing: 0.04em;
  margin-left: 4px;
}
.bk-recap-note{
  background: var(--ink-1);
  border: 1px solid var(--rule);
  padding: 14px 16px;
  font-size: 13px;
  font-style: italic;
  color: var(--paper-2);
  line-height: 1.55;
}
.bk-next{
  background: var(--ink-1);
  border: 1px solid var(--rule);
  padding: 22px;
  margin-bottom: 32px;
}
.bk-next-h{
  font-family: var(--f-meta);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 12px;
}
.bk-next-list{
  margin: 0;
  padding-left: 20px;
  font-size: 13px;
  color: var(--paper-2);
  line-height: 1.7;
}
.bk-next-list li{ margin-bottom: 6px; }
.bk-next-list li::marker{ color: var(--accent); }
.bk-actions{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.bk-actions .btn{ flex: 1; min-width: 140px; }
.bk-print-letterhead{
  display: none;
}
@media print {
  body{
    background: white !important;
    color: black !important;
  }
  body > *:not(.drawer){ display: none !important; }
  .drawer-veil{ display: none !important; }
  .drawer{
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    transform: none !important;
    box-shadow: none !important;
    border: 0 !important;
    background: white !important;
    color: black !important;
    overflow: visible !important;
  }
  .drawer-head, .drawer-steps, .drawer-foot, .bk-actions{ display: none !important; }
  .drawer-body{ overflow: visible !important; padding: 0 !important; }
  .bk-print-letterhead{
    display: grid !important;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 16px;
    padding-bottom: 18px;
    margin-bottom: 24px;
    border-bottom: 2px solid black;
  }
  .bk-print-mark{
    font-family: Georgia, serif;
    font-size: 48px;
    color: #bd945a;
    line-height: 1;
  }
  .bk-print-name{
    font-family: Georgia, serif;
    font-size: 18px;
    letter-spacing: 0.2em;
    color: black;
    margin-bottom: 4px;
  }
  .bk-print-addr{
    font-family: ui-sans-serif, sans-serif;
    font-size: 10px;
    color: #555;
  }
  .bk-print-title{
    font-family: ui-sans-serif, sans-serif;
    font-size: 11px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #999;
  }
  .bk-conf-head{ border-bottom: 1px solid black !important; }
  .bk-conf-head .dd-mark{ color: #bd945a !important; }
  .bk-conf-head .dd-eyebrow{ color: #999 !important; }
  .bk-conf-head .dd-title{ color: black !important; }
  .bk-conf-head .dd-text{ color: #444 !important; }
  .bk-ref{ background: #f5f0e8 !important; border-color: #bd945a !important; }
  .bk-ref-val{ color: #8a6a3e !important; }
  .bk-recap-h{ color: #999 !important; border-color: black !important; }
  .bk-recap-row span{ color: #666 !important; }
  .bk-recap-row strong{ color: black !important; }
  .bk-recap-total strong{ color: #8a6a3e !important; }
  .bk-next{ background: #f5f0e8 !important; border-color: #bd945a !important; }
  .bk-next-h{ color: #8a6a3e !important; }
  .bk-next-list{ color: #444 !important; }
  .wa-fab, .footer, .nav, .lang-picker, .tweak-fab{ display: none !important; }
}
.nav-burger{ display: none; }
.nav-drawer{ display: none; }
@media (max-width: 800px){
  .nav-burger{
    display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; padding: 0; margin-left: -10px;
    border: 0; background: none; color: var(--paper); cursor: pointer;
  }
  .nav-burger-bars{ position: relative; display: block; width: 20px; height: 1px; background: currentColor; }
  .nav-burger-bars::before,
  .nav-burger-bars::after{
    content: ""; position: absolute; left: 0; width: 20px; height: 1px; background: currentColor;
    transition: transform var(--t-fast) var(--ease);
  }
  .nav-burger-bars::before{ top: -6px; }
  .nav-burger-bars::after{ top: 6px; }
  .nav.is-menu-open .nav-burger-bars{ background: transparent; }
  .nav.is-menu-open .nav-burger-bars::before{ transform: translateY(6px) rotate(45deg); }
  .nav.is-menu-open .nav-burger-bars::after{ transform: translateY(-6px) rotate(-45deg); }
  .nav-drawer{
    display: block;
    position: absolute; left: 0; right: 0; top: 100%;
    padding: 4px var(--pad-page-x) 18px;
    background: var(--ink-1);
    border-top: 1px solid var(--rule);
    box-shadow: 0 20px 44px rgba(0,0,0,.5);
    max-height: calc(100dvh - 100%); overflow-y: auto;
  }
  .nav-drawer[hidden]{ display: none; }
  .nav-drawer-links{ list-style: none; margin: 0; padding: 0; }
  .nav-drawer-link{
    display: flex; align-items: center; min-height: 54px; padding: 6px 0;
    border-bottom: 1px solid var(--rule);
    color: var(--paper-2); text-decoration: none;
    font-family: var(--f-body); font-size: 15px; font-weight: 300; letter-spacing: .04em;
  }
  .nav-drawer-links li:last-child .nav-drawer-link{ border-bottom: 0; }
  .nav-drawer-link.is-active{ color: var(--accent-2); }
}
@media (prefers-reduced-motion: reduce){
  .nav-burger-bars::before, .nav-burger-bars::after{ transition: none; }
}