:root {
  --paper: #fbf9f3;
  --cream: #f1ecdf;
  --mint: #c9e6d1;
  --mint-soft: #e9f3e8;
  --mint-bright: #b9e7cf;
  --forest: #123e31;
  --forest-deep: #0b3327;
  --green: #245c48;
  --orange: #d96736;
  --orange-deep: #b64b25;
  --sand: #d7c4a4;
  --ink: #17362d;
  --muted: #708078;
  --line: rgba(18, 62, 49, 0.14);
  --white: #fff;
  --shadow: 0 24px 70px rgba(10, 44, 33, 0.13);
  --hotel-hero-main-height: 643px;
  --hotel-hero-facts-height: 118px;
  --hotel-hero-mobile-copy-height: 600px;
  --hotel-hero-mobile-facts-height: 204px;
}

/* Holidaylifestyle Hotel-DNA */
.hotel-dna-trigger {
  min-height: 56px;
  padding: 6px 15px 6px 7px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #173f34;
  border: 1px solid rgba(255,255,255,.58);
  border-radius: 999px;
  background: #f7f3e9;
  box-shadow: 0 14px 35px rgba(4,30,23,.22);
  cursor: pointer;
  font: inherit;
  text-align: left;
}
.hotel-dna-trigger > span:first-child {
  width: 43px;
  height: 43px;
  display: grid;
  place-items: center;
  flex: 0 0 43px;
  color: #fff;
  border-radius: 50%;
  background: #d96736;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
}
.hotel-dna-trigger > span:nth-child(2) { display: grid; line-height: 1.05; }
.hotel-dna-trigger small {
  color: #bd542d;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.hotel-dna-trigger strong { margin-top: 3px; font-size: 13px; }
.hotel-dna-trigger > b { margin-left: 5px; color: #d96736; font-size: 15px; }
.hotel-dna-trigger:hover { transform: translateY(-1px); box-shadow: 0 18px 42px rgba(4,30,23,.3); }

.hotel-dna-dialog {
  width: min(96vw, 1580px);
  max-width: none;
  height: min(92dvh, 980px);
  max-height: none;
  padding: 0;
  overflow: auto;
  scrollbar-width: none;
  color: #173f34;
  border: 0;
  border-radius: 32px;
  background: #f8f5ed;
  box-shadow: 0 40px 110px rgba(5,31,24,.42);
}
.hotel-dna-dialog::-webkit-scrollbar { display: none; }
.hotel-dna-dialog::backdrop { background: rgba(7,35,28,.78); backdrop-filter: blur(9px); }
.hotel-dna-shell { min-height: 100%; background: #f8f5ed; }
.hotel-dna-header {
  padding: 36px 42px 30px;
  display: flex;
  justify-content: space-between;
  gap: 30px;
  border-bottom: 1px solid rgba(23,63,52,.12);
}
.hotel-dna-header p,
.hotel-dna-card > p,
.hotel-dna-summary p {
  margin: 0;
  color: #c45c32;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.hotel-dna-header p span { width: 30px; height: 2px; margin-right: 10px; display: inline-block; vertical-align: middle; background: #d96736; }
.hotel-dna-hotel-name { display: block; margin-top: 18px; color: #173f34; font-size: clamp(17px, 1.6vw, 24px); font-weight: 850; line-height: 1.3; }
.hotel-dna-header h2 {
  margin: 12px 0 8px;
  font-family: "Tenor Sans", Georgia, serif;
  font-size: clamp(38px, 4.1vw, 66px);
  font-weight: 400;
  line-height: 1.04;
  letter-spacing: -.035em;
}
.hotel-dna-header > div { min-width: 0; }
.hotel-dna-header > div > div { max-width: 980px; color: #718078; font-size: 15px; line-height: 1.55; }
.hotel-dna-header > button {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  flex: 0 0 54px;
  color: #173f34;
  border: 1px solid rgba(23,63,52,.14);
  border-radius: 50%;
  background: #edf2e9;
  cursor: pointer;
  font: inherit;
  font-size: 25px;
}
.hotel-dna-grid { padding: 22px; display: grid; grid-template-columns: .92fr 1.05fr 1.05fr; gap: 18px; }
.hotel-dna-card {
  min-width: 0;
  padding: 27px 28px;
  border: 1px solid rgba(23,63,52,.11);
  border-radius: 25px;
  background: rgba(255,255,255,.72);
}
.hotel-dna-overview,
.hotel-dna-character { background: #e9f1eb; }
.hotel-dna-card h3 {
  margin: 12px 0 24px;
  font-family: "Tenor Sans", Georgia, serif;
  font-size: 25px;
  font-weight: 400;
  line-height: 1.2;
}
.hotel-dna-overview { display: flex; flex-direction: column; }
.hotel-dna-overview small { margin-top: auto; color: #65756d; font-size: 12px; line-height: 1.5; text-align: center; }
.hotel-dna-radar { width: 100%; max-width: 345px; margin: 6px auto 12px; overflow: visible; }
.dna-radar-grid polygon { fill: none; stroke: rgba(23,63,52,.16); stroke-width: 1.2; }
.dna-radar-grid line { stroke: rgba(23,63,52,.13); stroke-width: 1; }
.dna-radar-grid text { fill: #40584f; font-family: "DM Sans", sans-serif; font-size: 12px; font-weight: 800; }
.dna-radar-shape { fill: rgba(217,103,54,.21); stroke: #d96736; stroke-width: 3; }
.dna-radar-dots circle { fill: #f8f5ed; stroke: #d96736; stroke-width: 2.5; }
.hotel-dna-bars { display: grid; gap: 15px; }
.hotel-dna-bars > div > span { margin-bottom: 7px; display: flex; justify-content: space-between; gap: 15px; color: #50645b; font-size: 12px; }
.hotel-dna-bars b { color: #173f34; font-size: 12px; }
.hotel-dna-bars i,
.hotel-dna-spectrums i { height: 6px; display: block; position: relative; overflow: visible; border-radius: 999px; background: #e4e1d8; }
.hotel-dna-bars em { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg,#d96736,#ef9b72); }
.hotel-dna-spectrums { display: grid; gap: 28px; }
.hotel-dna-spectrums > div > span { margin-bottom: 12px; display: flex; justify-content: space-between; gap: 15px; color: #50645b; font-size: 12px; }
.hotel-dna-spectrums b { font-weight: 600; }
.hotel-dna-spectrums em {
  width: 16px;
  height: 16px;
  position: absolute;
  top: 50%;
  border: 3px solid #fff;
  border-radius: 50%;
  background: #d96736;
  box-shadow: 0 4px 12px rgba(23,63,52,.2);
  transform: translate(-50%,-50%);
}
.hotel-dna-summary {
  margin: 0 22px;
  padding: 28px 32px;
  display: grid;
  grid-template-columns: 1.35fr .65fr;
  gap: 34px;
  color: #fff;
  border-radius: 25px;
  background: #173f34;
}
.hotel-dna-summary > div + div { padding-left: 32px; border-left: 1px solid rgba(255,255,255,.16); }
.hotel-dna-summary p { color: #ef9b72; }
.hotel-dna-summary h3 {
  margin: 10px 0 0;
  font-family: "Tenor Sans", Georgia, serif;
  font-size: clamp(25px, 2.4vw, 36px);
  font-weight: 400;
  line-height: 1.24;
}
.hotel-dna-summary span { margin-top: 12px; display: block; color: rgba(255,255,255,.8); font-size: 12px; line-height: 1.65; }
.hotel-dna-method { margin: 0; padding: 16px 28px 22px; color: #65756d; font-size: 12px; line-height: 1.55; text-align: center; }

@media (max-width: 1100px) {
  .hotel-dna-grid { grid-template-columns: 1fr 1fr; }
  .hotel-dna-character { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .hotel-dna-trigger { min-height: 49px; padding: 5px 12px 5px 5px; }
  .hotel-dna-trigger > span:first-child { width: 38px; height: 38px; flex-basis: 38px; font-size: 9px; }
  .hotel-dna-trigger strong { font-size: 11px; }
  .hotel-dna-trigger small { font-size: 7px; }
  .hotel-dna-dialog { width: 100vw; height: 100dvh; border-radius: 0; }
  .hotel-dna-header { padding: 24px 20px 21px; }
  .hotel-dna-header h2 { margin-top: 10px; font-size: 36px; }
  .hotel-dna-header > div > div { font-size: 12px; }
  .hotel-dna-header > button { width: 44px; height: 44px; flex-basis: 44px; }
  .hotel-dna-grid { padding: 14px; grid-template-columns: 1fr; gap: 12px; }
  .hotel-dna-character { grid-column: auto; }
  .hotel-dna-card { padding: 22px 20px; border-radius: 20px; }
  .hotel-dna-radar { max-width: 300px; }
  .hotel-dna-summary { margin: 0 14px; padding: 24px 20px; grid-template-columns: 1fr; gap: 22px; border-radius: 20px; }
  .hotel-dna-summary > div + div { padding: 20px 0 0; border-top: 1px solid rgba(255,255,255,.16); border-left: 0; }
}

/* JAZ Elite Riviera hotel page */
.jaz-riviera-page .jaz-riviera-official-logo {
  width: min(220px, 55%);
  max-height: 78px;
  margin: 0 0 20px;
  display: block;
  object-fit: contain;
  object-position: left center;
  cursor: default !important;
}

.jaz-riviera-page .hero-copy h1 { max-width: 650px; }

.jaz-factsheet-card {
  margin-top: 20px;
  padding: 26px 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  color: #fff;
  border-radius: 22px;
  background: linear-gradient(125deg, #173f34, #214d40);
  box-shadow: 0 18px 44px rgba(18, 62, 49, .14);
}

.jaz-factsheet-card span {
  color: #ef9b72;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.jaz-factsheet-card h3 {
  margin: 8px 0 6px;
  font-family: "Tenor Sans", Georgia, serif;
  font-size: 26px;
  font-weight: 400;
}

.jaz-factsheet-card p {
  max-width: 760px;
  margin: 0;
  color: rgba(255, 255, 255, .7);
  font-size: 13px;
  line-height: 1.55;
}

.jaz-factsheet-card button,
.jaz-document-open {
  min-width: 190px;
  padding: 14px 18px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  color: #173f34;
  border: 0;
  border-radius: 999px;
  background: #f7f5ef;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.jaz-document-panel .jaz-document-open {
  width: 100%;
  margin-top: auto;
  color: #173f34;
}

.jaz-document-panel .hotel-dossier-preview {
  height: 420px;
  min-height: 420px;
  max-height: 420px;
  padding: 34px;
  display: grid;
  place-items: center;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 12%, rgba(217, 103, 54, .16), transparent 32%),
    linear-gradient(145deg, #dce8df, #eef2eb);
  cursor: pointer;
}

.hotel-dossier-canvas {
  width: auto;
  height: auto;
  display: grid;
  place-items: center;
  position: absolute;
  inset: 34px;
  z-index: 1;
}

.hotel-dossier-canvas canvas {
  width: auto !important;
  height: min(84%, 350px) !important;
  max-width: min(70%, 430px);
  max-height: 84%;
  position: absolute !important;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) !important;
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 22px 55px rgba(12, 45, 35, .2);
}

.hotel-dossier-canvas > span {
  padding: 12px 16px;
  position: absolute;
  z-index: 2;
  color: #173f34;
  border-radius: 999px;
  background: rgba(251, 249, 243, .94);
  font-size: 11px;
  font-weight: 800;
}

.hotel-dossier-web-source { cursor: default; }

/* Shared PDF controls sit inside the image, with captions wrapping beside them. */
.tulua-media-panel .hotel-media-toolbar {
  position: absolute;
  inset: 16px 16px auto;
  z-index: 6;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 8px;
  pointer-events: none;
}
.tulua-media-panel .hotel-media-document {
  min-height: 44px;
  max-width: 100%;
  padding: 10px 14px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  border: 1px solid rgba(23, 63, 52, .14);
  border-radius: 999px;
  background: #f7f5ef;
  color: #173f34;
  box-shadow: 0 3px 12px rgba(12, 45, 35, .14);
  font: 700 12px/1.3 "DM Sans", Arial, sans-serif;
  text-decoration: none;
  cursor: pointer;
  pointer-events: auto;
}
.tulua-media-panel .hotel-media-document:hover { background: #e9eee6; }
.tulua-media-panel .hotel-media-document:focus-visible { outline: 3px solid #ef9b72; outline-offset: 3px; }
.hotel-media-document-format {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #c96639;
  color: #fff;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .05em;
  line-height: 1;
}
.tulua-media-panel .hotel-media-toolbar .hotel-media-caption {
  position: static;
  max-width: 100%;
  margin: 0 0 0 auto;
  padding: 10px 12px;
  align-self: center;
  color: #fff;
  border-radius: 999px;
  background: rgba(18, 62, 49, .84);
  font: 700 10px/1.35 "DM Sans", Arial, sans-serif;
  text-align: right;
}
@media (max-width: 760px) {
  .tulua-media-panel .hotel-media-toolbar { inset: 12px 12px auto; }
}

.hotel-dossier-preview-open {
  width: 100%;
  height: 100%;
  padding: 22px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  position: absolute;
  inset: 0;
  z-index: 3;
  border: 0;
  border-radius: inherit;
  background: transparent;
  cursor: pointer;
}

.hotel-dossier-open-pill {
  min-height: 44px;
  padding: 0 16px;
  display: inline-flex;
  align-items: center;
  gap: 24px;
  color: #fff;
  border-radius: 999px;
  background: #173f34;
  box-shadow: 0 12px 30px rgba(12, 45, 35, .24);
  font-size: 11px;
  font-weight: 800;
}

.hotel-dossier-open-pill b { font-size: 14px; }

.hero-gallery-all {
  min-height: 46px;
  padding: 10px 13px 10px 16px;
  position: absolute;
  right: 14px;
  bottom: 14px;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #173f34;
  border: 0;
  border-radius: 999px;
  background: rgba(251, 249, 243, .95);
  box-shadow: 0 12px 30px rgba(8, 30, 24, .2);
  backdrop-filter: blur(10px);
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}

.hero-gallery-all b {
  min-width: 25px;
  height: 25px;
  display: inline-grid;
  place-items: center;
  color: #fff;
  border-radius: 50%;
  background: #173f34;
  font-size: 10px;
}

.hero-gallery-all i { color: #d96736; font-size: 14px; font-style: normal; }
.hero-gallery-all:hover { transform: translateY(-2px); }

@media (max-width: 760px) {
  .jaz-riviera-page .jaz-riviera-official-logo { width: 170px; max-height: 60px; margin-bottom: 14px; }
  .jaz-factsheet-card { padding: 22px; align-items: stretch; flex-direction: column; }
  .jaz-factsheet-card button { width: 100%; }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "Mulish", Arial, sans-serif;
  overflow-x: hidden;
}
button, input, select { font: inherit; }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }
button { color: inherit; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.skip-link {
  position: fixed; top: 8px; left: 8px; z-index: 1000; padding: 10px 16px;
  background: var(--forest); color: white; transform: translateY(-140%);
}
.skip-link:focus { transform: translateY(0); }
.section-shell { width: min(1320px, calc(100% - 80px)); margin-inline: auto; }
.eyebrow {
  margin: 0 0 18px; color: rgba(255,255,255,.78); font-size: 12px; font-weight: 900;
  letter-spacing: .2em; text-transform: uppercase;
}
.eyebrow.orange { color: var(--orange); }
.eyebrow.mint { color: var(--mint-bright); }
h1, h2, h3 { margin-top: 0; font-weight: 400; }
h1, h2 { font-family: "Tenor Sans", Georgia, serif; }

.concept-note {
  min-height: 34px; padding: 7px 5vw; display: flex; align-items: center; justify-content: center;
  gap: 14px; color: #684229; background: #f3dfc7; font-size: 11px; letter-spacing: .06em;
}
.concept-note span { font-weight: 900; text-transform: uppercase; }
.concept-note p { margin: 0; }

.site-header {
  height: 96px; padding: 0 5vw; display: grid; grid-template-columns: minmax(260px,1fr) auto minmax(260px,1fr);
  align-items: center; gap: 26px; background: rgba(251,249,243,.97); border-bottom: 1px solid var(--line);
  position: relative; z-index: 50;
}
.brand { display: inline-flex; align-items: center; justify-self: start; }
.brand-wordmark {
  color: var(--forest-deep); font-family: "DM Sans", Arial, sans-serif; font-size: 38px;
  font-weight: 700; line-height: 1; letter-spacing: -.052em; white-space: nowrap;
}
.main-nav { display: flex; align-items: center; justify-content: center; gap: 40px; }
.main-nav a { font-size: 15px; font-weight: 800; position: relative; }
.main-nav a::after {
  content: ""; position: absolute; left: 0; right: 100%; bottom: -8px; height: 2px;
  background: var(--orange); transition: right .25s ease;
}
.main-nav a:hover::after { right: 0; }
.header-cta {
  justify-self: end; display: inline-flex; align-items: center; gap: 16px; padding: 18px 24px;
  color: white; background: var(--forest); border-radius: 999px; font-weight: 900; font-size: 14px;
  box-shadow: 0 12px 28px rgba(18,62,49,.18);
}
.header-cta span { color: var(--mint-bright); }
.menu-toggle { display: none; }

.hotel-hero { min-height: 790px; position: relative; overflow: hidden; color: white; }
.hero-image {
  position: absolute; inset: 0; background: linear-gradient(135deg, #173f34, #376959);
  background-size: cover; background-position: center 56%; transform: scale(1.01);
}
.hero-shade {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(4,33,26,.82) 0%, rgba(4,33,26,.58) 38%, rgba(4,33,26,.07) 72%),
              linear-gradient(0deg, rgba(5,36,28,.54) 0%, transparent 45%);
}
.hero-topline {
  position: absolute; z-index: 2; top: 34px; left: 6vw; display: flex; gap: 10px;
  align-items: center; font-size: 12px; letter-spacing: .06em; opacity: .9;
}
.hero-topline a { border-bottom: 1px solid rgba(255,255,255,.45); }
.hero-copy { position: absolute; z-index: 2; left: 6vw; bottom: 156px; width: min(760px, 70vw); }
.hero-labels { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 24px; }
.hero-labels span {
  padding: 9px 13px; border-radius: 3px; font-size: 10px; font-weight: 900;
  letter-spacing: .12em; text-transform: uppercase;
}
.luxury-label { color: var(--forest-deep); background: var(--mint-bright); }
.opening-label { border: 1px solid rgba(255,255,255,.6); background: rgba(255,255,255,.1); backdrop-filter: blur(8px); }
.hero-copy h1 { margin-bottom: 22px; font-size: clamp(62px, 7.2vw, 112px); line-height: .92; letter-spacing: -.055em; }
.hero-intro { max-width: 650px; margin: 0; font-size: 21px; line-height: 1.55; color: rgba(255,255,255,.9); }
.hero-actions { display: flex; gap: 12px; margin-top: 32px; }
.primary-action, .ghost-action {
  min-height: 56px; padding: 0 23px; display: inline-flex; align-items: center; gap: 24px;
  border-radius: 3px; border: 0; cursor: pointer; font-weight: 900; font-size: 14px;
}
.primary-action { color: white; background: var(--orange); }
.ghost-action { color: white; border: 1px solid rgba(255,255,255,.65); background: rgba(7,43,34,.18); }
.hero-facts {
  position: absolute; z-index: 3; right: 5vw; bottom: 0; width: min(700px, 58vw); min-height: 118px;
  display: grid; grid-template-columns: repeat(3,1fr); color: var(--forest-deep); background: rgba(251,249,243,.96);
  backdrop-filter: blur(15px); border-top: 4px solid var(--orange); box-shadow: var(--shadow);
}
.hero-facts div { padding: 25px 28px; border-right: 1px solid var(--line); }
.hero-facts div:last-child { border-right: 0; }
.hero-facts small, .hero-facts span { display: block; }
.hero-facts small { margin-bottom: 8px; color: var(--orange); font-size: 9px; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.hero-facts strong { display: block; margin-bottom: 5px; font-size: 17px; }
.hero-facts span { color: var(--muted); font-size: 11px; }

.hotel-subnav {
  min-height: 72px; padding: 0 5vw; display: flex; align-items: center; justify-content: center; gap: 34px;
  background: white; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 40;
}
.hotel-subnav a { padding: 26px 0 22px; color: #66746e; font-size: 13px; font-weight: 800; border-bottom: 3px solid transparent; }
.hotel-subnav a.is-active, .hotel-subnav a:hover { color: var(--forest); border-bottom-color: var(--orange); }
.hotel-subnav button { margin-left: auto; border: 0; background: none; font-weight: 900; cursor: pointer; }

.editorial { padding-block: 120px 110px; display: grid; grid-template-columns: .85fr 1.25fr .72fr; gap: 70px; align-items: start; }
.editorial h2, .section-heading h2, .offers-intro h2, .advice-callout h2 {
  margin-bottom: 0; font-size: clamp(46px, 5vw, 78px); line-height: 1.02; letter-spacing: -.045em;
}
.editorial-copy { color: #52655d; font-size: 16px; line-height: 1.8; }
.editorial-copy .lead { margin-top: 0; color: var(--forest); font-size: 20px; line-height: 1.65; }
.editorial-copy blockquote {
  margin: 34px 0 0; padding: 24px 0 0 28px; color: var(--forest); border-left: 3px solid var(--orange);
  font-family: "Tenor Sans", Georgia, serif; font-size: 25px; line-height: 1.5;
}
.experience-card { padding: 32px; color: white; background: var(--forest); box-shadow: var(--shadow); position: relative; overflow: hidden; }
.experience-card::after {
  content: ""; position: absolute; width: 210px; height: 210px; right: -85px; bottom: -105px;
  border: 42px solid rgba(201,230,209,.08); border-radius: 50%;
}
.experience-number { display: block; margin-bottom: 48px; color: var(--mint-bright); font-size: 11px; font-weight: 900; letter-spacing: .15em; }
.experience-card p { margin: 0 0 8px; color: var(--mint-bright); font-size: 10px; letter-spacing: .15em; text-transform: uppercase; }
.experience-card h3 { margin-bottom: 22px; font-family: "Tenor Sans", Georgia, serif; font-size: 34px; }
.experience-card ul { margin: 0 0 30px; padding: 0; list-style: none; color: rgba(255,255,255,.76); font-size: 13px; line-height: 2; }
.experience-card li::before { content: "—"; margin-right: 10px; color: var(--orange); }
.experience-card a { position: relative; z-index: 2; display: flex; justify-content: space-between; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.2); font-weight: 900; font-size: 13px; }

.image-story { height: 720px; display: grid; grid-template-columns: 1.35fr .65fr .65fr; grid-template-rows: 1fr 1fr; gap: 12px; position: relative; }
.image-story figure { min-width: 0; min-height: 0; margin: 0; position: relative; overflow: hidden; }
.image-story .image-main { grid-row: 1 / 3; }
.image-story img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.image-story figure:hover img { transform: scale(1.035); }
.image-story figcaption {
  position: absolute; left: 20px; right: 20px; bottom: 18px; display: flex; gap: 12px; align-items: center;
  color: white; font-size: 12px; font-weight: 800; text-shadow: 0 2px 12px rgba(0,0,0,.45);
}
.image-story figcaption span { color: var(--mint-bright); font-size: 10px; }
.gallery-more {
  position: absolute; right: 28px; bottom: 28px; z-index: 3; width: 110px; height: 110px; display: flex;
  flex-direction: column; justify-content: center; align-items: center; border: 0; border-radius: 50%; color: white;
  background: var(--orange); box-shadow: 0 16px 35px rgba(60,20,5,.2); cursor: pointer;
}
.gallery-more strong { font-size: 25px; }.gallery-more span { font-size: 10px; }

.signature-strip {
  margin: 110px 0 0; padding: 50px 6vw; display: grid; grid-template-columns: repeat(4,1fr);
  color: white; background: var(--forest-deep);
}
.signature-strip div { padding: 2px 30px; border-right: 1px solid rgba(255,255,255,.15); }
.signature-strip div:last-child { border-right: 0; }
.signature-strip span { display: block; margin-bottom: 26px; color: var(--orange); font-size: 10px; font-weight: 900; }
.signature-strip strong, .signature-strip small { display: block; }
.signature-strip strong { margin-bottom: 7px; font-family: "Tenor Sans", Georgia, serif; font-size: 24px; font-weight: 400; }
.signature-strip small { color: rgba(255,255,255,.58); }

.villas { padding-block: 120px 130px; }
.section-heading { margin-bottom: 55px; display: grid; grid-template-columns: 1.4fr .6fr; gap: 80px; align-items: end; }
.section-heading > p { margin: 0 0 8px; color: var(--muted); font-size: 16px; line-height: 1.7; }
.villa-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.villa-card { background: white; box-shadow: 0 20px 55px rgba(13,51,40,.08); transition: transform .25s ease, box-shadow .25s ease; }
.villa-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.villa-card.featured { outline: 2px solid var(--orange); outline-offset: -2px; }
.villa-image { height: 340px; position: relative; overflow: hidden; }
.villa-image img { height: 100%; object-fit: cover; }
.villa-image > span { position: absolute; top: 16px; right: 16px; padding: 8px 10px; background: rgba(255,255,255,.92); font-size: 11px; font-weight: 900; }
.villa-image b { position: absolute; left: 16px; top: 16px; padding: 9px 11px; color: white; background: var(--orange); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.villa-content { padding: 28px; }
.villa-content > p { margin: 0 0 8px; color: var(--orange); font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.villa-content h3 { margin-bottom: 18px; font-family: "Tenor Sans", Georgia, serif; font-size: 30px; }
.villa-content ul { margin: 0 0 28px; padding: 18px 0; display: flex; flex-wrap: wrap; gap: 9px 18px; list-style: none; border-block: 1px solid var(--line); }
.villa-content li { color: #607068; font-size: 11px; }.villa-content li::before { content: "·"; margin-right: 7px; color: var(--orange); }
.villa-select { width: 100%; padding: 0; display: flex; justify-content: space-between; border: 0; background: transparent; cursor: pointer; font-weight: 900; font-size: 13px; }
.villa-select span { color: var(--orange); }
.villa-select.is-selected { color: var(--orange); }

.offers { padding-block: 110px 120px; color: white; background: var(--forest-deep); position: relative; overflow: hidden; }
.offers::before {
  content: ""; position: absolute; width: 700px; height: 700px; right: -330px; top: 40px;
  border: 110px solid rgba(201,230,209,.025); border-radius: 50%;
}
.offers-intro { display: grid; grid-template-columns: 1fr .75fr; gap: 120px; align-items: end; }
.offers-intro > p { max-width: 570px; margin: 0 0 10px; color: rgba(255,255,255,.65); font-size: 16px; line-height: 1.8; }

.search-studio { margin-top: 62px; color: #fff; background: #173f34; border-top: 5px solid var(--orange); box-shadow: 0 30px 70px rgba(0, 0, 0, .28); }
.studio-head { padding: 25px 28px 20px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(18,62,49,.16); }
.studio-head small, .studio-head strong { display: block; }.studio-head small { margin-bottom: 5px; color: var(--orange-deep); font-size: 9px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.studio-head strong { font-size: 20px; }.demo-status { padding: 8px 11px; border: 1px solid rgba(18,62,49,.22); border-radius: 999px; font-size: 10px; font-weight: 900; }
.demo-status i, .availability i { display: inline-block; width: 7px; height: 7px; margin-right: 7px; background: var(--orange); border-radius: 50%; }
.travel-modes { padding: 0 28px; display: flex; gap: 30px; border-bottom: 1px solid rgba(18,62,49,.16); }
.travel-modes button { padding: 18px 4px 14px; border: 0; border-bottom: 3px solid transparent; background: none; cursor: pointer; opacity: .6; font-weight: 800; }
.travel-modes button b { margin-right: 9px; color: var(--orange-deep); font-size: 10px; }
.travel-modes button.is-active { border-bottom-color: var(--orange); opacity: 1; }
.studio-fields { padding: 22px 24px 25px; display: grid; grid-template-columns: repeat(4,1fr) 1.05fr; gap: 10px; }
.studio-field { min-height: 104px; padding: 18px; text-align: left; border: 1px solid rgba(18,62,49,.12); background: #fffdf8; cursor: pointer; box-shadow: 0 8px 18px rgba(0, 0, 0, .16); }
.studio-field span, .studio-field strong, .studio-field small { display: block; }.studio-field span { margin-bottom: 12px; color: var(--orange-deep); font-size: 9px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.studio-field strong { margin-bottom: 6px; font-size: 14px; }.studio-field small { color: #8b9691; font-size: 10px; }
.studio-field select,
.studio-field input {
  width: 100%;
  margin: 0 0 7px;
  padding: 0 24px 0 0;
  color: var(--forest-deep);
  border: 0;
  outline: 0;
  background: transparent;
  font: inherit;
  font-size: 14px;
  font-weight: 900;
}
.studio-field input[type="date"] { padding-right: 0; }
.studio-field:focus-within { border-color: var(--orange); box-shadow: 0 0 0 3px rgba(220,101,59,.13); }
.studio-submit { padding: 18px; display: flex; align-items: center; justify-content: space-between; color: white; border: 0; background: var(--orange); cursor: pointer; font-weight: 900; text-align: left; }
.studio-submit b { font-size: 23px; }.studio-submit.is-loading b { animation: spin .8s linear infinite; }
.studio-submit:disabled { cursor: wait; opacity: .72; }
.live-search-note {
  margin: 0 24px 24px;
  padding: 13px 15px;
  color: rgba(255, 255, 255, .76);
  border: 1px solid rgba(18,62,49,.12);
  background: rgba(255, 255, 255, .065);
  border-radius: 14px;
  font-size: 11px;
  font-weight: 750;
  line-height: 1.55;
}
.live-search-note.is-error { color: #8e2f1e; border-color: rgba(142,47,30,.22); background: #fff1ec; }
.live-search-note.is-success { color: #fff; border-color: rgba(255, 255, 255, .16); background: rgba(255, 255, 255, .08); }
.demo-status.is-live i { background: #2a9d6f; box-shadow: 0 0 0 4px rgba(42,157,111,.13); }
.demo-status.is-error i { background: #b43d2a; }
@keyframes spin { to { transform: rotate(360deg); } }

.results-layout { margin-top: 46px; display: grid; grid-template-columns: 245px 1fr; gap: 24px; align-items: start; }
.filters { color: white; border: 1px solid rgba(255,255,255,.13); background: radial-gradient(circle at 100% 0, rgba(195,230,91,.08), transparent 32%),
    #163f34; position: sticky; top: 92px; }
.filter-title { padding: 20px; display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px solid rgba(255,255,255,.12); }
.filter-title small, .filter-title strong { display: block; }.filter-title small { margin-bottom: 4px; color: var(--mint-bright); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.filter-title strong { font-size: 15px; }.filter-title button { padding: 0; color: var(--mint-bright); border: 0; background: transparent; cursor: pointer; font-size: 9px; }
.filters fieldset { margin: 0; padding: 20px; border: 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.filters legend { padding: 0 0 12px; font-size: 11px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.filters label { margin: 10px 0; display: grid; grid-template-columns: 17px 1fr auto; align-items: center; gap: 8px; color: rgba(255,255,255,.7); font-size: 12px; cursor: pointer; }
.filters input { accent-color: var(--orange); }.filters label small { color: rgba(255,255,255,.35); }
.filter-placeholder { padding: 24px 20px; color: rgba(255,255,255,.53); font-size: 11px; line-height: 1.65; }
.filters fieldset[hidden] { display: none; }
.results-toolbar { min-height: 64px; padding: 0 2px; display: flex; justify-content: space-between; align-items: center; }
.results-toolbar strong, .results-toolbar span { display: block; }.results-toolbar strong { font-size: 17px; }.results-toolbar span { margin-top: 4px; color: rgba(255,255,255,.5); font-size: 10px; }
.results-toolbar label { color: rgba(255,255,255,.55); font-size: 10px; }.results-toolbar select { margin-left: 8px; padding: 9px 26px 9px 10px; color: white; border: 1px solid rgba(255,255,255,.18); background: #164235; font-size: 10px; }
.active-filters { display: flex; gap: 7px; flex-wrap: wrap; margin: 12px 0 18px; }
.active-filters button { padding: 8px 10px; color: var(--forest-deep); border: 0; background: var(--mint); cursor: pointer; border-radius: 2px; font-size: 9px; font-weight: 900; }
.active-filters span { margin-left: 7px; }

.offer-card { margin-bottom: 16px; color: var(--forest-deep); background: white; border: 1px solid rgba(255,255,255,.35); position: relative; }
.offer-card.recommended { border-top: 4px solid var(--orange); }
.offer-ribbon { position: absolute; top: -4px; right: 22px; padding: 9px 12px; color: white; background: var(--orange); font-size: 8px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.offer-header { min-height: 76px; padding: 16px 20px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--line); }
.offer-header > div { display: flex; align-items: center; gap: 13px; }.operator-mark { width: 44px; height: 44px; display: grid; place-items: center; color: white; background: var(--forest); font-weight: 900; border-radius: 50%; }
.operator-mark.coral { background: #17679a; }.operator-mark.vt { background: #9b3b70; }
.offer-header p { margin: 0; }.offer-header p strong, .offer-header p small { display: block; }.offer-header p strong { margin-bottom: 4px; font-size: 15px; }.offer-header p small { color: #849089; font-size: 10px; }
.availability { color: #6f7e76; font-size: 10px; }.availability i { background: #41a575; }.cabin-badge { padding: 9px 11px; color: white; background: var(--forest); font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.flight-grid { display: grid; grid-template-columns: 150px 1fr; border-bottom: 1px solid var(--line); }
.flight-label { padding: 22px 18px; background: #f7f7f2; border-bottom: 1px solid var(--line); }.flight-label:nth-last-of-type(-n+2) { border-bottom: 0; }
.flight-label span, .flight-label strong, .flight-label small { display: block; }.flight-label span { margin-bottom: 7px; color: var(--orange-deep); font-size: 9px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }.flight-label strong { margin-bottom: 5px; font-size: 14px; }.flight-label small { color: #89938e; font-size: 10px; }
.flight-route { padding: 20px 22px; display: grid; grid-template-columns: 95px 1fr 95px; align-items: center; border-bottom: 1px solid var(--line); }.flight-route:last-child { border-bottom: 0; }
.flight-route > div:first-child { text-align: left; }.flight-route > div:last-child { text-align: right; }.flight-route strong { display: block; font-size: 20px; }.flight-route strong sup { margin-left: 2px; color: var(--orange); font-size: 9px; }.flight-route span, .flight-route small { display: block; }.flight-route > div > span { color: #6f7c75; font-size: 10px; }.flight-route > div > small { margin-top: 3px; color: #9ba49f; font-size: 9px; font-weight: 900; }
.flight-line { text-align: center; }.flight-line span { margin-bottom: 8px; color: #56665e !important; font-size: 10px !important; }.flight-line i { height: 1px; display: block; background: #b7c1bb; position: relative; }.flight-line i::before, .flight-line i::after { content: ""; position: absolute; top: -3px; width: 7px; height: 7px; border: 1px solid #89978f; border-radius: 50%; background: white; }.flight-line i::before { left: 0; }.flight-line i::after { right: 0; }.flight-line small { margin-top: 8px !important; color: var(--orange-deep) !important; font-size: 9px; }
.stay-grid { display: grid; grid-template-columns: repeat(4,1fr); background: #fbfcf9; border-bottom: 1px solid var(--line); }.stay-grid div { padding: 18px; border-right: 1px solid var(--line); }.stay-grid div:last-child { border-right: 0; }.stay-grid small, .stay-grid strong, .stay-grid span { display: block; }.stay-grid small { margin-bottom: 8px; color: var(--orange-deep); font-size: 9px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }.stay-grid strong { margin-bottom: 5px; font-size: 13px; }.stay-grid span { color: #85908a; font-size: 9px; }
.offer-footer { padding: 20px; display: grid; grid-template-columns: 1fr auto auto; gap: 22px; align-items: center; }.benefit-list { display: flex; flex-wrap: wrap; gap: 8px 16px; color: #66746d; font-size: 10px; }.benefit-list span::first-letter { color: #3a9d70; }.price { min-width: 170px; text-align: right; }.price small, .price strong, .price span { display: block; }.price small { color: #8b9590; font-size: 9px; }.price strong { margin: 2px 0; font-size: 28px; }.price span { color: #65746c; font-size: 10px; }
.check-button { min-height: 60px; padding: 0 18px; display: flex; gap: 22px; align-items: center; color: white; border: 0; background: var(--orange); cursor: pointer; font-size: 12px; font-weight: 900; }.check-button span { font-size: 17px; }
.offer-results-more { margin-top: 8px; display: grid; gap: 10px; text-align: center; }
.offer-results-more > span { color: #36564b; font-size: 14px; line-height: 1.5; }
.load-more { width: 100%; min-height: 58px; color: white; border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.04); cursor: pointer; font-weight: 900; }
.load-more:hover,
.load-more:focus-visible { border-color: var(--orange); background: rgba(220,101,59,.13); }
.load-more span { margin-left: 10px; color: var(--mint-bright); }
.live-results-empty,
.live-results-error,
.live-results-loading {
  min-height: 260px;
  padding: 48px;
  display: grid;
  place-content: center;
  gap: 10px;
  text-align: center;
  color: var(--forest-deep);
  background: white;
  border-radius: 22px;
}
.live-results-empty strong,
.live-results-error strong,
.live-results-loading strong { font-family: "Tenor Sans", Georgia, serif; font-size: 29px; font-weight: 400; }
.live-results-empty span,
.live-results-error span,
.live-results-loading span { max-width: 560px; color: #6e7c74; font-size: 12px; line-height: 1.65; }
.live-results-loading::before {
  content: "";
  width: 30px;
  height: 30px;
  margin: 0 auto 8px;
  border: 3px solid rgba(18,62,49,.15);
  border-top-color: var(--orange);
  border-radius: 50%;
  animation: spin .8s linear infinite;
}
.offer-live-note { color: #3a7660; font-size: 10px; font-weight: 800; }
.hotel-page .result-filter-status { display: grid; gap: 8px; padding: 18px 20px; color: var(--forest-deep); background: #f0f3ef; border: 1px solid rgba(18,62,49,.14); border-radius: 14px; }
.hotel-page .result-filter-status strong { font-size: 16px; }
.hotel-page .result-filter-status span { font-size: 14px; line-height: 1.5; }
.hotel-page .result-filter-status.is-error { border-color: var(--orange-deep); }
.hotel-page .result-filter-status button { justify-self: start; max-width: 100%; min-height: 44px; padding: 10px 16px; border: 0; border-radius: 10px; color: white; background: var(--orange-deep); font: inherit; font-weight: 800; cursor: pointer; white-space: normal; }
.hotel-page .result-filter-status button:focus-visible { outline: 3px solid var(--forest-deep); outline-offset: 3px; }
.offer-card.is-hidden { display: none; }
.flight-route .flight-line span { line-height: 1.35; }
.hotel-only-message { padding: 24px; color: #5f6f67; border-bottom: 1px solid var(--line); background: #f7f7f2; font-size: 12px; line-height: 1.6; }
.verification-details { margin-top: 18px; padding: 16px; background: #f0f3ef; border-radius: 14px; font-size: 12px; line-height: 1.65; }
.availability-dialog.is-verified .dialog-process span { opacity: 1; }
.availability-dialog.is-verified .dialog-process i { background: #2a9d6f; }
.availability-dialog.is-failed .dialog-process span:last-child i { background: #b43d2a; }

.experience { padding-block: 120px 130px; }
.experience-grid { display: grid; grid-template-columns: 1.2fr .8fr; grid-template-rows: 360px 360px; gap: 16px; }
.experience-tile { position: relative; overflow: hidden; }.experience-tile.wide { grid-row: 1 / 3; }.experience-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(5,39,30,.82), transparent 62%); }.experience-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }.experience-tile:hover img { transform: scale(1.04); }.experience-tile div { position: absolute; z-index: 2; left: 30px; right: 30px; bottom: 28px; color: white; }.experience-tile span { color: var(--mint-bright); font-size: 9px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }.experience-tile h3 { margin: 8px 0; font-family: "Tenor Sans", Georgia, serif; font-size: 29px; }.experience-tile p { max-width: 520px; margin: 0; color: rgba(255,255,255,.75); font-size: 12px; line-height: 1.6; }

.advice-callout { padding: 95px 8vw; display: grid; grid-template-columns: 1.2fr .8fr; gap: 100px; align-items: end; color: white; background: var(--orange-deep); }
.advice-callout h2 { font-size: clamp(42px, 4.8vw, 72px); }.advice-callout > div:last-child p { margin: 0 0 26px; color: rgba(255,255,255,.75); font-size: 16px; line-height: 1.7; }.advice-callout a { display: flex; justify-content: space-between; padding: 18px 20px; color: var(--forest-deep); background: var(--mint-bright); font-weight: 900; }

.site-footer { min-height: 250px; padding: 65px 6vw 38px; display: grid; grid-template-columns: 1fr 1fr; align-content: start; gap: 22px 60px; background: var(--paper); }
.footer-brand .brand-wordmark { font-size: 34px; }.site-footer > p { margin: 10px 0 0; justify-self: end; color: var(--muted); }.site-footer nav { display: flex; gap: 26px; font-size: 12px; font-weight: 800; }.site-footer > small { justify-self: end; color: #9aa39e; }

dialog { padding: 0; border: 0; color: var(--forest-deep); box-shadow: 0 40px 100px rgba(0,0,0,.35); }
dialog::backdrop { background: rgba(4,30,23,.78); backdrop-filter: blur(6px); }
.availability-dialog { width: min(650px, calc(100% - 32px)); padding: 50px; }
.dialog-close { position: absolute; top: 13px; right: 16px; width: 36px; height: 36px; border: 0; background: var(--mint-soft); cursor: pointer; font-size: 22px; }
.dialog-kicker { color: var(--orange); font-size: 9px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.availability-dialog h2 { margin: 13px 0 10px; font-family: "Tenor Sans", Georgia, serif; font-size: 40px; }.dialog-offer { margin: 0; color: var(--muted); font-weight: 800; }.dialog-process { margin: 32px 0; display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }.dialog-process span { padding: 16px 8px; text-align: center; background: #f0f3ef; font-size: 10px; font-weight: 800; }.dialog-process i { width: 21px; height: 21px; margin: 0 auto 7px; display: grid; place-items: center; color: white; background: #9ba9a1; border-radius: 50%; font-style: normal; }.dialog-process .done i { background: var(--orange); }.availability-dialog > p:last-of-type { color: #64736b; font-size: 13px; line-height: 1.7; }.dialog-primary { width: 100%; min-height: 54px; margin-top: 10px; color: white; border: 0; background: var(--forest); cursor: pointer; font-weight: 900; }
.gallery-dialog { width: min(1100px, calc(100% - 32px)); padding: 28px; background: var(--paper); }.gallery-dialog-head { padding: 15px 10px 25px; }.gallery-dialog-head span { color: var(--orange); font-size: 9px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }.gallery-dialog-head h2 { margin: 8px 0 0; font-family: "Tenor Sans", Georgia, serif; font-size: 42px; }.dialog-gallery { display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; }.dialog-gallery img { height: 310px; object-fit: cover; }

@media (max-width: 1100px) {
  .site-header { grid-template-columns: 1fr auto; }.main-nav { display: none; }.header-cta { display: none; }.menu-toggle { justify-self: end; display: flex; width: 45px; height: 45px; padding: 12px; flex-direction: column; justify-content: center; gap: 5px; border: 1px solid var(--line); border-radius: 50%; background: transparent; }.menu-toggle span:not(.sr-only) { height: 2px; background: var(--forest); }.main-nav.is-open { position: absolute; top: 96px; left: 0; right: 0; padding: 24px; display: flex; flex-direction: column; background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: var(--shadow); }
  .hero-copy { bottom: 190px; }.hero-facts { left: 5vw; right: 5vw; width: auto; }
  .editorial { grid-template-columns: 1fr 1.2fr; }.experience-card { grid-column: 1 / 3; display: grid; grid-template-columns: .3fr .7fr 1fr; gap: 25px; }.experience-number { margin: 0; }.experience-card a { grid-column: 3; align-self: end; }
  .studio-fields { grid-template-columns: repeat(2,1fr); }.studio-submit { min-height: 84px; grid-column: 1 / 3; }
  .results-layout { grid-template-columns: 210px 1fr; }.offer-footer { grid-template-columns: 1fr auto; }.benefit-list { grid-column: 1 / 3; }.check-button { grid-column: 2; }
}

@media (max-width: 760px) {
  .section-shell { width: min(100% - 32px, 640px); }.concept-note { padding: 8px 16px; text-align: center; }.concept-note p { display: none; }
  .site-header { height: 82px; padding: 0 20px; }.brand-wordmark { font-size: 29px; }.main-nav.is-open { top: 82px; }
  .hotel-hero { min-height: 720px; }.hero-image { background-position: 58% center; }.hero-shade { background: linear-gradient(0deg, rgba(4,33,26,.88), rgba(4,33,26,.12) 73%); }.hero-topline { top: 22px; left: 20px; font-size: 9px; }.hero-copy { left: 20px; right: 20px; bottom: 215px; width: auto; }.hero-labels { margin-bottom: 18px; }.hero-copy h1 { font-size: 49px; line-height: .98; }.hero-intro { font-size: 15px; }.hero-actions { margin-top: 23px; }.primary-action, .ghost-action { min-height: 49px; padding: 0 15px; font-size: 11px; }.ghost-action { display: none; }.hero-facts { left: 16px; right: 16px; min-height: 150px; grid-template-columns: 1fr 1fr; }.hero-facts div { padding: 18px; }.hero-facts div:nth-child(3) { display: none; }
  .hotel-subnav { min-height: 58px; padding: 0 16px; justify-content: flex-start; gap: 22px; overflow-x: auto; }.hotel-subnav a { padding: 20px 0 16px; white-space: nowrap; font-size: 11px; }.hotel-subnav button { display: none; }
  .editorial { padding-block: 80px 70px; grid-template-columns: 1fr; gap: 38px; }.editorial h2, .section-heading h2, .offers-intro h2, .advice-callout h2 { font-size: 44px; }.editorial-copy .lead { font-size: 17px; }.editorial-copy blockquote { font-size: 21px; }.experience-card { grid-column: auto; display: block; }.experience-number { margin-bottom: 36px; }.experience-card a { margin-top: 24px; }
  .image-story { width: 100%; height: 620px; grid-template-columns: 1fr 1fr; grid-template-rows: 1.35fr .65fr; gap: 4px; }.image-story .image-main { grid-column: 1 / 3; grid-row: 1; }.gallery-more { width: 84px; height: 84px; right: 17px; bottom: 17px; }
  .signature-strip { margin-top: 70px; padding: 35px 20px; grid-template-columns: 1fr 1fr; gap: 0; }.signature-strip div { padding: 20px 13px; border-bottom: 1px solid rgba(255,255,255,.12); }.signature-strip div:nth-child(2) { border-right: 0; }.signature-strip span { margin-bottom: 13px; }.signature-strip strong { font-size: 20px; }
  .villas, .experience { padding-block: 80px; }.section-heading { margin-bottom: 35px; grid-template-columns: 1fr; gap: 20px; }.villa-grid { grid-template-columns: 1fr; }.villa-image { height: 280px; }
  .offers { padding-block: 80px; }.offers-intro { grid-template-columns: 1fr; gap: 25px; }.search-studio { width: calc(100% - 20px); margin-top: 40px; }.studio-head { padding: 20px; }.studio-head strong { font-size: 16px; }.travel-modes { padding: 0 18px; }.studio-fields { padding: 14px; grid-template-columns: 1fr; }.studio-submit { min-height: 74px; grid-column: auto; }.studio-field { min-height: 86px; }.live-search-note { margin: 0 14px 14px; }.results-layout { width: calc(100% - 20px); grid-template-columns: 1fr; }.filters { position: static; }.filters fieldset { display: none; }.filter-title { border-bottom: 0; }.results-toolbar { align-items: flex-start; gap: 10px; }.results-toolbar label { text-align: right; }.results-toolbar select { width: 150px; margin: 5px 0 0; }
  .offer-ribbon { left: 0; right: auto; }.offer-header { padding-top: 43px; }.availability { display: none; }.flight-grid { grid-template-columns: 1fr; }.flight-label { padding: 14px 16px; border-bottom: 0; }.flight-route { padding: 17px 15px; grid-template-columns: 70px 1fr 70px; }.stay-grid { grid-template-columns: 1fr 1fr; }.stay-grid div:nth-child(2) { border-right: 0; }.stay-grid div { border-bottom: 1px solid var(--line); }.offer-footer { padding: 17px; grid-template-columns: 1fr; gap: 16px; }.benefit-list { grid-column: auto; }.price { text-align: left; }.check-button { grid-column: auto; justify-content: space-between; }
  .experience-grid { grid-template-columns: 1fr; grid-template-rows: repeat(3, 350px); }.experience-tile.wide { grid-row: auto; }
  .advice-callout { padding: 70px 22px; grid-template-columns: 1fr; gap: 35px; }.site-footer { padding: 55px 22px 30px; grid-template-columns: 1fr; }.site-footer > p, .site-footer > small { justify-self: start; }.site-footer nav { flex-wrap: wrap; }
  .availability-dialog { padding: 42px 24px 25px; }.availability-dialog h2 { font-size: 31px; }.dialog-process { grid-template-columns: 1fr; }.dialog-gallery { grid-template-columns: 1fr; }.dialog-gallery img { height: 230px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Refined hotel concept: mosaic entry, editorial catalogue content and soft cards */
.hotel-hero-mosaic {
  width: min(1420px, calc(100% - 48px));
  min-height: 0;
  margin: 28px auto 20px;
  display: grid;
  grid-template-columns: minmax(400px, .82fr) minmax(0, 1.38fr);
  color: white;
  background: var(--forest-deep);
  border-radius: 34px;
  box-shadow: 0 28px 75px rgba(7, 39, 29, .18);
  overflow: hidden;
}
.hero-copy-panel {
  min-height: 620px;
  padding: 36px 48px 46px;
  display: flex;
  flex-direction: column;
  background:
    radial-gradient(circle at 0 100%, rgba(201,230,209,.12), transparent 38%),
    var(--forest-deep);
}
.hotel-hero-mosaic .hero-topline {
  position: static;
  display: flex;
  gap: 9px;
  font-size: 10px;
  opacity: .76;
}
.hotel-hero-mosaic .hero-copy {
  position: static;
  width: auto;
  margin-top: 34px;
  margin-bottom: 0;
  min-height: 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}
.hotel-hero-mosaic .hero-labels span { border-radius: 999px; }
.hotel-hero-mosaic .hero-copy h1 {
  --hero-title-size: clamp(54px, 5.3vw, 86px);
  max-width: 580px;
  margin-bottom: 20px;
  font-size: var(--hero-title-size);
  line-height: .94;
}
.hotel-title-line {
  display: block;
}
.hotel-hero-mosaic .hero-copy h1.hotel-title--long {
  --hero-title-size: clamp(38px, 3.6vw, 56px);
  font-size: var(--hero-title-size) !important;
  line-height: .98 !important;
}
.hotel-title-final-line {
  display: inline-flex;
  max-width: 100%;
  align-items: baseline;
  white-space: nowrap;
}
.hotel-stars {
  display: inline-flex;
  align-items: center;
  width: max-content;
  max-width: 100%;
  margin: 0 0 0 10px;
  position: relative;
  top: calc(var(--hero-title-size) * -0.48);
  vertical-align: baseline;
  color: #e4c391;
  font-family: Arial, sans-serif;
  font-size: clamp(13px, 1.1vw, 17px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: .14em;
  white-space: nowrap;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .18);
}
.hotel-hero-mosaic .hero-intro { max-width: 520px; font-size: 17px; }
.hotel-hero-mosaic .primary-action,
.hotel-hero-mosaic .ghost-action { border-radius: 999px; }
.hotel-hero-mosaic .hero-actions {
  max-width: 100%;
  margin-top: auto;
  padding-top: 24px;
  flex-wrap: wrap;
  align-items: stretch;
}
.hotel-hero-mosaic .hero-actions > * {
  max-width: 100%;
  box-sizing: border-box;
}
.hotel-hero-mosaic .hotel-dna-trigger {
  flex: 0 0 auto;
}
/* Shared optional resort-map access uses the existing hero caption chip. */
.hotel-hero-mosaic .hotel-hero-map {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  box-sizing: border-box;
  padding: 8px 10px;
  margin: -8px -10px;
  min-height: 44px;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
}
.hotel-hero-mosaic .hotel-hero-map:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 5px;
}
@media (max-width: 760px) {
  .hotel-hero-mosaic .hero-gallery-main figcaption:has(.hotel-hero-map) {
    top: 14px;
    bottom: auto;
  }
}
.hero-gallery-grid {
  min-height: 620px;
  padding: 8px;
  display: grid;
  grid-template-columns: minmax(0, 1.8fr) minmax(150px, .7fr);
  grid-template-rows: repeat(3, 1fr);
  gap: 8px;
  background: var(--paper);
  position: relative;
}
.hero-gallery-grid figure {
  min-width: 0;
  min-height: 0;
  margin: 0;
  border-radius: 18px;
  overflow: hidden;
  position: relative;
}
.hero-gallery-grid .hero-gallery-main { grid-row: 1 / 4; }
.hero-gallery-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s ease; }
.hero-gallery-grid figure:hover img { transform: scale(1.025); }
.hero-gallery-main figcaption {
  position: absolute;
  left: 22px;
  bottom: 20px;
  padding: 9px 13px;
  color: white;
  background: rgba(7,39,29,.68);
  border-radius: 999px;
  backdrop-filter: blur(8px);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* Hotel hero images no longer carry decorative text labels. Functional
   utilities, such as a resort-map control, remain available explicitly. */
.hotel-page .hero-gallery-main > figcaption:not(.hero-gallery-utility) {
  display: none;
}
.hero-gallery-button {
  position: absolute;
  right: 26px;
  bottom: 26px;
  z-index: 3;
  min-width: 165px;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--forest-deep);
  border: 0;
  border-radius: 999px;
  background: var(--mint-bright);
  box-shadow: 0 14px 32px rgba(0,0,0,.18);
  cursor: pointer;
}
.hero-gallery-button strong { font-size: 18px; }
.hero-gallery-button span { font-size: 10px; font-weight: 900; }
.hotel-hero-mosaic .hero-facts {
  position: static;
  grid-column: 1 / -1;
  width: auto;
  min-height: 118px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  color: var(--forest-deep);
  background: var(--cream);
  border-top: 0;
  box-shadow: none;
}
.hotel-hero-mosaic .hero-facts div { padding: 25px 34px; }

/* Binding hotel-page geometry: every desktop hero uses the same 643 + 118 px composition. */
@media (min-width: 1101px) {
  .hotel-hero-mosaic {
    height: calc(var(--hotel-hero-main-height) + var(--hotel-hero-facts-height));
    grid-template-columns: minmax(520px, .9fr) minmax(0, 1.3fr);
    grid-template-rows: var(--hotel-hero-main-height) var(--hotel-hero-facts-height);
  }
  .hero-copy-panel,
  .hero-gallery-grid {
    min-height: var(--hotel-hero-main-height);
    height: var(--hotel-hero-main-height);
    max-height: var(--hotel-hero-main-height);
  }
  .hero-copy-panel { padding: 28px 36px 30px; }
  .hotel-hero-mosaic .hero-copy { min-height: 0; margin-top: 28px; margin-bottom: 0; }
  .hotel-hero-mosaic .hero-labels { margin-bottom: 13px; }
  .hotel-hero-mosaic .hero-labels span { padding: 7px 10px; font-size: 9px; }
  .hotel-hero-mosaic .eyebrow { margin-bottom: 12px; font-size: 10px; }
  .hotel-hero-mosaic .hero-copy h1 {
    max-width: 100%;
    margin-bottom: 14px;
    font-size: clamp(52px, 4.2vw, 70px);
    line-height: .92;
  }
  .hotel-hero-mosaic .hero-intro { max-width: 100%; font-size: 15px; line-height: 1.45; }
  .hotel-hero-mosaic .hero-actions { gap: 8px; margin-top: auto; padding-top: 16px; }
  .hotel-hero-mosaic .primary-action,
  .hotel-hero-mosaic .ghost-action { min-height: 48px; padding: 0 16px; gap: 16px; font-size: 12px; }
  .hotel-hero-mosaic .hotel-dna-trigger { min-height: 48px; padding: 5px 12px 5px 5px; gap: 8px; }
  .hotel-hero-mosaic .hotel-dna-trigger > span:first-child { width: 37px; height: 37px; flex-basis: 37px; font-size: 9px; }
  .hotel-hero-mosaic .hotel-dna-trigger strong { font-size: 11px; }
  .hotel-hero-mosaic .hotel-dna-trigger small { font-size: 7px; }
  .hotel-hero-mosaic .hero-facts {
    min-height: var(--hotel-hero-facts-height);
    height: var(--hotel-hero-facts-height);
    max-height: var(--hotel-hero-facts-height);
  }
  .hotel-hero-mosaic .hero-facts div { min-width: 0; padding: 23px 30px; }
  .hero-gallery-grid img { display: block; min-width: 0; min-height: 0; }
  .nalu-page .nalu-official-logo,
  .koia-page .koia-official-logo,
  .tulua-page .tulua-official-logo,
  .jaz-riviera-page .jaz-riviera-official-logo {
    max-height: 68px;
    margin-bottom: 12px;
  }
}

.hotel-subnav {
  width: min(1320px, calc(100% - 80px));
  min-height: 66px;
  margin: 0 auto;
  padding: 0 26px;
  border: 1px solid var(--line);
  border-radius: 19px;
  box-shadow: 0 13px 35px rgba(13,51,40,.07);
  top: 10px;
}
.hotel-subnav a { padding: 23px 0 19px; }

.experience-card,
.villa-card,
.search-studio,
.filters,
.offer-card,
.experience-tile,
.advice-callout,
.availability-dialog,
.gallery-dialog { border-radius: 28px; }
.experience-card,
.villa-card,
.search-studio,
.filters,
.offer-card,
.experience-tile,
.advice-callout { overflow: hidden; }
.image-story figure { border-radius: 24px; }
.signature-strip {
  width: min(1420px, calc(100% - 48px));
  margin: 110px auto 0;
  border-radius: 30px;
}
.villa-image { border-radius: 24px 24px 0 0; }
.villa-image > span,
.villa-image b { border-radius: 999px; }
.villa-content ul { border-radius: 16px; }

.hotel-details { padding-block: 30px 120px; }
.detail-heading { padding-top: 78px; border-top: 1px solid var(--line); }
.detail-intro-card {
  margin-bottom: 20px;
  padding: 48px;
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: 80px;
  color: white;
  background: var(--forest);
  border-radius: 30px;
  box-shadow: var(--shadow);
}
.detail-index {
  display: block;
  margin-bottom: 17px;
  color: var(--orange);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.detail-intro-card .detail-index { color: var(--mint-bright); }
.detail-intro-card h3,
.detail-card h3,
.board-story h3,
.important-notes h3,
.villa-catalogue h3 {
  font-family: "Tenor Sans", Georgia, serif;
  font-weight: 400;
}
.detail-intro-card h3 { max-width: 430px; margin: 0; font-size: 42px; line-height: 1.12; }
.detail-prose { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.detail-prose p { margin: 0; color: rgba(255,255,255,.76); font-size: 14px; line-height: 1.82; }
.detail-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.detail-card {
  min-height: 360px;
  padding: 34px;
  background: white;
  border: 1px solid rgba(18,62,49,.08);
  border-radius: 26px;
  box-shadow: 0 17px 46px rgba(13,51,40,.06);
}
.detail-card h3 { margin-bottom: 22px; font-size: 30px; line-height: 1.18; }
.detail-card p { margin: 0; color: #5b6b64; font-size: 13px; line-height: 1.82; }
.accent-card { background: var(--mint-soft); }
.activity-card { background: var(--cream); }
.deep-green-card { color: white; background: var(--forest-deep); }
.deep-green-card .detail-index { color: var(--mint-bright); }
.deep-green-card p { color: rgba(255,255,255,.68); }

.board-story {
  margin-top: 20px;
  padding: 50px;
  color: var(--forest-deep);
  background: #f1dfcd;
  border-radius: 30px;
  overflow: hidden;
  position: relative;
}
.board-story::after {
  content: "";
  position: absolute;
  width: 360px;
  height: 360px;
  right: -170px;
  top: -180px;
  border: 65px solid rgba(182,75,37,.08);
  border-radius: 50%;
}
.board-story header { display: grid; grid-template-columns: .85fr 1.15fr; gap: 90px; align-items: end; }
.board-story h3 { margin: 0; font-size: 45px; line-height: 1.08; }
.board-story header > p { margin: 0; color: #6f5d50; font-size: 15px; line-height: 1.75; }
.board-story-grid { margin-top: 42px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.board-story-grid > div { padding: 26px; background: rgba(255,255,255,.6); border-radius: 22px; }
.board-story-grid span { color: var(--orange-deep); font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.board-story-grid p { margin: 14px 0 0; color: #5f5a51; font-size: 12px; line-height: 1.8; }
.important-notes { margin-top: 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.important-notes article { padding: 36px; background: white; border: 1px solid var(--line); border-radius: 26px; }
.important-notes article:first-child { border-left: 5px solid var(--orange); }
.important-notes span { color: var(--orange-deep); font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.important-notes h3 { margin: 13px 0 17px; font-size: 29px; }
.important-notes p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.75; }

.villa-catalogue { margin-top: 90px; }
.villa-catalogue > header { margin-bottom: 34px; display: grid; grid-template-columns: .85fr 1.15fr; gap: 85px; align-items: end; }
.villa-catalogue h3 { margin: 0; font-size: 45px; line-height: 1.08; }
.villa-catalogue > header > p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.8; }
.island-villa-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.island-villa-card { padding: 35px; background: white; border: 1px solid var(--line); border-radius: 28px; box-shadow: 0 18px 50px rgba(13,51,40,.06); }
.island-villa-card.dheru-card { background: var(--mint-soft); }
.island-villa-title { margin-bottom: 16px; padding-bottom: 24px; display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); }
.island-villa-title span { font-family: "Tenor Sans", Georgia, serif; font-size: 28px; }
.island-villa-title strong { padding: 8px 11px; color: var(--forest); background: var(--mint); border-radius: 999px; font-size: 10px; }
.villa-detail-row { padding: 24px 0; display: grid; grid-template-columns: .82fr 1.18fr; gap: 26px; border-bottom: 1px solid var(--line); }
.villa-detail-row:last-child { padding-bottom: 0; border-bottom: 0; }
.villa-detail-row h4 { margin: 0 0 7px; font-size: 15px; }
.villa-detail-row div > span { color: var(--orange-deep); font-size: 9px; font-weight: 900; letter-spacing: .06em; }
.villa-detail-row p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.68; }

.search-studio { border-top: 0; box-shadow: 0 30px 70px rgba(0, 0, 0, .28); }
.offers::before { pointer-events: none; }
.offers > * { position: relative; z-index: 1; }
.studio-field,
.studio-submit { border-radius: 18px; }
.studio-field { transition: transform .2s ease, box-shadow .2s ease; }
.studio-field:hover { transform: translateY(-2px); box-shadow: 0 12px 25px rgba(18,62,49,.1); }
.travel-modes button { border-radius: 12px 12px 0 0; }
.connector-possibilities {
  margin-top: 28px;
  padding: 34px;
  color: white;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 28px;
  background: rgba(255,255,255,.045);
}
.connector-possibilities > header { display: grid; grid-template-columns: .72fr 1.28fr; gap: 70px; align-items: end; }
.connector-possibilities header small { color: var(--mint-bright); font-size: 9px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.connector-possibilities h3 { margin: 10px 0 0; font-family: "Tenor Sans", Georgia, serif; font-size: 38px; }
.connector-possibilities header p { margin: 0; color: rgba(255,255,255,.64); font-size: 13px; line-height: 1.75; }
.connector-lanes { margin-top: 28px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.connector-lanes article { padding: 24px; color: var(--forest-deep); background: white; border-radius: 22px; }
.connector-lanes h4 { margin: 16px 0; font-size: 16px; }
.lane-status { display: inline-flex; padding: 7px 10px; border-radius: 999px; font-size: 8px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.lane-status.direct { background: var(--mint); }
.lane-status.response { background: #f1dfcd; }
.lane-status.verify { color: white; background: var(--orange); }
.capability-cloud { display: flex; flex-wrap: wrap; gap: 7px; }
.capability-cloud span { padding: 8px 9px; color: #607068; background: #f2f4ef; border-radius: 999px; font-size: 9px; font-weight: 800; }
.connector-possibilities > footer { margin-top: 18px; padding: 16px 18px; display: flex; gap: 8px; color: rgba(255,255,255,.66); background: rgba(0,0,0,.12); border-radius: 16px; font-size: 11px; }
.connector-possibilities > footer strong { color: var(--mint-bright); }
.filter-title button,
.results-toolbar select,
.active-filters button,
.check-button,
.load-more { border-radius: 14px; }
.filters { top: 88px; }
.filters fieldset:last-child { border-bottom: 0; }
.offer-ribbon { top: 0; right: 0; border-radius: 0 0 0 14px; }
.operator-mark { border-radius: 14px; }
.check-button { border-radius: 16px; }
.load-more { border-radius: 18px; }
.experience-tile img { border-radius: 28px; }
.advice-callout { width: min(1420px, calc(100% - 48px)); margin: 0 auto 48px; }
dialog,
.dialog-close,
.dialog-process span,
.dialog-primary,
.dialog-gallery img { border-radius: 18px; }

@media (max-width: 1100px) {
  .hotel-hero-mosaic { grid-template-columns: minmax(340px, .9fr) minmax(0, 1.1fr); }
  .hero-copy-panel { min-height: 580px; padding: 34px; }
  .hero-gallery-grid { min-height: 580px; grid-template-columns: minmax(0, 1.45fr) minmax(130px, .75fr); }
  .hotel-hero-mosaic .hero-facts { grid-template-columns: 1fr 1fr; }
  .hotel-hero-mosaic .hero-facts div:nth-child(2) { border-right: 0; }
  .hotel-hero-mosaic .hero-facts div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .detail-card-grid { grid-template-columns: 1fr 1fr; }
  .detail-intro-card,
  .board-story header,
  .villa-catalogue > header { gap: 45px; }
  .board-story-grid { grid-template-columns: 1fr; }
  .island-villa-grid { grid-template-columns: 1fr; }
  .connector-lanes { grid-template-columns: 1fr; }
  .connector-lanes article { display: grid; grid-template-columns: 180px 210px 1fr; align-items: start; gap: 12px; }
  .connector-lanes h4 { margin: 4px 0 0; }
}

@media (max-width: 760px) {
  .hotel-hero-mosaic {
    width: calc(100% - 20px);
    margin: 10px auto 16px;
    grid-template-columns: 1fr;
    border-radius: 26px;
  }
  .hero-gallery-grid {
    order: 1;
    min-height: 390px;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: 2.5fr 1fr;
  }
  .hero-gallery-grid .hero-gallery-main { grid-column: 1 / 4; grid-row: 1; }
  .hero-gallery-grid figure:not(.hero-gallery-main) { grid-row: 2; }
  .hero-gallery-button { right: 16px; bottom: 114px; min-width: 142px; padding: 11px 14px; }
  .hero-gallery-main figcaption { left: 14px; bottom: 13px; }
  .hero-copy-panel {
    order: 2;
    min-height: var(--hotel-hero-mobile-copy-height);
    height: var(--hotel-hero-mobile-copy-height);
    max-height: var(--hotel-hero-mobile-copy-height);
    padding: 24px 22px 28px;
  }
  .hotel-hero-mosaic .hero-copy { margin-top: 28px; }
  .hotel-hero-mosaic .hero-copy h1 { --hero-title-size: 45px; margin-bottom: 14px; font-size: var(--hero-title-size); }
  .hotel-stars {
    position: relative;
    margin: 0 0 0 6px;
    display: inline-flex;
    vertical-align: baseline;
    font-size: 12px;
    letter-spacing: .1em;
  }
  .hotel-hero-mosaic .hero-copy h1.hotel-title--long { --hero-title-size: clamp(28px, 7.8vw, 38px); }
  .hotel-hero-mosaic .hero-labels { margin-bottom: 14px; }
  .hotel-hero-mosaic .hero-labels span { padding: 7px 9px; font-size: 8px; }
  .hotel-hero-mosaic .eyebrow { margin-bottom: 12px; font-size: 10px; }
  .hotel-hero-mosaic .hero-intro { font-size: 14px; line-height: 1.45; }
  .hotel-hero-mosaic .hero-topline { font-size: 8px; }
  .hotel-hero-mosaic .hero-actions {
    margin-top: auto;
    padding-top: 17px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  .hotel-hero-mosaic .hero-actions > * { width: 100%; min-width: 0; min-height: 49px; padding-inline: 11px; gap: 8px; justify-content: space-between; font-size: 10px; }
  .hotel-hero-mosaic .ghost-action { display: inline-flex; }
  .tulua-page .hotel-hero-mosaic .hero-actions .ghost-action { display: none; }
  .hotel-hero-mosaic .hotel-dna-trigger { padding: 5px 8px 5px 5px; }
  .hotel-hero-mosaic .hotel-dna-trigger > span:first-child { width: 35px; height: 35px; flex-basis: 35px; }
  .hotel-hero-mosaic .hero-facts {
    order: 3;
    position: static;
    min-height: var(--hotel-hero-mobile-facts-height);
    height: var(--hotel-hero-mobile-facts-height);
    max-height: var(--hotel-hero-mobile-facts-height);
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(2, 1fr);
  }
  .hotel-hero-mosaic .hero-facts div { display: block; min-width: 0; padding: 14px 16px; }
  .hotel-hero-mosaic .hero-facts small { margin-bottom: 6px; font-size: 8px; }
  .hotel-hero-mosaic .hero-facts strong { margin-bottom: 4px; font-size: 15px; line-height: 1.2; }
  .hotel-hero-mosaic .hero-facts span { font-size: 10px; line-height: 1.3; }
  .hotel-hero-mosaic .hero-facts div:nth-child(2n) { border-right: 0; }
  .hotel-subnav { width: calc(100% - 20px); min-height: 56px; padding: 0 14px; border-radius: 16px; gap: 22px; }
  .hotel-subnav a { padding: 19px 0 15px; }
  .hotel-details { padding-block: 10px 80px; }
  .detail-heading { padding-top: 55px; }
  .detail-intro-card { padding: 28px; grid-template-columns: 1fr; gap: 26px; border-radius: 24px; }
  .detail-intro-card h3 { font-size: 34px; }
  .detail-prose { grid-template-columns: 1fr; gap: 14px; }
  .detail-card-grid { grid-template-columns: 1fr; }
  .detail-card { min-height: 0; padding: 28px; }
  .detail-card h3 { font-size: 28px; }
  .board-story { padding: 30px 22px; border-radius: 24px; }
  .board-story header,
  .villa-catalogue > header { grid-template-columns: 1fr; gap: 24px; }
  .board-story h3,
  .villa-catalogue h3 { font-size: 37px; }
  .board-story-grid { margin-top: 28px; }
  .board-story-grid > div { padding: 22px; }
  .important-notes { grid-template-columns: 1fr; }
  .important-notes article { padding: 28px; }
  .image-story figure { border-radius: 18px; }
  .signature-strip { width: calc(100% - 20px); margin-top: 65px; border-radius: 24px; }
  .villa-card { border-radius: 24px; }
  .villa-catalogue { margin-top: 70px; }
  .island-villa-card { padding: 24px; border-radius: 24px; }
  .villa-detail-row { grid-template-columns: 1fr; gap: 10px; }
  .island-villa-title { align-items: center; }
  .island-villa-title span { font-size: 25px; }
  .search-studio { border-radius: 24px; }
  .connector-possibilities { width: calc(100% - 20px); padding: 24px; border-radius: 24px; }
  .connector-possibilities > header { grid-template-columns: 1fr; gap: 18px; }
  .connector-possibilities h3 { font-size: 32px; }
  .connector-lanes article { display: block; padding: 20px; }
  .connector-lanes h4 { margin: 15px 0; }
  .connector-possibilities > footer { display: block; line-height: 1.55; }
  .connector-possibilities > footer strong { display: block; margin-bottom: 5px; }
  .filters,
  .offer-card { border-radius: 22px; }
  .experience-tile,
  .experience-tile img { border-radius: 22px; }
  .advice-callout { width: calc(100% - 20px); margin-bottom: 20px; border-radius: 24px; }
}

/* Compact mobile gallery trigger: keep the established image geometry while
   centering a light glass control over the final preview tile. */
@media (max-width: 760px) {
  .hotel-page .hero-gallery-all {
    min-height: 44px;
    padding: 7px 9px 7px 12px;
    top: 50%;
    right: auto;
    bottom: auto;
    left: 50%;
    gap: 6px;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .7);
    background: rgba(18, 57, 47, .7);
    box-shadow: 0 8px 22px rgba(8, 30, 24, .22);
    backdrop-filter: blur(9px) saturate(1.08);
    -webkit-backdrop-filter: blur(9px) saturate(1.08);
    transform: translate(-50%, -50%);
    font-size: 12px !important;
    line-height: 1;
    white-space: nowrap;
  }
  .hotel-page .hero-gallery-all b {
    min-width: 20px;
    width: 20px;
    height: 20px;
    color: #fff;
    background: rgba(255, 255, 255, .18);
    font-size: 9px;
  }
  .hotel-page .hero-gallery-all i { display: none; }
  .hotel-page .hero-gallery-all:hover { transform: translate(-50%, -50%); }
}

/* Feedback refinement: persistent navigation, larger headings and no decorative numbering */
.site-header {
  position: sticky;
  top: 0;
  z-index: 90;
  box-shadow: 0 10px 28px rgba(13,51,40,.06);
}
.hotel-subnav {
  top: 106px;
  z-index: 80;
}
#overview,
#details,
#villas,
#offers,
#experience { scroll-margin-top: 190px; }
.signature-strip { margin-top: 0; }
.signature-strip div { display: flex; min-height: 105px; flex-direction: column; justify-content: center; }
.signature-strip span { display: none; }

.detail-index {
  margin-bottom: 18px;
  font-size: 15px;
  letter-spacing: .1em;
}
.detail-card h3 { font-size: 35px; line-height: 1.13; }
.detail-intro-card h3 { font-size: 46px; }
.board-story h3 { font-size: 49px; }
.important-notes h3 { font-size: 33px; }
.villa-catalogue h3 { font-size: 49px; }
.villa-content h3 { font-size: 34px; }
.villa-content > .villa-description {
  margin: -4px 0 22px;
  color: #607068;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.72;
  text-transform: none;
}
.villa-detail-row h4 { font-size: 18px; line-height: 1.35; }
.island-villa-title span { font-size: 31px; }

.restaurant-showcase {
  margin-top: 42px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  position: relative;
  z-index: 1;
}
.restaurant-showcase article {
  min-height: 215px;
  padding: 25px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(182,75,37,.08);
  border-radius: 22px;
}
.restaurant-showcase span {
  color: var(--orange-deep);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.restaurant-showcase h4 {
  margin: 18px 0 12px;
  font-family: "Tenor Sans", Georgia, serif;
  font-size: 25px;
  font-weight: 400;
}
.restaurant-showcase p { margin: 0; color: #645d53; font-size: 12px; line-height: 1.7; }
.board-story-grid span { font-size: 12px; }
.connector-lanes h4 { font-size: 19px; }
.studio-field span { font-size: 11px; }
.studio-field strong { font-size: 16px; }
.filters legend { font-size: 13px; }
.offer-header p strong { font-size: 17px; }
.flight-label strong { font-size: 16px; }
.stay-grid strong { font-size: 14px; }
.experience-tile h3 { font-size: 33px; }

@media (max-width: 1100px) {
  .restaurant-showcase { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
  .hotel-subnav { top: 90px; }
  #overview,
  #details,
  #villas,
  #offers,
  #experience { scroll-margin-top: 155px; }
  .detail-index { font-size: 14px; }
  .detail-card h3 { font-size: 32px; }
  .detail-intro-card h3 { font-size: 37px; }
  .board-story h3,
  .villa-catalogue h3 { font-size: 40px; }
  .restaurant-showcase { grid-template-columns: 1fr; }
  .restaurant-showcase article { min-height: 0; }
  .villa-content h3 { font-size: 32px; }
  .hero-gallery-button { min-width: 0; }
  .hero-gallery-button strong { font-size: 13px; }
  .hero-gallery-button span { display: none; }
}

/* Nalu Resort & Spa: Mediterranean interpretation of the Holidaylifestyle system */
.nalu-page {
  --nalu-sea: #2d7777;
  --nalu-sand: #ead9c6;
  --nalu-sun: #d46d3d;
  background: #f7f4ed;
}
.nalu-page .hero-copy-panel {
  background:
    radial-gradient(circle at 92% 12%, rgba(143, 218, 190, .16), transparent 34%),
    linear-gradient(145deg, #103c35 0%, #174b43 100%);
}
.nalu-page .hotel-hero-mosaic {
  background: var(--nalu-sand);
  box-shadow: 0 28px 75px rgba(18, 62, 49, .13);
}
.nalu-page .hero-gallery-grid img { filter: saturate(.92) contrast(1.02); }
.nalu-page .hero-gallery-main figcaption { background: rgba(18, 62, 49, .9); }
.nalu-page .nalu-official-logo {
  width: min(190px, 46%);
  max-height: 94px;
  margin: 0 0 18px;
  display: block;
  object-fit: contain;
  object-position: left center;
  cursor: default !important;
}

/* KOIA All-Suite Wellbeing Resort */
.koia-page {
  --koia-stone: #d5c7b3;
  --koia-sea: #5f929b;
  --koia-earth: #b6684d;
  background: #f5f1e9;
}
.koia-page .hero-copy-panel {
  background:
    radial-gradient(circle at 92% 12%, rgba(95, 146, 155, .16), transparent 34%),
    linear-gradient(145deg, #173c35 0%, #244b42 100%);
}
.koia-page .hotel-hero-mosaic {
  background: var(--koia-stone);
  box-shadow: 0 28px 75px rgba(24, 56, 49, .14);
}
.koia-page .hero-gallery-grid img { filter: saturate(.9) contrast(1.02); }
.koia-page .hero-gallery-main figcaption { background: rgba(24, 56, 49, .9); }
.koia-page .koia-official-logo {
  width: min(255px, 58%);
  max-height: 106px;
  margin: 0 0 18px;
  display: block;
  object-fit: contain;
  object-position: left center;
  cursor: default !important;
}
.koia-page .experience-card,
.koia-page .detail-intro-card {
  background:
    radial-gradient(circle at 100% 0, rgba(95, 146, 155, .14), transparent 36%),
    linear-gradient(145deg, #173c35, #244b42);
}
.koia-page .hero-labels span:first-child { background: #e8decf; color: #173c35; }
.koia-page .hero-labels .outline { background: rgba(255,255,255,.04); color: #f7eee2; border-color: rgba(213,199,179,.62); }
.koia-page .tulua-media-tabs button.is-active,
.koia-page .tulua-catalogue-tabs button.is-active,
.koia-page .tulua-media-categories button.is-active { box-shadow: inset 0 -3px 0 var(--koia-earth); }

@media (max-width: 760px) {
  .koia-page .koia-official-logo { width: 170px; max-height: 68px; margin-bottom: 12px; }
}
.nalu-page .experience-card {
  background:
    radial-gradient(circle at 100% 0, rgba(143, 218, 190, .15), transparent 34%),
    linear-gradient(145deg, #103c35, #184f46);
}
.nalu-page .detail-intro-card {
  background:
    radial-gradient(circle at 92% 14%, rgba(212, 109, 61, .15), transparent 31%),
    linear-gradient(145deg, #103c35, #174b43);
}
.nalu-page .board-story { background: #eadcca; }
.nalu-page .restaurant-showcase.nalu-dining { grid-template-columns: repeat(3, 1fr); }
.nalu-page .restaurant-showcase.nalu-dining article { min-height: 255px; }
.nalu-page .signature-strip {
  background:
    radial-gradient(circle at 15% 130%, rgba(143, 218, 190, .2), transparent 34%),
    #123e35;
}
.nalu-page .villa-card.featured { border-color: rgba(212, 109, 61, .35); }
.nalu-page .villa-card.featured .villa-image b { background: var(--nalu-sun); }
.nalu-page .island-villa-card.dheru-card { background: #eaf3ea; }
.nalu-page .offers { background: #123e35; }
.nalu-page .operator-mark { min-width: 46px; padding-inline: 7px; }
.offer-meta-actions { justify-content: flex-end; flex-wrap: wrap; }
.catalogue-trigger {
  min-height: 38px;
  padding: 0 14px;
  color: var(--forest);
  border: 1px solid rgba(17, 63, 50, .2);
  border-radius: 12px;
  background: #eef6ec;
  cursor: pointer;
  font: inherit;
  font-size: 10px;
  font-weight: 900;
}
.catalogue-trigger:hover { border-color: var(--orange); }
.catalogue-dialog {
  width: min(700px, calc(100% - 32px));
  padding: 50px;
  border-radius: 28px;
  overflow-x: hidden;
}
.catalogue-dialog h2 {
  margin: 13px 0 8px;
  font-family: "Tenor Sans", Georgia, serif;
  font-size: 40px;
}
.catalogue-operator { margin: 0; color: var(--orange-deep); font-size: 13px; font-weight: 900; }
.catalogue-source-box {
  margin: 30px 0 20px;
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--mint-soft);
}
.catalogue-source-box strong { font-size: 15px; }
.catalogue-source-box p,
.catalogue-disclaimer { color: var(--muted); font-size: 13px; line-height: 1.7; }
.catalogue-source-box p { margin: 10px 0 0; }
.catalogue-disclaimer { margin: 0; }
.catalogue-legal {
  margin: 0 0 20px;
  padding: 0 20px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fffaf4;
}
.catalogue-legal summary {
  padding: 17px 0;
  color: var(--forest);
  cursor: pointer;
  font-size: 13px;
  font-weight: 800;
}
.catalogue-legal p { margin: 0 0 18px; color: var(--muted); font-size: 12px; line-height: 1.7; }
.gallery-dialog-heading { padding: 15px 10px 25px; }
.gallery-dialog-heading .dialog-kicker { color: var(--orange); font-size: 9px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.gallery-dialog-heading h2 { margin: 8px 0 0; font-family: "Tenor Sans", Georgia, serif; font-size: 42px; font-weight: 400; }

@media (max-width: 760px) {
  .offer-header { align-items: flex-start; }
  .offer-meta-actions { align-items: flex-end !important; gap: 8px !important; }
  .catalogue-trigger { max-width: 148px; min-height: 40px; padding: 6px 10px; line-height: 1.25; }
  .catalogue-dialog { padding: 42px 24px 25px; }
  .catalogue-dialog h2 { font-size: 27px; overflow-wrap: normal; }
}
.nalu-page .experience-tile img { filter: saturate(.86) contrast(1.03); }
.nalu-page .studio-fields {
  grid-template-columns: 1.08fr .98fr 1.14fr .9fr 1.28fr .94fr;
}
.nalu-page .studio-submit { min-height: 104px; }
.nalu-page .advice-callout {
  background:
    radial-gradient(circle at 92% 12%, rgba(212, 109, 61, .18), transparent 35%),
    #123e35;
}

/* TULUA Sahl Hasheesh: warmer Red Sea variation for the 2027 opening */
.tulua-page {
  --tulua-rose: #9c4639;
  --tulua-gold: #e8c08b;
  --tulua-sand: #efe1d2;
  background: #f8f4ec;
}
.tulua-page .hotel-hero-mosaic {
  background: var(--tulua-sand);
  box-shadow: 0 28px 75px rgba(18, 62, 49, .14);
}
.tulua-page .hero-copy-panel {
  background:
    radial-gradient(circle at 90% 11%, rgba(232, 192, 139, .18), transparent 35%),
    linear-gradient(145deg, #103b33 0%, #174a40 100%);
}
.tulua-page .hotel-stars { color: var(--tulua-gold); }
.tulua-page .hero-labels span:first-child { color: #133f36; background: #d9ebcd; }
.tulua-page .hero-labels .outline { color: #fff5e8; border-color: rgba(232, 192, 139, .6); background: rgba(255,255,255,.04); }
.tulua-page .experience-card,
.tulua-page .detail-intro-card,
.tulua-page .signature-strip,
.tulua-page .offers,
.tulua-page .advice-callout {
  background:
    radial-gradient(circle at 94% 8%, rgba(232, 192, 139, .14), transparent 32%),
    #123e35;
}
.tulua-page .board-story { background: var(--tulua-sand); }
.tulua-page .restaurant-showcase.tulua-dining { grid-template-columns: repeat(3, 1fr); }
.tulua-page .villa-card.featured { outline-color: var(--tulua-rose); }
.tulua-page .villa-card.featured .villa-image b { background: var(--tulua-rose); }
.tulua-page .operator-mark { min-width: 46px; padding-inline: 7px; }
.tulua-page .studio-fields { grid-template-columns: 1.08fr .98fr 1.18fr .92fr 1.22fr .94fr; }
.tulua-page .studio-submit { min-height: 104px; }

@media (max-width: 1100px) {
  .tulua-page .restaurant-showcase.tulua-dining { grid-template-columns: 1fr; }
  .tulua-page .studio-fields { grid-template-columns: repeat(2, 1fr); }
  .tulua-page .studio-submit { min-height: 84px; grid-column: 1 / 3; }
}

@media (max-width: 1100px) {
  .nalu-page .restaurant-showcase.nalu-dining { grid-template-columns: 1fr; }
  .nalu-page .restaurant-showcase.nalu-dining article { min-height: 0; }
  .nalu-page .studio-fields { grid-template-columns: repeat(2, 1fr); }
  .nalu-page .studio-submit { min-height: 84px; grid-column: 1 / 3; }
}

@media (max-width: 760px) {
  .nalu-page .studio-fields { grid-template-columns: 1fr; }
  .nalu-page .studio-submit { grid-column: auto; }
  .tulua-page .studio-fields { grid-template-columns: 1fr; }
  .tulua-page .studio-submit { grid-column: auto; }
  .gallery-dialog-heading h2 { font-size: 32px; }
}

.date-range-field { cursor: default; }
.date-range-trigger {
  width: 100%;
  min-height: 28px;
  margin: -2px 0 7px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--forest-deep);
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
}
.date-range-trigger strong {
  margin: 0;
  font-size: 14px;
  line-height: 1.35;
}
.date-range-trigger i {
  width: 30px;
  height: 30px;
  display: grid;
  flex: 0 0 30px;
  place-items: center;
  color: var(--orange-deep);
  border: 1px solid #d9e4da;
  border-radius: 10px;
  background: #f7f8f3;
  font-size: 16px;
  font-style: normal;
}
.date-range-popover {
  margin: -10px 24px 22px;
  padding: 28px;
  color: var(--forest-deep);
  border: 1px solid rgba(18,62,49,.13);
  border-radius: 24px;
  background: #fffdf8;
  box-shadow: 0 30px 70px rgba(18,62,49,.18);
}
.date-range-popover[hidden] { display: none; }
.calendar-head,
.calendar-selection,
.calendar-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.calendar-head small {
  display: block;
  margin-bottom: 5px;
  color: var(--orange-deep);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.calendar-head strong {
  font-family: "Tenor Sans", Georgia, serif;
  font-size: 25px;
  font-weight: 400;
}
.calendar-navigation { display: flex; gap: 8px; }
.calendar-navigation button {
  width: 40px;
  height: 40px;
  color: var(--forest-deep);
  border: 1px solid #dbe4dc;
  border-radius: 12px;
  background: white;
  cursor: pointer;
  font-size: 16px;
}
.calendar-selection {
  margin: 22px 0;
  padding: 14px 18px;
  justify-content: flex-start;
  border: 1px solid #dfe8df;
  border-radius: 16px;
  background: #f1f6ef;
}
.calendar-selection > div { min-width: 190px; }
.calendar-selection small,
.calendar-selection strong { display: block; }
.calendar-selection small {
  margin-bottom: 4px;
  color: #718078;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.calendar-selection strong { font-size: 13px; }
.calendar-selection > span { color: var(--orange); font-size: 18px; }
.calendar-months {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
}
.calendar-month { min-width: 0; }
.calendar-month h4 {
  margin: 0 0 15px;
  font-family: "Tenor Sans", Georgia, serif;
  font-size: 19px;
  font-weight: 400;
  text-transform: capitalize;
}
.calendar-weekdays,
.calendar-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
.calendar-weekdays { margin-bottom: 5px; }
.calendar-weekdays span {
  padding: 6px 0;
  color: #89948e;
  text-align: center;
  font-size: 9px;
  font-weight: 900;
  text-transform: uppercase;
}
.calendar-days button,
.calendar-empty {
  min-height: 40px;
  border-radius: 11px;
}
.calendar-days button {
  color: var(--forest-deep);
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 11px;
  font-weight: 800;
}
.calendar-days button:hover:not(:disabled) { background: #edf4eb; }
.calendar-days button:disabled {
  color: #c7ceca;
  cursor: not-allowed;
}
.calendar-days button.is-in-range {
  border-radius: 5px;
  background: var(--mint);
}
.calendar-days button.is-start,
.calendar-days button.is-end {
  color: white;
  background: var(--orange-deep);
  box-shadow: 0 7px 16px rgba(182,75,37,.22);
}
.calendar-footer {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid #e3e8e2;
}
.calendar-legend { display: flex; gap: 18px; }
.calendar-legend span {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #75817b;
  font-size: 9px;
  font-weight: 750;
}
.calendar-legend i {
  width: 14px;
  height: 14px;
  display: block;
  border-radius: 5px;
}
.calendar-legend .range-start { background: var(--orange-deep); }
.calendar-legend .range-between { background: var(--mint); }
.calendar-confirm {
  min-height: 44px;
  padding: 0 20px;
  color: white;
  border: 0;
  border-radius: 13px;
  background: var(--forest);
  cursor: pointer;
  font-weight: 900;
}
.calendar-confirm:disabled { opacity: .38; cursor: not-allowed; }
.studio-options {
  margin: -5px 24px 18px;
  padding: 14px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  border: 1px solid rgba(18,62,49,.12);
  border-radius: 16px;
  background: rgba(255, 255, 255, .065);
}
.studio-options > p {
  max-width: 590px;
  margin: 0;
  color: rgba(255, 255, 255, .62);
  font-size: 10px;
  line-height: 1.55;
}
.direct-flight-switch {
  display: grid;
  grid-template-columns: 42px auto;
  grid-template-rows: auto auto;
  gap: 2px 11px;
  align-items: center;
  cursor: pointer;
}
.direct-flight-switch input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.direct-flight-switch > span {
  width: 42px;
  height: 24px;
  padding: 3px;
  display: flex;
  grid-row: 1 / 3;
  align-items: center;
  border-radius: 999px;
  background: #b8c8bd;
  transition: background .2s ease;
}
.direct-flight-switch > span i {
  width: 18px;
  height: 18px;
  display: block;
  border-radius: 50%;
  background: white;
  box-shadow: 0 2px 6px rgba(0,0,0,.16);
  transition: transform .2s ease;
}
.direct-flight-switch input:checked + span { background: var(--orange); }
.direct-flight-switch input:checked + span i { transform: translateX(18px); }
.direct-flight-switch input:focus-visible + span { outline: 3px solid rgba(220,101,59,.25); }
.direct-flight-switch strong { font-size: 11px; }
.direct-flight-switch small { color: #748078; font-size: 9px; }

.results-layout { grid-template-columns: 300px 1fr; }
.filter-group { border-bottom: 1px solid rgba(255,255,255,.1); }
.filter-group:last-child { border-bottom: 0; }
.filter-group > summary {
  padding: 18px 20px;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 10px;
  list-style: none;
  cursor: pointer;
}
.filter-group > summary::-webkit-details-marker { display: none; }
.filter-group > summary::after {
  content: "+";
  grid-column: 2;
  grid-row: 1 / 3;
  color: var(--mint-bright);
  font-size: 17px;
}
.filter-group[open] > summary::after { content: "−"; }
.filter-group > summary strong {
  font-size: 12px;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.filter-group > summary small {
  color: rgba(255,255,255,.4);
  font-size: 9px;
}
.filter-options { padding: 0 16px 18px; }
.filter-option {
  margin: 5px 0 !important;
  padding: 10px;
  grid-template-columns: 18px 18px 1fr auto !important;
  gap: 8px !important;
  align-items: center;
  border-radius: 12px;
  transition: background .18s ease;
}
.filter-option:hover { background: rgba(255,255,255,.06); }
.filter-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.filter-check {
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 6px;
  background: rgba(255,255,255,.05);
}
.filter-option input:checked + .filter-check {
  border-color: var(--orange);
  background: var(--orange);
}
.filter-option input:checked + .filter-check::after {
  content: "✓";
  color: white;
  font-size: 11px;
  font-weight: 900;
}
.filter-option input:focus-visible + .filter-check { outline: 3px solid rgba(195,230,91,.25); }
.filter-copy strong,
.filter-copy small { display: block; }
.filter-copy strong {
  color: rgba(255,255,255,.84);
  font-size: 11px;
  line-height: 1.35;
}
.filter-copy small {
  margin-top: 3px;
  color: rgba(255,255,255,.42);
  font-size: 8px;
  line-height: 1.4;
}
.filter-option > b {
  color: rgba(255,255,255,.62);
  font-size: 9px;
  font-weight: 700;
}
.filter-group-boards .filter-option,
.filter-group-flexibilities .filter-option {
  padding-block: 12px;
  background: rgba(255,255,255,.035);
}

.flight-detail-shell {
  grid-column: 1 / -1;
  border-bottom: 1px solid var(--line);
  background: #fbfcf9;
}
.flight-details > summary {
  min-height: 46px;
  padding: 0 22px 0 170px;
  display: grid;
  grid-template-columns: 1fr auto 22px;
  align-items: center;
  gap: 12px;
  list-style: none;
  cursor: pointer;
}
.flight-details > summary::-webkit-details-marker { display: none; }
.flight-details > summary span {
  color: var(--forest-deep);
  font-size: 10px;
  font-weight: 900;
}
.flight-details > summary small { color: #87928c; font-size: 9px; }
.flight-details > summary i {
  color: var(--orange-deep);
  font-size: 15px;
  font-style: normal;
}
.flight-details[open] > summary i { transform: rotate(45deg); }
.flight-details-content {
  padding: 6px 22px 22px 170px;
}
.flight-leg {
  padding: 18px;
  display: grid;
  grid-template-columns: 32px minmax(280px, 1fr) minmax(150px, .55fr);
  gap: 16px;
  align-items: center;
  border: 1px solid #e3e8e2;
  border-radius: 16px;
  background: white;
}
.flight-leg-number span {
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  color: white;
  border-radius: 9px;
  background: var(--forest);
  font-size: 10px;
  font-weight: 900;
}
.flight-leg-airports {
  display: grid;
  grid-template-columns: 1fr 112px 1fr;
  gap: 12px;
  align-items: center;
}
.flight-leg-airports > div:last-child { text-align: right; }
.flight-leg-airports strong,
.flight-leg-airports span,
.flight-leg-airports small { display: block; }
.flight-leg-airports strong { font-size: 17px; }
.flight-leg-airports span { margin: 3px 0; color: #5f6f67; font-size: 10px; }
.flight-leg-airports small { color: #929c97; font-size: 8px; }
.flight-leg-path {
  display: grid !important;
  gap: 7px;
  align-items: center;
  text-align: center;
}
.flight-leg-path > i {
  height: 1px;
  background: #bcc6c0;
  position: relative;
}
.flight-leg-path > i::after {
  content: "›";
  position: absolute;
  top: -10px;
  right: 0;
  color: var(--orange-deep);
  font-style: normal;
}
.flight-leg-path > small {
  color: var(--orange-deep);
  font-size: 8px;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
}
.flight-details-total {
  margin-bottom: 8px;
  padding: 10px 14px;
  display: grid;
  grid-template-columns: auto auto 1fr;
  align-items: baseline;
  gap: 8px;
  color: #52675d;
  border: 1px solid #e3e8e2;
  border-radius: 12px;
  background: #f5f7f2;
}
.flight-details-total span { color: var(--orange-deep); font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.flight-details-total strong { color: var(--forest-deep); font-size: 12px; }
.flight-details-total small { color: #7a8981; font-size: 9px; }
.flight-leg-meta {
  padding-left: 16px;
  border-left: 1px solid #e2e7e2;
}
.flight-leg-meta strong,
.flight-leg-meta span,
.flight-leg-meta small { display: block; }
.flight-leg-meta strong { font-size: 10px; }
.flight-leg-meta span { margin: 4px 0; color: #65746c; font-size: 9px; }
.flight-leg-meta small { color: #929c97; font-size: 8px; }
.connection-wait {
  min-height: 42px;
  margin-left: 30px;
  padding-left: 34px;
  display: flex;
  align-items: center;
  position: relative;
}
.connection-wait > i {
  position: absolute;
  left: 12px;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--orange);
}
.connection-wait > i::after {
  content: "";
  position: absolute;
  top: 15px;
  left: -4px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--orange);
}
.connection-wait span {
  color: var(--orange-deep);
  font-size: 9px;
  font-weight: 900;
}
.connection-wait small {
  margin-left: 6px;
  color: #758179;
  font-weight: 700;
}
.tariff-strip {
  padding: 14px 20px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  background: #f2f6ef;
}
.tariff-strip > div small,
.tariff-strip > div strong { display: block; }
.tariff-strip > div small {
  margin-bottom: 4px;
  color: var(--orange-deep);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.tariff-strip > div strong { font-size: 11px; }
.tariff-strip > div strong span { color: #718078; font-weight: 700; }
.tariff-strip .tariff-data-note { margin-top: 3px; color: #718078; font-size: 9px; line-height: 1.4; }
.tariff-strip details { max-width: 50%; }
.tariff-strip summary {
  display: flex;
  justify-content: flex-end;
  gap: 9px;
  color: var(--forest);
  cursor: pointer;
  list-style: none;
  font-size: 9px;
  font-weight: 900;
}
.tariff-strip summary::-webkit-details-marker { display: none; }
.tariff-strip summary i { color: var(--orange-deep); font-style: normal; }
.tariff-strip details[open] summary i { transform: rotate(45deg); }
.tariff-strip p {
  margin: 10px 0 0;
  color: #66746d;
  font-size: 9px;
  line-height: 1.5;
}
.verification-tariff {
  margin-top: 16px;
  padding: 15px;
  border-radius: 13px;
  background: #eaf4e8;
}
.verification-tariff strong,
.verification-tariff span { display: block; }
.verification-tariff strong { color: #1e664b; font-size: 11px; }
.verification-tariff span { margin-top: 6px; color: #607068; font-size: 10px; line-height: 1.55; }

@media (max-width: 1100px) {
  .results-layout { grid-template-columns: 250px 1fr; }
  .flight-details > summary { padding-left: 22px; }
  .flight-details-content { padding-left: 22px; }
  .flight-leg { grid-template-columns: 32px 1fr; }
  .flight-leg-meta { grid-column: 2; padding: 12px 0 0; border: 0; border-top: 1px solid #e2e7e2; }
}

@media (max-width: 760px) {
  .date-range-popover { margin: -2px 14px 16px; padding: 20px; }
  .calendar-head strong { font-size: 21px; }
  .calendar-selection { align-items: stretch; }
  .calendar-selection > div { min-width: 0; flex: 1; }
  .calendar-months { grid-template-columns: 1fr; }
  .calendar-month:nth-child(2) { display: none; }
  .calendar-footer,
  .studio-options { align-items: stretch; flex-direction: column; }
  .calendar-confirm { width: 100%; }
  .studio-options { margin: 0 14px 14px; }
  .results-layout { grid-template-columns: 1fr; }
  .filters { position: static; }
  .filter-group > summary { display: grid; }
  .flight-detail-shell { grid-column: auto; }
  .flight-details > summary { padding: 0 16px; grid-template-columns: 1fr 20px; }
  .flight-details > summary small { display: none; }
  .flight-details-content { padding: 4px 12px 16px; }
  .flight-leg { padding: 14px; grid-template-columns: 28px 1fr; }
  .flight-leg-airports { grid-template-columns: 1fr 78px 1fr; }
  .flight-leg-path > small { font-size: 7px; white-space: normal; }
  .flight-details-total { grid-template-columns: 1fr auto; }
  .flight-details-total small { grid-column: 1 / -1; }
  .connection-wait { margin-left: 23px; }
  .tariff-strip { align-items: flex-start; flex-direction: column; }
  .tariff-strip details { max-width: none; }
  .tariff-strip summary { justify-content: flex-start; }
}

.field-trigger {
  width: 100%;
  min-height: 35px;
  margin: -2px 0 7px;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 14px;
  gap: 10px;
  align-items: center;
  color: var(--forest-deep);
  border: 0;
  background: transparent;
  cursor: pointer;
  font: inherit;
  text-align: left;
}
.field-trigger strong {
  min-width: 0;
  margin: 0;
  font-size: 15px;
  line-height: 1.3;
}
.field-trigger .field-chevron {
  width: 7px;
  height: 7px;
  justify-self: center;
  color: var(--orange-deep);
  border-right: 1.4px solid currentColor;
  border-bottom: 1.4px solid currentColor;
  transform: rotate(45deg) translate(-1px, -1px);
  transition: transform .18s ease;
}
.field-trigger[aria-expanded="true"] .field-chevron { transform: rotate(225deg) translate(-1px, -1px); }
.field-popover {
  width: 440px;
  max-width: min(660px, calc(100vw - 48px));
  padding: 22px;
  position: absolute;
  z-index: 60;
  top: calc(100% + 12px);
  left: 0;
  color: var(--forest-deep);
  border: 1px solid rgba(18,62,49,.13);
  border-radius: 22px;
  background: #fffdf8;
  box-shadow: 0 30px 75px rgba(9,45,35,.24);
  cursor: default;
}
.field-popover[hidden] { display: none; }
.field-popover header { margin-bottom: 18px; }
.field-popover header small,
.field-popover header strong { display: block; }
.field-popover header small {
  margin-bottom: 6px;
  color: var(--orange-deep);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.field-popover header strong {
  font-family: "Tenor Sans", Georgia, serif;
  font-size: 24px;
  font-weight: 400;
}
.airport-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.airport-country-heading {
  grid-column: 1 / -1;
  margin: 8px 0 0;
  color: var(--orange-deep);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.airport-country-heading:first-child { margin-top: 0; }
.airport-list button {
  min-width: 0;
  padding: 13px;
  display: grid;
  grid-template-columns: 45px minmax(0, 1fr);
  gap: 2px 10px;
  align-items: center;
  color: var(--forest-deep);
  border: 1px solid #e2e8e1;
  border-radius: 14px;
  background: white;
  cursor: pointer;
  text-align: left;
}
.airport-list button:hover,
.airport-list button[aria-selected="true"] {
  border-color: var(--orange);
  background: #fff8ef;
}
.airport-list b {
  grid-row: 1 / 3;
  color: var(--orange-deep);
  font-size: 14px;
}
.airport-list span {
  margin: 0;
  color: var(--forest-deep);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: none;
}

/* Resort finder uses the same dark Holidaylifestyle surface */
.search-studio {
  overflow: visible;
  color: #fff;
  background: #173f34;
  border-top: 5px solid var(--orange);
  box-shadow: 0 30px 70px rgba(0, 0, 0, .28);
}

.studio-head,
.travel-modes {
  border-color: rgba(255, 255, 255, .14);
}

.studio-head strong,
.demo-status,
.travel-modes button {
  color: #fff;
}

.studio-head small,
.studio-field > span {
  color: #ef9b72;
}

.demo-status {
  border-color: rgba(255, 255, 255, .2);
  background: rgba(255, 255, 255, .055);
}

.travel-modes button {
  opacity: .68;
}

.travel-modes button.is-active {
  opacity: 1;
}

.studio-fields {
  gap: 8px;
  padding: 18px 20px 20px;
}

.studio-field,
.studio-submit {
  min-height: 90px;
  border-radius: 16px;
}

.studio-field {
  padding: 14px 16px;
  color: var(--forest-deep);
  background: #fffdf8;
  border-color: rgba(255, 255, 255, .2);
  box-shadow: 0 10px 28px rgba(0, 0, 0, .16);
}

.studio-options {
  color: #fff;
  background: rgba(255, 255, 255, .065);
  border-color: rgba(255, 255, 255, .13);
}

.studio-options > p {
  color: rgba(255, 255, 255, .62);
}

.live-search-note {
  color: rgba(255, 255, 255, .76);
  background: rgba(255, 255, 255, .065);
  border-color: rgba(255, 255, 255, .13);
}

.live-search-note.is-success {
  color: #fff;
  background: rgba(255, 255, 255, .08);
  border-color: rgba(255, 255, 255, .16);
}
.airport-list small { color: #87928c; font-size: 9px; }
.duration-popover {
  width: 610px;
  left: 50%;
  transform: translateX(-50%);
}
.duration-presets {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 9px;
}
.duration-presets button {
  min-height: 76px;
  padding: 13px;
  color: var(--forest-deep);
  border: 1px solid #dde6de;
  border-radius: 15px;
  background: white;
  cursor: pointer;
  text-align: left;
}
.duration-presets button:hover,
.duration-presets button.is-selected {
  color: white;
  border-color: var(--forest);
  background: var(--forest);
}
.duration-presets strong,
.duration-presets small { display: block; }
.duration-presets strong { margin: 0 0 6px; font-size: 12px; }
.duration-presets small { color: #839089; font-size: 9px; }
.duration-presets button.is-selected small,
.duration-presets button:hover small { color: rgba(255,255,255,.7); }
.duration-exact {
  margin-top: 14px;
  padding-top: 14px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: end;
  border-top: 1px solid #e3e8e2;
}
.duration-exact label > span {
  margin: 0 0 7px;
  color: #66766e;
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.duration-exact select {
  width: 100%;
  min-height: 44px;
  padding: 0 12px;
  color: var(--forest-deep);
  border: 1px solid #dce4dd;
  border-radius: 12px;
  background: white;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
}
.duration-exact button,
.picker-apply {
  min-height: 44px;
  padding: 0 18px;
  color: white;
  border: 0;
  border-radius: 12px;
  background: var(--orange);
  cursor: pointer;
  font-weight: 900;
}
.travelers-popover {
  width: 430px;
  right: 0;
  left: auto;
}
.traveler-counter {
  min-height: 67px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid #e2e8e2;
}
.traveler-counter > div:first-child strong,
.traveler-counter > div:first-child small { display: block; }
.traveler-counter > div:first-child strong { font-size: 13px; }
.traveler-counter > div:first-child small { margin-top: 3px; color: #849089; font-size: 9px; }
.counter-control {
  display: grid;
  grid-template-columns: 34px 28px 34px;
  align-items: center;
  text-align: center;
}
.counter-control button {
  width: 34px;
  height: 34px;
  color: var(--forest);
  border: 1px solid #d9e3da;
  border-radius: 50%;
  background: white;
  cursor: pointer;
  font-size: 18px;
}
.counter-control button:hover { color: white; border-color: var(--orange); background: var(--orange); }
.counter-control b { font-size: 13px; }
.children-ages {
  margin: 14px 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}
.children-ages label { display: block; }
.children-ages label span {
  margin: 0 0 5px;
  color: #708078;
  font-size: 8px;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.children-ages select {
  width: 100%;
  min-height: 42px;
  padding: 0 10px;
  color: var(--forest-deep);
  border: 1px solid #dce4dd;
  border-radius: 11px;
  background: white;
  font: inherit;
  font-size: 11px;
  font-weight: 800;
}
.children-empty {
  grid-column: 1 / -1;
  margin: 0;
  color: #7d8a83;
  font-size: 10px;
  line-height: 1.5;
}
.picker-apply { width: 100%; }
.date-range-trigger { min-height: 35px; }
.date-range-popover {
  width: min(920px, calc(100% - 32px));
  position: relative;
  z-index: 40;
  margin: -8px auto 18px;
  padding: 21px 22px;
  border-radius: 22px;
}
.calendar-days button { position: relative; z-index: 1; touch-action: manipulation; }
.calendar-days button:focus-visible {
  outline: 3px solid rgba(220,101,59,.24);
  outline-offset: 1px;
}

.results-layout {
  grid-template-columns: minmax(330px, 350px) minmax(0, 1fr);
  gap: 30px;
}
.filters {
  color: white;
  border-color: rgba(255,255,255,.16);
  background:
    radial-gradient(circle at 100% 0, rgba(195,230,91,.08), transparent 32%),
    #163f34;
  box-shadow: 0 24px 60px rgba(2,29,21,.22);
}
.filter-title { padding: 24px 25px; align-items: center; }
.filter-title small { font-size: 10px; }
.filter-title strong { font-size: 20px; }
.filter-title button {
  padding: 8px 10px;
  border: 1px solid rgba(195,230,91,.25);
  border-radius: 999px;
  font-size: 10px;
}
.filter-range-stack { padding: 8px 14px 4px; }
.filter-range-card {
  margin: 10px 0;
  padding: 17px;
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 18px;
  background: rgba(255,255,255,.055);
}
.filter-range-card header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}
.filter-range-card header strong,
.filter-range-card header small { display: block; }
.filter-range-card header strong {
  font-size: 12px;
  letter-spacing: .04em;
}
.filter-range-card header small {
  max-width: 170px;
  margin-top: 4px;
  color: rgba(255,255,255,.5);
  font-size: 9px;
  line-height: 1.4;
}
.filter-range-card header b {
  flex: 0 0 auto;
  color: var(--mint-bright);
  font-size: 10px;
  white-space: nowrap;
}
.dual-range {
  height: 34px;
  margin-top: 13px;
  position: relative;
}
.dual-range-track {
  height: 5px;
  position: absolute;
  inset: 15px 0 auto;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
}
.dual-range-track i {
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--range-start);
  right: calc(100% - var(--range-end));
  border-radius: inherit;
  background: linear-gradient(90deg, var(--mint-bright), var(--orange));
}
.dual-range input[type="range"] {
  width: 100%;
  height: 34px;
  margin: 0;
  padding: 0;
  position: absolute;
  inset: 0;
  appearance: none;
  -webkit-appearance: none;
  pointer-events: none;
  background: transparent;
}
.dual-range input[type="range"]::-webkit-slider-thumb {
  width: 20px;
  height: 20px;
  appearance: none;
  -webkit-appearance: none;
  border: 4px solid white;
  border-radius: 50%;
  background: var(--orange);
  box-shadow: 0 4px 10px rgba(0,0,0,.28);
  cursor: grab;
  pointer-events: auto;
}
.dual-range input[type="range"]::-moz-range-thumb {
  width: 14px;
  height: 14px;
  border: 4px solid white;
  border-radius: 50%;
  background: var(--orange);
  box-shadow: 0 4px 10px rgba(0,0,0,.28);
  cursor: grab;
  pointer-events: auto;
}
.range-slider-row {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) 66px;
  gap: 9px;
  align-items: center;
  margin-top: 13px;
}
.range-slider-row > span {
  color: rgba(255,255,255,.5);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.range-slider-row > b {
  color: rgba(255,255,255,.82);
  font-size: 9px;
  font-variant-numeric: tabular-nums;
  text-align: right;
  white-space: nowrap;
}
.range-slider-row input[type="range"] {
  width: 100%;
  height: 20px;
  margin: 0;
  padding: 0;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  cursor: pointer;
}
.range-slider-row input[type="range"]::-webkit-slider-runnable-track {
  height: 5px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
}
.range-slider-row input[type="range"]::-webkit-slider-thumb {
  width: 17px;
  height: 17px;
  margin-top: -6px;
  appearance: none;
  -webkit-appearance: none;
  border: 4px solid white;
  border-radius: 50%;
  background: var(--orange);
  box-shadow: 0 4px 10px rgba(0,0,0,.28);
}
.range-slider-row input[type="range"]::-moz-range-track {
  height: 5px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
}
.range-slider-row input[type="range"]::-moz-range-progress {
  height: 5px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--mint-bright), var(--orange));
}
.range-slider-row input[type="range"]::-moz-range-thumb {
  width: 11px;
  height: 11px;
  border: 4px solid white;
  border-radius: 50%;
  background: var(--orange);
  box-shadow: 0 4px 10px rgba(0,0,0,.28);
}
.range-scale {
  display: flex;
  justify-content: space-between;
  margin: 7px 75px 0 33px;
  color: rgba(255,255,255,.38);
  font-size: 8px;
}
.filter-group > summary { padding: 19px 22px; }
.filter-group > summary strong { font-size: 13px; letter-spacing: .08em; }
.filter-group > summary small { margin-top: 3px; font-size: 9px; }
.filter-options { padding: 0 12px 17px; }
.filter-option {
  min-width: 0;
  margin: 4px 0 !important;
  padding: 11px 10px;
  grid-template-columns: 19px minmax(0, 1fr) auto !important;
  gap: 10px !important;
}
.filter-copy { min-width: 0; }
.filter-copy strong {
  overflow-wrap: anywhere;
  font-size: 12px;
  line-height: 1.35;
}
.filter-copy small { font-size: 9px; }
.filter-option > b {
  min-width: 28px;
  padding: 4px 7px;
  color: rgba(255,255,255,.62);
  border-radius: 999px;
  background: rgba(255,255,255,.07);
  text-align: center;
  font-size: 9px;
}

.operator-logo {
  width: 58px;
  max-height: 36px;
  object-fit: contain;
}
.offer-meta-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
.catalogue-trigger {
  min-height: 40px;
  border-radius: 999px;
  background: #eef6ec;
}
.flight-carrier-summary {
  margin-bottom: 8px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
}
.flight-carrier-summary > span:last-child { margin: 0 !important; }
.flight-carrier-logos {
  display: inline-flex !important;
  gap: 4px;
}
.airline-logo,
.airline-logo-fallback {
  width: 34px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 34px;
  overflow: hidden;
  border: 1px solid #dfe6df;
  border-radius: 10px;
  background: white;
}
.airline-logo.compact,
.airline-logo-fallback.compact {
  width: 25px;
  height: 25px;
  flex-basis: 25px;
  border-radius: 8px;
}
.airline-logo img {
  width: 82%;
  height: 82%;
  object-fit: contain;
}
.airline-logo b { display: none; color: var(--forest); font-size: 8px; }
.airline-logo.is-fallback img { display: none; }
.airline-logo.is-fallback b { display: block; }
.airline-logo-fallback { color: var(--orange-deep); font-size: 13px; }
.flight-leg-carrier {
  display: flex;
  align-items: center;
  gap: 10px;
}
.flight-leg-carrier strong { font-size: 11px; }
.live-catalogue-dialog {
  width: min(900px, calc(100% - 32px));
  max-height: calc(100dvh - 28px);
  overflow-y: auto;
}
.live-catalogue-dialog .catalogue-source-box {
  margin-bottom: 18px;
  padding: 22px;
}
.catalogue-preview { margin-top: 0 !important; font-size: 14px !important; }
.catalogue-loading {
  min-height: 92px;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  column-gap: 13px;
}
.catalogue-loading i {
  width: 28px;
  height: 28px;
  grid-row: 1 / 3;
  border: 2px solid rgba(18, 62, 49, .14);
  border-top-color: var(--orange-deep);
  border-radius: 50%;
  animation: catalogue-spin .8s linear infinite;
}
.catalogue-loading strong { align-self: end; font-size: 14px; }
.catalogue-loading span { align-self: start; color: var(--muted); font-size: 11px; line-height: 1.5; }
@keyframes catalogue-spin { to { transform: rotate(360deg); } }
.catalogue-facts {
  margin: 0 0 18px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.catalogue-facts div {
  padding: 13px;
  border: 1px solid rgba(18,62,49,.09);
  border-radius: 12px;
  background: rgba(255,255,255,.62);
}
.catalogue-facts dt {
  color: var(--orange-deep);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.catalogue-facts dd { margin: 6px 0 0; font-size: 11px; font-weight: 800; line-height: 1.4; }
.catalogue-original-section,
.catalogue-short-description,
.catalogue-load-error {
  overflow: hidden;
  border: 1px solid rgba(18, 62, 49, .12);
  border-radius: 16px;
  background: rgba(255, 255, 255, .74);
}
.catalogue-original-section > header {
  padding: 15px 17px;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  border-bottom: 1px solid rgba(18, 62, 49, .1);
  background: #f7faf5;
}
.catalogue-original-section > header span,
.catalogue-short-description > span {
  color: var(--orange-deep);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.catalogue-original-section > header small { color: var(--muted); font-size: 10px; text-align: right; }
.catalogue-original-html {
  max-height: min(440px, 52dvh);
  padding: 8px 20px 20px;
  overflow-y: auto;
  scrollbar-color: rgba(18, 62, 49, .28) transparent;
}
.catalogue-original-html h1,
.catalogue-original-html h2,
.catalogue-original-html h3,
.catalogue-original-html h4,
.catalogue-original-html h5 {
  margin: 20px 0 8px;
  color: var(--forest);
  font-family: "Tenor Sans", Georgia, serif;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.25;
}
.catalogue-original-html h3,
.catalogue-original-html h4,
.catalogue-original-html h5 { font-size: 16px; }
.catalogue-original-html p,
.catalogue-original-html li,
.catalogue-original-html dd,
.catalogue-original-html dt,
.catalogue-original-html td,
.catalogue-original-html th {
  color: #52675e;
  font-size: 12px;
  line-height: 1.65;
}
.catalogue-original-html p { margin: 9px 0; }
.catalogue-original-html ul,
.catalogue-original-html ol { margin: 8px 0 13px; padding-left: 20px; }
.catalogue-original-html li { margin: 4px 0; padding-left: 3px; }
.catalogue-original-html li::marker { color: var(--orange-deep); }
.catalogue-original-html table { width: 100%; margin: 12px 0; border-collapse: collapse; }
.catalogue-original-html th,
.catalogue-original-html td { padding: 9px; border: 1px solid rgba(18, 62, 49, .12); text-align: left; }
.catalogue-original-html th { color: var(--forest); background: #f2f7f0; font-weight: 800; }
.catalogue-short-description,
.catalogue-load-error { padding: 18px; }
.catalogue-short-description p,
.catalogue-load-error p { margin: 9px 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.catalogue-short-description small { color: var(--orange-deep); font-size: 10px; font-weight: 800; }
.catalogue-load-error strong { color: var(--forest); font-size: 14px; }
.catalogue-load-error button {
  min-height: 38px;
  margin-top: 4px;
  padding: 0 15px;
  color: white;
  border: 0;
  border-radius: 999px;
  background: var(--forest);
  cursor: pointer;
  font: inherit;
  font-size: 11px;
  font-weight: 800;
}
.catalogue-terms-link {
  min-height: 48px;
  margin: 0 0 10px;
  padding: 0 17px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--forest);
  border: 1px solid rgba(18,62,49,.18);
  border-radius: 13px;
  background: #eef6ec;
  font-size: 11px;
  font-weight: 900;
}
.catalogue-terms-link[hidden] { display: none; }

@media (max-width: 760px) {
  .live-catalogue-dialog { width: calc(100% - 18px); max-height: calc(100dvh - 18px); padding: 38px 16px 18px; }
  .live-catalogue-dialog .catalogue-source-box { margin-top: 20px; padding: 14px; }
  .catalogue-facts { grid-template-columns: 1fr; gap: 7px; }
  .catalogue-facts div { padding: 10px 12px; }
  .catalogue-original-section > header { display: block; padding: 13px 14px; }
  .catalogue-original-section > header small { display: block; margin-top: 5px; text-align: left; }
  .catalogue-original-html { max-height: 45dvh; padding: 4px 14px 16px; }
  .catalogue-original-html h1,
  .catalogue-original-html h2 { font-size: 18px; }
  .catalogue-original-html p,
  .catalogue-original-html li,
  .catalogue-original-html dd,
  .catalogue-original-html dt,
  .catalogue-original-html td,
  .catalogue-original-html th { font-size: 11px; }
}

@media (max-width: 1180px) {
  .results-layout { grid-template-columns: minmax(280px, 310px) minmax(0, 1fr); }
  .duration-popover { left: 0; transform: none; }
}

@media (max-width: 760px) {
  .field-popover {
    width: auto;
    max-width: none;
    margin-top: 14px;
    padding: 18px;
    position: static;
    transform: none;
  }
  .airport-list,
  .duration-presets { grid-template-columns: 1fr 1fr; }
  .duration-exact { grid-template-columns: 1fr; }
  .travelers-popover { width: auto; }
  .date-range-popover { border-radius: 20px; }
  .calendar-selection { gap: 10px; }
  .calendar-selection > span { display: none; }
  .calendar-days button,
  .calendar-empty { min-height: 44px; }
  .results-layout { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .filters { width: 100%; border-radius: 24px; }
  .filter-title { padding: 21px; border-bottom: 1px solid rgba(255,255,255,.12); }
  .filter-title strong { font-size: 19px; }
  .filter-range-stack { padding: 8px 10px 3px; }
  .filter-range-card { padding: 16px 14px; }
  .filter-group > summary { padding: 18px; }
  .filter-options { padding-inline: 9px; }
  .filter-option { padding: 12px 9px; }
  .filter-copy strong { overflow-wrap: normal; word-break: normal; }
  .offer-meta-actions { align-items: flex-end; flex-direction: column; }
  .flight-carrier-summary { flex-direction: column; }
  .catalogue-facts { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  .airport-list,
  .duration-presets,
  .children-ages { grid-template-columns: 1fr; }
  .field-popover header strong { font-size: 21px; }
  .filter-range-card header { flex-direction: column; }
  .filter-range-card header small { max-width: none; }
  .offer-header { align-items: flex-start; }
}

/* TULUA editorial hotel page v2 */
.tulua-page .tulua-official-logo {
  width: min(210px, 46%);
  max-height: 74px;
  margin: 0 0 18px;
  object-fit: contain;
  object-position: left center;
  filter: invert(1);
  opacity: .94;
}
.tulua-page .hotel-logo-light {
  filter: none;
}
.oku-kos-page .tulua-official-logo { width: 66px; max-height: 118px; }
.arato-by-e-geo-page .tulua-official-logo { width: min(260px, 58%); max-height: 58px; }

.hotel-page .image-viewer-dialog.is-room-map figure > img {
  position: static;
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  background: #fff;
}
.hotel-page .image-viewer-dialog.is-room-map .image-viewer-thumbnails img { background: #fff; }

.tulua-intro {
  padding-block: 104px 92px;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
  gap: 80px;
  align-items: start;
}

.tulua-intro-copy { max-width: 820px; }
.tulua-intro h2,
.tulua-section-heading h2 {
  margin: 14px 0 28px;
  font-family: "Tenor Sans", Georgia, serif;
  font-size: clamp(40px, 4.3vw, 62px);
  font-weight: 400;
  line-height: 1.06;
  letter-spacing: -.035em;
}
.tulua-intro-copy .lead {
  margin: 0 0 20px;
  color: var(--forest-deep);
  font-size: 20px;
  line-height: 1.65;
}
.tulua-intro-copy > p:not(.eyebrow):not(.lead) {
  max-width: 760px;
  margin: 0;
  color: #65726c;
  font-size: 16px;
  line-height: 1.8;
}
.tulua-intro-facts {
  margin-top: 36px;
  padding-top: 26px;
  display: flex;
  flex-wrap: wrap;
  gap: 20px 34px;
  border-top: 1px solid var(--line);
}
.tulua-intro-facts span { color: #66746d; font-size: 13px; }
.tulua-intro-facts strong { margin-right: 6px; color: var(--orange-deep); font-size: 22px; }
.tulua-classification {
  padding: 38px;
  color: #fff;
  border-radius: 30px;
  background:
    radial-gradient(circle at 92% 8%, rgba(232,192,139,.18), transparent 34%),
    #173f34;
  box-shadow: 0 28px 60px rgba(18,62,49,.18);
}
.tulua-classification > p:first-child {
  margin: 0 0 16px;
  color: #ef9b72;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.tulua-classification h3 {
  margin: 0 0 20px;
  font-family: "Tenor Sans", Georgia, serif;
  font-size: 38px;
  font-weight: 400;
}
.tulua-classification > p:not(:first-child) { color: rgba(255,255,255,.74); font-size: 14px; line-height: 1.75; }
.tulua-classification ul { margin: 25px 0 28px; padding: 0; list-style: none; }
.tulua-classification li { padding: 12px 0 12px 20px; position: relative; border-top: 1px solid rgba(255,255,255,.12); font-size: 13px; line-height: 1.5; }
.tulua-classification li::before { content: ""; width: 6px; height: 6px; position: absolute; left: 0; top: 18px; border-radius: 50%; background: #ef9b72; }
.tulua-classification a { display: flex; justify-content: space-between; color: #fff; font-size: 13px; font-weight: 800; }
.tulua-classification a span { color: #ef9b72; }

.tulua-location { padding-block: 20px 112px; }
.tulua-section-heading {
  margin-bottom: 42px;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .65fr);
  gap: 70px;
  align-items: end;
}
.tulua-section-heading h2 { margin-bottom: 0; }
.tulua-section-heading > p { margin: 0 0 7px; color: #68776f; font-size: 15px; line-height: 1.75; }
.tulua-location-layout {
  padding: 24px;
  display: grid;
  grid-template-columns: minmax(360px, .78fr) minmax(0, 1.22fr);
  gap: 22px;
  border: 1px solid rgba(18,62,49,.12);
  border-radius: 32px;
  background: #fff;
  box-shadow: 0 24px 65px rgba(18,62,49,.09);
}
.tulua-location-stack { display: grid; gap: 18px; }
.tulua-location-stack article {
  padding: 28px 30px;
  border-radius: 24px;
  background: #f5f1e9;
}
.tulua-location-stack article:nth-child(2) { background: #eef5ec; }
.tulua-location-stack article > span,
.tulua-media-panel .media-copy > p:first-child,
.tulua-catalogue-panel header > div > p {
  color: var(--orange-deep);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.tulua-location-stack h3 { margin: 12px 0 12px; font-family: "Tenor Sans", Georgia, serif; font-size: 27px; font-weight: 400; }
.tulua-location-stack p { margin: 0; color: #66746d; font-size: 13px; line-height: 1.72; }
.tulua-location-stack ul { margin: 18px 0 0; padding: 0; list-style: none; }
.tulua-location-stack li { margin-top: 8px; padding-left: 17px; position: relative; font-size: 12px; }
.tulua-location-stack li::before { content: "•"; position: absolute; left: 0; color: var(--orange); }
.tulua-map-card { min-height: 560px; position: relative; overflow: hidden; border-radius: 24px; background: #dde8df; }
.tulua-map-card iframe { width: 100%; height: 100%; min-height: 560px; border: 0; filter: saturate(.86) contrast(1.03); }
.tulua-map-card > div { padding: 11px 13px; display: flex; gap: 10px; position: absolute; left: 18px; right: 18px; bottom: 18px; justify-content: space-between; align-items: center; color: #fff; border-radius: 15px; background: rgba(18,62,49,.92); backdrop-filter: blur(12px); }
.tulua-map-card span { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.tulua-map-card a { padding: 10px 13px; color: #fff; border-radius: 11px; background: rgba(255,255,255,.1); font-size: 11px; font-weight: 800; }

.tulua-catalogue { padding-block: 112px; }
.tulua-catalogue-tabs,
.tulua-media-categories,
.tulua-media-tabs { display: flex; gap: 10px; overflow-x: auto; scrollbar-width: thin; }
.tulua-catalogue-tabs { margin-bottom: 28px; }
.tulua-catalogue-tabs button,
.tulua-media-categories button,
.tulua-media-tabs button {
  flex: 0 0 auto;
  padding: 15px 20px;
  color: #53675f;
  border: 1px solid rgba(18,62,49,.15);
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
}
.tulua-catalogue-tabs button.is-active,
.tulua-media-categories button.is-active,
.tulua-media-tabs button.is-active {
  color: #fff;
  border-color: #173f34;
  background: #173f34;
  box-shadow: inset 0 -3px 0 #ef9b72;
}
.tulua-catalogue-panel {
  overflow: hidden;
  border: 1px solid rgba(18,62,49,.12);
  border-radius: 30px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(18,62,49,.08);
}
.tulua-catalogue-panel header { padding: 38px 44px; display: grid; grid-template-columns: 1fr .9fr; gap: 70px; align-items: end; background: linear-gradient(125deg, #fff, #f3f8f2); }
.tulua-catalogue-panel header h3 { max-width: 720px; margin: 12px 0 0; font-family: "Tenor Sans", Georgia, serif; font-size: 37px; font-weight: 400; line-height: 1.15; }
.tulua-catalogue-panel header > p { margin: 0; color: #66746d; font-size: 14px; line-height: 1.75; }
.catalogue-columns { display: grid; grid-template-columns: 1fr 1fr; }
.catalogue-columns > div { padding: 34px 44px 40px; }
.catalogue-columns > div + div { border-left: 1px solid var(--line); }
.catalogue-columns h4 { margin: 0 0 20px; font-family: "Tenor Sans", Georgia, serif; font-size: 24px; font-weight: 400; }
.catalogue-column-intro,
.catalogue-columns > div > p:not(.catalogue-column-intro) {
  margin: -7px 0 18px;
  color: #66746d;
  font-size: 13px;
  line-height: 1.7;
}
.catalogue-columns ul { margin: 0; padding: 0; list-style: none; }
.catalogue-columns li { padding: 11px 0 11px 19px; position: relative; color: #586a62; border-top: 1px solid var(--line); font-size: 13px; line-height: 1.5; }
.catalogue-columns li::before { content: "•"; position: absolute; left: 0; color: var(--orange); }

.tulua-media { padding-block: 112px 130px; }
.tulua-media-categories { margin-bottom: 18px; }
.tulua-media-tabs { margin-bottom: 28px; padding-bottom: 4px; }
.tulua-media-tabs button { padding: 13px 17px; font-size: 12px; }
.tulua-media-stage { border-radius: 32px; box-shadow: 0 30px 70px rgba(18,62,49,.14); }
.tulua-media-panel {
  min-height: 630px;
  display: grid;
  grid-template-columns: minmax(330px, .62fr) minmax(0, 1.38fr);
  overflow: hidden;
  border-radius: 32px;
  background: #173f34;
}
.tulua-media-panel[hidden] { display: none; }
.tulua-media-panel .media-copy { padding: 54px 48px 45px; display: flex; flex-direction: column; color: #fff; }
.tulua-media-panel .media-copy > p:first-child { color: #ef9b72; }
.tulua-media-panel .media-copy h3 { margin: 16px 0 24px; font-family: "Tenor Sans", Georgia, serif; font-size: clamp(34px, 3vw, 49px); font-weight: 400; line-height: 1.08; }
.tulua-media-panel .media-copy > p:not(:first-child) { margin: 0; color: rgba(255,255,255,.74); font-size: 15px; line-height: 1.75; }
.tulua-media-panel dl { margin: auto 0 26px; }
.tulua-media-panel dl > div { padding: 13px 0; display: grid; grid-template-columns: 105px 1fr; gap: 16px; border-top: 1px solid rgba(255,255,255,.13); }
.tulua-media-panel dt { color: rgba(255,255,255,.53); font-size: 11px; }
.tulua-media-panel dd { margin: 0; color: #fff; font-size: 12px; font-weight: 700; line-height: 1.5; }
.tulua-media-panel .media-copy a { padding-top: 18px; display: flex; justify-content: space-between; color: #fff; border-top: 1px solid #ef9b72; font-size: 13px; font-weight: 800; }
.tulua-media-panel .media-copy a span { color: #ef9b72; }
.tulua-media-panel figure { min-width: 0; min-height: 630px; position: relative; overflow: hidden; }
.tulua-media-panel figure img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; }
.tulua-media-panel figcaption { padding: 10px 14px; position: absolute; right: 20px; bottom: 20px; max-width: calc(100% - 36px); box-sizing: border-box; color: #fff; border-radius: 999px; background: rgba(18,62,49,.84); font-size: 10px; line-height: 1.35; font-weight: 700; text-align: right; white-space: normal; backdrop-filter: blur(8px); }

.tulua-page .tulua-auto-finder { padding-bottom: 0; }
.tulua-page .tulua-auto-finder .studio-fields { grid-template-columns: 1.08fr .98fr 1.18fr .92fr 1.22fr; }
.tulua-auto-status { padding: 15px 22px; display: flex; justify-content: space-between; align-items: center; gap: 25px; border-top: 1px solid rgba(255,255,255,.13); background: rgba(255,255,255,.06); }
.tulua-auto-status span { display: flex; align-items: center; gap: 10px; font-size: 12px; }
.tulua-auto-status i { width: 8px; height: 8px; border-radius: 50%; background: #ef9b72; box-shadow: 0 0 0 6px rgba(239,155,114,.12); }
.tulua-auto-status p { margin: 0; color: rgba(255,255,255,.63); font-size: 11px; }
.tulua-page #results { transition: opacity .25s ease, transform .25s ease; }
.tulua-page #results.is-auto-refreshed { opacity: .76; transform: translateY(4px); }
.gallery-dialog-heading > p { margin: 8px 0 0; color: var(--muted); font-size: 13px; }

@media (max-width: 1100px) {
  .tulua-intro { grid-template-columns: 1fr; gap: 42px; }
  .tulua-classification { max-width: 720px; }
  .tulua-section-heading { grid-template-columns: 1fr; gap: 20px; }
  .tulua-location-layout { grid-template-columns: 1fr; }
  .tulua-map-card,
  .tulua-map-card iframe { min-height: 470px; }
  .tulua-catalogue-panel header { grid-template-columns: 1fr; gap: 22px; }
  .tulua-media-panel { min-height: 570px; grid-template-columns: minmax(300px, .75fr) minmax(0, 1.25fr); }
  .tulua-media-panel figure { min-height: 570px; }
  .tulua-page .tulua-auto-finder .studio-fields { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
  .tulua-page .tulua-official-logo { width: 160px; max-height: 55px; margin-bottom: 14px; }
  .tulua-intro,
  .tulua-location,
  .tulua-catalogue,
  .tulua-media { padding-block: 72px; }
  .tulua-intro h2,
  .tulua-section-heading h2 { font-size: 39px; }
  .tulua-intro-copy .lead { font-size: 18px; }
  .tulua-classification { padding: 29px; border-radius: 24px; }
  .tulua-location-layout { padding: 12px; border-radius: 24px; }
  .tulua-location-stack article { padding: 24px; }
  .tulua-map-card,
  .tulua-map-card iframe { min-height: 390px; }
  .tulua-map-card > div { left: 10px; right: 10px; bottom: 10px; }
  .tulua-catalogue-panel header { padding: 30px 25px; }
  .tulua-catalogue-panel header h3 { font-size: 31px; }
  .catalogue-columns { grid-template-columns: 1fr; }
  .catalogue-columns > div { padding: 28px 25px; }
  .catalogue-columns > div + div { border-top: 1px solid var(--line); border-left: 0; }
  .tulua-media-stage { border-radius: 24px; }
  .tulua-media-panel { min-height: 0; grid-template-columns: 1fr; border-radius: 24px; }
  .tulua-media-panel .media-copy { padding: 34px 27px; }
  .tulua-media-panel dl { margin-top: 32px; }
  .tulua-media-panel figure { min-height: 390px; order: -1; }
  .tulua-media-panel figcaption { right: 12px; bottom: 12px; }
  .tulua-page .tulua-auto-finder .studio-fields { grid-template-columns: 1fr; }
  .tulua-auto-status { align-items: flex-start; flex-direction: column; gap: 8px; }
}

/* TULUA compact premium layout and shared live-search controls */
.tulua-page .tulua-intro {
  padding-block: 68px 54px;
  gap: 52px;
}
.tulua-page .tulua-intro h2,
.tulua-page .tulua-section-heading h2 {
  margin: 10px 0 18px;
  font-size: clamp(37px, 3.55vw, 52px);
}
.tulua-page .tulua-classification { padding: 32px; }
.tulua-page .tulua-classification h3 { font-size: 32px; }
.tulua-page .tulua-classification ul { margin-block: 20px; }
.tulua-page .tulua-classification li { padding-block: 9px; }

.tulua-page .tulua-location { padding-block: 10px 58px; }
.tulua-page .tulua-catalogue { padding-block: 54px 60px; }
.tulua-page .tulua-media { padding-block: 58px 72px; }
.tulua-page .tulua-section-heading {
  margin-bottom: 26px;
  gap: 44px;
}
.tulua-page .tulua-location-layout { padding: 18px; gap: 16px; }
.tulua-page .tulua-location-stack { gap: 13px; }
.tulua-page .tulua-location-stack article { padding: 22px 24px; }
.tulua-page .tulua-location-stack h3 { margin-block: 8px; font-size: 24px; }
.tulua-page .tulua-location-stack ul { margin-top: 12px; }
.tulua-page .tulua-map-card,
.tulua-page .tulua-map-card iframe { min-height: 440px; }

.tulua-page .tulua-catalogue-tabs { margin-bottom: 18px; }
.tulua-page .tulua-catalogue-tabs button,
.tulua-page .tulua-media-categories button,
.tulua-page .tulua-media-tabs button { padding: 11px 16px; font-size: 12px; }
.tulua-page .tulua-catalogue-panel header {
  padding: 28px 34px;
  gap: 44px;
}
.tulua-page .tulua-catalogue-panel header h3 { font-size: clamp(28px, 2.4vw, 34px); }
.tulua-page .catalogue-columns > div { padding: 27px 34px 32px; }
.tulua-page .catalogue-columns h4 { margin-bottom: 12px; font-size: 22px; }
.tulua-page .catalogue-columns p {
  margin: 0 0 15px;
  color: #66746d;
  font-size: 13px;
  line-height: 1.65;
}
.tulua-page .catalogue-columns li { padding-block: 8px; }
.tulua-page .catalogue-location-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  background: #f7f3eb;
}
.tulua-page .catalogue-location-strip > div { padding: 23px 28px; }
.tulua-page .catalogue-location-strip > div + div { border-left: 1px solid var(--line); }
.tulua-page .catalogue-location-strip small,
.tulua-page .catalogue-location-strip strong,
.tulua-page .catalogue-location-strip span { display: block; }
.tulua-page .catalogue-location-strip small { color: var(--orange-deep); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.tulua-page .catalogue-location-strip strong { margin-top: 7px; font-size: 16px; }
.tulua-page .catalogue-location-strip span { margin-top: 7px; color: #66746d; font-size: 11px; line-height: 1.55; }
.tulua-page .catalogue-room-list {
  padding: 22px 28px 28px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  border-top: 1px solid var(--line);
  background: #f7f3eb;
}
.tulua-page .catalogue-room-list details {
  align-self: start;
  overflow: hidden;
  border: 1px solid rgba(18,62,49,.12);
  border-radius: 14px;
  background: #fff;
}
.tulua-page .catalogue-room-list summary {
  padding: 14px 16px;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  list-style: none;
}
.tulua-page .catalogue-room-list summary::-webkit-details-marker { display: none; }
.tulua-page .catalogue-room-list summary span { font-size: 13px; font-weight: 800; }
.tulua-page .catalogue-room-list summary small { color: var(--orange-deep); font-size: 9px; font-weight: 800; }
.tulua-page .catalogue-room-list details p { margin: 0; padding: 0 16px 16px; color: #66746d; font-size: 12px; line-height: 1.65; }

.tulua-page .tulua-media-categories { margin-bottom: 12px; }
.tulua-page .tulua-media-tabs { margin-bottom: 16px; padding-bottom: 2px; }
.tulua-page .tulua-media-tabs[hidden] { display: none !important; }
.tulua-page .tulua-media-tabs[data-media-tabs="rooms"] {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  overflow: visible;
  padding-bottom: 0;
}
.tulua-page .tulua-media-tabs[data-media-tabs="rooms"] button {
  width: 100%;
  min-width: 0;
  white-space: normal;
  line-height: 1.25;
}
.tulua-page .tulua-media-stage,
.tulua-page .tulua-media-panel { border-radius: 26px; }
.tulua-page .tulua-media-panel {
  min-height: 490px;
  grid-template-columns: minmax(300px, .56fr) minmax(0, 1.44fr);
}
.tulua-page .tulua-media-panel .media-copy { padding: 34px 36px 30px; }
.tulua-page .tulua-media-panel .media-copy h3 {
  margin: 11px 0 17px;
  font-size: clamp(30px, 2.55vw, 40px);
}
.tulua-page .tulua-media-panel .media-copy > p:not(:first-child) { font-size: 14px; line-height: 1.62; }
.tulua-page .tulua-media-panel dl { margin: 23px 0 18px; }
.tulua-page .tulua-media-panel dl > div { padding-block: 9px; }
.tulua-page .tulua-media-panel figure { min-height: 490px; cursor: zoom-in; }

.tulua-page .offers { padding-block: 64px 78px; }
.tulua-page .offers-heading { gap: 48px; }
.tulua-page .offers-heading h2 {
  font-size: clamp(42px, 4.5vw, 62px);
  line-height: 1.02;
}
.tulua-page .tulua-auto-finder {
  width: calc(100% - 72px);
  max-width: 1680px;
  margin-top: 30px;
  position: relative;
  z-index: 20;
}
.tulua-page .tulua-auto-finder .studio-head { padding: 18px 24px; }
.tulua-page .tulua-auto-finder .studio-head strong { font-size: 19px; }
.tulua-page .tulua-auto-finder .travel-modes { padding-inline: 20px; }
.tulua-page .tulua-auto-finder .travel-modes button { padding: 15px 5px 13px; font-size: 14px; }
.tulua-page .tulua-auto-finder .premium-search-fields {
  padding: 13px 16px 15px;
  grid-template-columns: 1.06fr 1fr 1.28fr .88fr .94fr 1fr;
  gap: 7px;
}
.tulua-page .tulua-auto-finder .studio-field,
.tulua-page .tulua-auto-finder .studio-submit {
  min-height: 78px;
  border-radius: 14px;
}
.tulua-page .tulua-auto-finder .studio-field { padding: 11px 13px; }
.tulua-page .tulua-auto-finder .studio-field > span { margin-bottom: 4px; font-size: 9px; }
.tulua-page .tulua-auto-finder .field-trigger { min-height: 30px; }
.tulua-page .tulua-auto-finder .field-trigger strong { font-size: 14px; }
.tulua-page .tulua-auto-finder .studio-field > small { font-size: 9px; }
.tulua-page .tulua-auto-finder .studio-submit {
  padding: 12px 15px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2px 8px;
}
.tulua-page .tulua-auto-finder .studio-submit span { font-size: 13px; }
.tulua-page .tulua-auto-finder .studio-submit small { grid-column: 1 / -1; color: rgba(255,255,255,.72); font-size: 9px; }
.tulua-page .tulua-auto-finder .studio-options { padding: 13px 17px; }
.tulua-page .tulua-auto-finder .live-search-note { margin: 0 16px 15px; padding: 11px 14px; }

/* Shared finder details: compact field icons, fine chevrons and one calendar scale */
.studio-field > .studio-field-label,
.tulua-page .tulua-auto-finder .studio-field > .studio-field-label {
  display: flex;
  align-items: center;
  gap: 7px;
}

.finder-field-icon {
  width: 24px;
  height: 24px;
  display: inline-grid;
  flex: 0 0 24px;
  place-items: center;
  color: var(--orange-deep);
  background: #eef4eb;
  border: 1px solid #d9e4da;
  border-radius: 8px;
  font-size: 12px;
  font-style: normal;
  letter-spacing: 0;
  line-height: 1;
}

.finder-field-icon--travelers::before {
  width: 12px;
  height: 10px;
  content: "";
  background:
    radial-gradient(circle at 35% 25%, currentColor 0 2px, transparent 2.5px),
    radial-gradient(circle at 73% 34%, currentColor 0 1.7px, transparent 2.2px),
    radial-gradient(ellipse at 34% 88%, currentColor 0 4px, transparent 4.5px),
    radial-gradient(ellipse at 76% 90%, currentColor 0 3px, transparent 3.5px);
}

.studio-submit-arrow {
  width: 25px;
  height: 1px;
  position: relative;
  display: block;
  background: currentColor;
}

.studio-submit-arrow::after {
  width: 7px;
  height: 7px;
  position: absolute;
  top: -3px;
  right: 0;
  content: "";
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: rotate(45deg);
}

.date-range-popover .calendar-head strong { font-size: 21px; }
.date-range-popover .calendar-selection { margin: 13px 0 16px; padding: 11px 14px; border-radius: 13px; }
.date-range-popover .calendar-selection > div { min-width: 0; flex: 1; }
.date-range-popover .calendar-months { gap: 24px; }
.date-range-popover .calendar-month h4 { margin-bottom: 9px; font-size: 18px; }
.date-range-popover .calendar-days button,
.date-range-popover .calendar-empty { min-height: 31px; border-radius: 9px; }
.date-range-popover .calendar-footer { margin-top: 15px; padding-top: 14px; }

@media (max-width: 680px) {
  .date-range-popover { width: calc(100% - 24px); padding: 17px 14px; }
  .date-range-popover .calendar-months { grid-template-columns: 1fr; gap: 22px; }
}
.tulua-page .results-layout { margin-top: 28px; position: relative; z-index: 2; }

.mobile-results-actions,
.mobile-filter-toggle,
.mobile-search-return,
.mobile-filter-done,
.filter-backdrop { display: none; }

main img:not(.operator-logo):not(.tulua-official-logo):not(.jaz-riviera-official-logo):not(.nalu-official-logo):not(.koia-official-logo),
.gallery-dialog img { cursor: zoom-in; }
.image-viewer-dialog,
.document-viewer-dialog {
  width: min(96vw, 1720px);
  max-width: none;
  height: min(94vh, 1080px);
  max-height: none;
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 24px;
  background: #0d241e;
  box-shadow: 0 40px 120px rgba(0,0,0,.55);
}
.image-viewer-dialog::backdrop,
.document-viewer-dialog::backdrop { background: rgba(7,23,18,.88); backdrop-filter: blur(12px); }
.image-viewer-dialog figure {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  margin: 0;
  display: grid;
  place-items: center;
  box-sizing: border-box;
}
.image-viewer-dialog figure img {
  display: block;
  width: calc(100% - 36px);
  height: calc(100% - 36px);
  max-width: none;
  max-height: none;
  position: absolute;
  top: 18px;
  left: 18px;
  object-fit: contain;
  object-position: center;
  cursor: default;
}
.image-viewer-dialog figcaption {
  padding: 12px 15px;
  display: flex;
  gap: 18px;
  justify-content: space-between;
  position: absolute;
  left: 22px;
  bottom: 20px;
  color: #fff;
  border-radius: 14px;
  background: rgba(13,36,30,.86);
  font-size: 12px;
  backdrop-filter: blur(10px);
}
.image-viewer-close,
.image-viewer-nav {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  position: absolute;
  z-index: 2;
  color: #fff;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 50%;
  background: rgba(13,36,30,.86);
  cursor: pointer;
  font: inherit;
  font-size: 20px;
  backdrop-filter: blur(10px);
}
.image-viewer-close { top: 18px; right: 18px; }
.image-viewer-nav { top: 50%; transform: translateY(-50%); }
.image-viewer-nav.previous { left: 18px; }
.image-viewer-nav.next { right: 18px; }
.image-viewer-download {
  padding: 12px 15px;
  position: absolute;
  right: 22px;
  bottom: 20px;
  z-index: 5;
  color: #fff;
  border-radius: 14px;
  background: var(--orange);
  font-size: 12px;
  font-weight: 800;
}
.document-viewer-dialog { display: grid; grid-template-rows: auto auto 1fr; background: #f8f5ef; }
.document-viewer-dialog:not([open]) { display: none; }
.document-viewer-dialog header { padding: 15px 20px; display: flex; justify-content: space-between; align-items: center; gap: 20px; border-bottom: 1px solid rgba(18, 62, 49, .12); }
.document-viewer-dialog header small,
.document-viewer-dialog header strong { display: block; }
.document-viewer-dialog header small { color: var(--orange-deep); font-size: 9px; text-transform: uppercase; letter-spacing: .12em; }
.document-viewer-dialog header strong { margin-top: 4px; font-size: 18px; }
.document-viewer-dialog header button { width: 42px; height: 42px; border: 0; border-radius: 50%; background: #e7efe5; cursor: pointer; font-size: 20px; }
.document-viewer-toolbar {
  min-height: 62px;
  padding: 10px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  color: var(--ink);
  border-bottom: 1px solid rgba(18, 62, 49, .12);
  background: #fff;
}
.document-viewer-pagination,
.document-viewer-zoom { display: flex; align-items: center; gap: 8px; }
.document-viewer-toolbar button,
.document-viewer-toolbar a {
  min-height: 38px;
  padding: 0 13px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: var(--ink);
  border: 1px solid rgba(18, 62, 49, .16);
  border-radius: 999px;
  background: #f4f7f1;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}
.document-viewer-toolbar button:disabled { opacity: .35; cursor: default; }
.document-viewer-toolbar a { padding-inline: 17px; color: #fff; border-color: var(--forest); background: var(--forest); }
.document-viewer-flow-hint {
  min-height: 38px;
  padding: 0 13px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--forest);
  border-radius: 999px;
  background: rgba(201, 239, 106, .22);
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}
.document-viewer-flow-hint span { color: var(--orange-deep); font-size: 16px; }
.document-viewer-pagination label { display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700; }
.document-viewer-pagination input {
  width: 52px;
  height: 36px;
  color: var(--ink);
  border: 1px solid rgba(18, 62, 49, .16);
  border-radius: 10px;
  background: #fff;
  text-align: center;
  font: inherit;
  font-weight: 800;
}
.document-viewer-zoom output { min-width: 58px; text-align: center; font-size: 11px; font-weight: 800; }
.document-viewer-stage {
  min-height: 0;
  overflow: auto;
  position: relative;
  overscroll-behavior: contain;
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
  background: #dfe5df;
}
.document-viewer-pages { width: max-content; min-width: 100%; padding: 28px; display: grid; grid-auto-flow: row; justify-items: center; align-items: start; gap: 24px; }
.document-viewer-page {
  width: max-content;
  margin: 0;
  overflow: hidden;
  position: relative;
  scroll-margin-top: 18px;
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 14px 40px rgba(12, 45, 35, .16);
}
.document-viewer-page canvas { display: block; max-width: none; background: #fff; image-rendering: auto; }
.document-viewer-page:is([data-render-state="pending"], [data-render-state="queued"], [data-render-state="loading"])::after {
  content: "Seite " attr(data-document-page) " wird geladen";
  padding: 10px 13px;
  position: absolute;
  left: 50%;
  top: 50%;
  color: var(--ink);
  border-radius: 999px;
  background: rgba(248, 245, 239, .94);
  box-shadow: 0 8px 24px rgba(12, 45, 35, .12);
  font-size: 11px;
  font-weight: 800;
  transform: translate(-50%, -50%);
}
.document-viewer-page[data-render-state="error"] { display: grid; place-items: center; }
.document-viewer-page-error { margin: 0; padding: 24px; color: var(--ink); font-size: 13px; font-weight: 800; text-align: center; }
.document-viewer-loading {
  padding: 13px 17px;
  position: absolute;
  left: 50%;
  top: 52%;
  z-index: 3;
  color: var(--ink);
  border-radius: 999px;
  background: rgba(251, 249, 243, .96);
  box-shadow: 0 12px 35px rgba(12, 45, 35, .16);
  font-size: 12px;
  font-weight: 800;
  transform: translate(-50%, -50%);
}

/* Tablet and rotated-phone PDF controls must fit the dialog itself. Keep
   the document scroll area bounded and place the hint on a compact second row. */
@media (min-width: 761px) and (max-width: 1024px) {
  .document-viewer-dialog { grid-template-columns: minmax(0, 1fr); }
  .document-viewer-dialog > header,
  .document-viewer-toolbar,
  .document-viewer-stage { min-width: 0; }
  .document-viewer-dialog > header > div { min-width: 0; flex: 1; }
  .document-viewer-dialog > header strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .document-viewer-dialog > header > button { flex-shrink: 0; }
  .document-viewer-toolbar { flex-wrap: wrap; gap: 8px 12px; padding: 8px 14px; }
  .document-viewer-pagination,
  .document-viewer-zoom { flex: 0 0 auto; }
  .document-viewer-toolbar > a { flex-shrink: 0; white-space: nowrap; }
  .document-viewer-flow-hint {
    flex: 1 1 100%;
    order: 1;
    min-height: 30px;
    justify-content: center;
  }
}

@media (max-width: 1180px) {
  .tulua-page .tulua-auto-finder .premium-search-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tulua-page .tulua-auto-finder .studio-submit { grid-column: 1 / -1; }
  .tulua-page .tulua-media-tabs[data-media-tabs="rooms"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  body.hotel-filter-open { overflow: hidden; }
  body.hotel-filter-open.tulua-page .results-layout { z-index: 150; }
  .tulua-page .tulua-intro,
  .tulua-page .tulua-location,
  .tulua-page .tulua-catalogue,
  .tulua-page .tulua-media { padding-block: 46px; }
  .tulua-page .tulua-location { padding-top: 0; }
  .tulua-page .tulua-intro h2,
  .tulua-page .tulua-section-heading h2 { font-size: 35px; }
  .tulua-page .tulua-section-heading { margin-bottom: 20px; gap: 12px; }
  .tulua-page .tulua-map-card,
  .tulua-page .tulua-map-card iframe { min-height: 330px; }
  .tulua-page .tulua-catalogue-panel header,
  .tulua-page .catalogue-columns > div { padding: 24px 21px; }
  .tulua-page .catalogue-location-strip,
  .tulua-page .catalogue-room-list { grid-template-columns: 1fr; }
  .tulua-page .catalogue-location-strip > div + div { border-top: 1px solid var(--line); border-left: 0; }
  .tulua-page .catalogue-room-list { padding: 16px; }
  .tulua-page .tulua-media-panel { grid-template-columns: 1fr; }
  .tulua-page .tulua-media-panel figure { min-height: 330px; }
  .tulua-page .tulua-auto-finder { width: calc(100% - 20px); }
  .tulua-page .tulua-auto-finder .premium-search-fields { grid-template-columns: 1fr; }
  .tulua-page .tulua-auto-finder .studio-submit { grid-column: auto; }
  .tulua-page .results-layout { width: calc(100% - 20px); display: block; }

  .mobile-results-actions {
    width: 100%;
    margin: 0 0 14px;
    padding: 6px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
    position: sticky;
    z-index: 86;
    top: calc(var(--holiday-secondary-nav-top, 78px) + 62px);
    border: 1px solid rgba(18,62,49,.12);
    border-radius: 16px;
    background: rgba(251,249,243,.96);
    box-shadow: 0 12px 28px rgba(18,62,49,.14);
    backdrop-filter: blur(14px);
  }
  .mobile-filter-toggle,
  .mobile-search-return {
    width: 100%;
    min-width: 0;
    min-height: 50px;
    margin: 0;
    padding: 9px 12px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    color: #fff;
    border: 1px solid transparent;
    border-radius: 11px;
    font: inherit;
    font-size: 14px !important;
    font-weight: 800;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
  }
  .mobile-filter-toggle { background: #173f34; }
  .mobile-filter-toggle[aria-expanded="true"] { background: #b85e38; }
  .mobile-filter-toggle svg {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    fill: #173f34;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
  }
  .mobile-filter-toggle b {
    min-width: 24px;
    height: 24px;
    padding: 0 6px;
    display: inline-grid;
    place-items: center;
    color: #173f34;
    border-radius: 999px;
    background: #f1a47d;
    font-size: 12px;
    line-height: 1;
  }
  .mobile-search-return {
    color: #173f34;
    border-color: rgba(18,62,49,.2);
    background: #fff;
  }
  .mobile-search-return i {
    color: #b85e38;
    font-size: 20px;
    font-style: normal;
    line-height: 1;
  }
  .tulua-page .tulua-auto-finder { scroll-margin-top: calc(var(--holiday-secondary-nav-top, 78px) + 70px); }
  .tulua-page .tulua-media-panel figure,
  .image-viewer-dialog figure,
  .document-viewer-stage { touch-action: pan-y; }
  .tulua-page .results-layout > .filters {
    width: min(92vw, 420px);
    max-height: 100dvh;
    margin: 0;
    display: block;
    position: fixed;
    z-index: 120;
    inset: 0 auto 0 0;
    overflow-y: auto;
    border: 0;
    border-radius: 0 24px 24px 0;
    transform: translateX(-105%);
    transition: transform .24s ease;
  }
  body.hotel-filter-open.tulua-page .results-layout > .filters { transform: translateX(0); }
  .filter-backdrop {
    position: fixed;
    z-index: 110;
    inset: 0;
    background: rgba(4,24,17,.66);
    backdrop-filter: blur(5px);
  }
  .hotel-filter-open .filter-backdrop { display: block; }
  .mobile-filter-done {
    width: calc(100% - 28px);
    min-height: 48px;
    margin: 14px;
    display: block;
    position: sticky;
    bottom: 14px;
    color: #fff;
    border: 0;
    border-radius: 13px;
    background: var(--orange);
    font: inherit;
    font-size: 13px;
    font-weight: 800;
  }
  .image-viewer-dialog,
  .document-viewer-dialog { width: 100vw; height: 100dvh; border-radius: 0; }
  .document-viewer-dialog header { padding: 11px 14px; }
  .document-viewer-dialog header strong { max-width: 72vw; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
  .document-viewer-toolbar { padding: 9px 11px; flex-wrap: wrap; justify-content: center; }
  .document-viewer-toolbar > a { width: 100%; order: 3; }
  .document-viewer-flow-hint { width: 100%; order: -1; justify-content: center; }
  .document-viewer-pagination,
  .document-viewer-zoom { flex: 1 1 auto; justify-content: center; }
  .document-viewer-pages { padding: 14px; gap: 14px; }
  .hotel-dossier-preview-open { padding: 14px; }
  .tulua-page .jaz-document-panel .hotel-dossier-preview {
    height: 390px;
    min-height: 390px;
    max-height: 390px;
  }
  .hotel-dossier-canvas { inset: 22px; }
  .tulua-page .tulua-media-tabs[data-media-tabs="rooms"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .image-viewer-dialog figcaption { right: 18px; bottom: 74px; }
  .image-viewer-download { right: 18px; bottom: 18px; }
  .image-viewer-nav { width: 42px; height: 42px; }
  .image-viewer-nav.previous { left: 8px; }
  .image-viewer-nav.next { right: 8px; }
}

/* Compact field columns for every hotel-page finder. */
.search-studio .studio-head,
.tulua-page .tulua-auto-finder .studio-head { padding: 14px 20px; }

.search-studio .travel-modes,
.tulua-page .tulua-auto-finder .travel-modes { padding-inline: 18px; }

.search-studio .travel-modes button,
.tulua-page .tulua-auto-finder .travel-modes button { padding: 11px 4px 9px; }

.search-studio .studio-fields,
.tulua-page .tulua-auto-finder .premium-search-fields { padding: 11px 14px 13px; gap: 7px; }

.search-studio .studio-field,
.search-studio .studio-submit,
.tulua-page .tulua-auto-finder .studio-field,
.tulua-page .tulua-auto-finder .studio-submit {
  min-height: 68px;
  border-radius: 12px;
}

.search-studio .studio-field,
.tulua-page .tulua-auto-finder .studio-field { padding: 8px 11px; }

.search-studio .studio-field > span,
.tulua-page .tulua-auto-finder .studio-field > span { margin-bottom: 2px; font-size: 8px; }

.search-studio .field-trigger,
.tulua-page .tulua-auto-finder .field-trigger { min-height: 27px; }

.search-studio .field-trigger strong,
.tulua-page .tulua-auto-finder .field-trigger strong { font-size: 13px; }

.search-studio .studio-field > small,
.tulua-page .tulua-auto-finder .studio-field > small { font-size: 8px; }

.finder-field-icon { width: 21px; height: 21px; flex-basis: 21px; border-radius: 7px; font-size: 10px; }
.studio-options { padding: 9px 13px; }
.live-search-note { padding: 9px 12px; }

@media (max-width: 680px) {
  .search-studio .studio-field,
  .search-studio .studio-submit,
  .tulua-page .tulua-auto-finder .studio-field,
  .tulua-page .tulua-auto-finder .studio-submit { min-height: 64px; }
}

/* TULUA: clearer search/results hierarchy and direct full-screen media browsing. */
.tulua-page .offers {
  color: #173f34;
  background:
    radial-gradient(circle at 92% 10%, rgba(204, 225, 204, .56), transparent 30%),
    linear-gradient(180deg, #f8f5ee 0%, #f1eee6 100%);
}
.tulua-page .offers-heading .eyebrow { color: #bf5f37; }
.tulua-page .offers-heading h2 { color: #173f34; }
.tulua-page .offers-heading > p { color: #65756d; }
.tulua-page .tulua-auto-finder {
  color: #fff;
  border: 1px solid rgba(255,255,255,.13);
  background: #173f34;
  box-shadow: 0 22px 55px rgba(18,62,49,.18);
}
.tulua-page .tulua-auto-finder .studio-options,
.tulua-page .tulua-auto-finder .live-search-note {
  color: #173f34;
  border-color: #cad9cc;
  background: #e5eee3;
}
.tulua-page .tulua-auto-finder .studio-options strong,
.tulua-page .tulua-auto-finder .studio-options span,
.tulua-page .tulua-auto-finder .live-search-note { color: #173f34; }
.tulua-page .results-layout > .filters {
  color: #fff;
  border-color: rgba(255, 255, 255, .15);
  background: radial-gradient(circle at 100% 0, rgba(195, 230, 91, .08), transparent 34%),
    #173f34;
  box-shadow: 0 20px 48px rgba(10, 48, 37, .2);
}
.tulua-page .filters .filter-title,
.tulua-page .filters fieldset { border-color: #d5dfd5; }
.tulua-page .filters .filter-title small { color: #ef9b72; }
.tulua-page .filters .filter-title strong,
.tulua-page .filters legend { color: #173f34; }
.tulua-page .filters .filter-title button { color: #fff; }
.tulua-page .filters label { color: #455f55; }
.tulua-page .filters label small { color: #7b8d84; }
.tulua-page .filters input { accent-color: #d16d43; }
.tulua-page .results-toolbar strong { color: #173f34; }
.tulua-page .results-toolbar span,
.tulua-page .results-toolbar label { color: #6d7e76; }
.tulua-page .results-toolbar select {
  color: #173f34;
  border-color: #d4ddd4;
  background: #fff;
}
.tulua-page .active-filters button { color: #173f34; background: #dbe9d9; }
.tulua-page .offer-card,
.tulua-page .live-results-empty {
  color: #173f34;
  border-color: #dce4dc;
  background: #fff;
  box-shadow: 0 20px 50px rgba(18,62,49,.09);
}

.tulua-media-thumbnails {
  padding: 9px;
  display: flex;
  gap: 8px;
  position: absolute;
  z-index: 3;
  right: 18px;
  bottom: 18px;
  left: 18px;
  overflow-x: auto;
  border-radius: 17px;
  background: rgba(13,36,30,.82);
  scrollbar-width: thin;
  backdrop-filter: blur(12px);
}
.tulua-media-thumbnails button {
  width: 68px;
  height: 52px;
  flex: 0 0 68px;
  padding: 0;
  overflow: hidden;
  border: 2px solid transparent;
  border-radius: 11px;
  background: transparent;
  cursor: pointer;
}
.tulua-media-thumbnails button.is-active { border-color: #ef9b72; }
.tulua-media-thumbnails img { width: 100% !important; height: 100% !important; position: static !important; object-fit: cover; }
.tulua-media-panel figcaption { top: 18px; right: 18px; bottom: auto; }

.image-viewer-dialog[open] {
  display: grid;
  grid-template-rows: 58px minmax(0, 1fr) 82px;
}
.image-viewer-toolbar {
  grid-row: 1;
  min-width: 0;
  padding: 0 82px 0 22px;
  display: flex;
  align-items: center;
  position: relative;
  z-index: 4;
  color: #fff;
  border-bottom: 1px solid rgba(255, 255, 255, .1);
  background: #102f27;
}
.image-viewer-meta {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 12px;
  line-height: 1.25;
}
.image-viewer-meta span {
  overflow: hidden;
  color: rgba(255, 255, 255, .78);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.image-viewer-meta b {
  flex: 0 0 auto;
  color: #fffaf2;
  font-size: 12px;
}
.image-viewer-dialog .image-viewer-close {
  width: 38px;
  height: 38px;
  top: 10px;
  right: 14px;
  z-index: 6;
  border-color: rgba(239, 160, 119, .35);
  background: rgba(255, 255, 255, .08);
}
.image-viewer-dialog figure {
  grid-row: 2;
  height: 100%;
  padding: 0;
  position: relative;
  overflow: hidden;
}
.image-viewer-dialog figcaption { bottom: 96px; }
.image-viewer-thumbnails {
  grid-row: 3;
  width: 100%;
  height: 82px;
  padding: 9px 88px 9px 18px;
  display: flex;
  gap: 8px;
  position: relative;
  z-index: 4;
  inset: auto;
  overflow-x: auto;
  box-sizing: border-box;
  background: rgba(6,23,18,.96);
  scrollbar-width: thin;
}
.image-viewer-thumbnails button {
  width: 78px;
  height: 60px;
  flex: 0 0 78px;
  padding: 0;
  overflow: hidden;
  border: 2px solid transparent;
  border-radius: 10px;
  background: transparent;
  cursor: pointer;
}
.image-viewer-thumbnails button.is-active { border-color: #ef9b72; }
.image-viewer-thumbnails img { width: 100%; height: 100%; object-fit: cover; }
.image-viewer-download { bottom: 18px; }

/* Binding hotel-photo rules: every lead and preview image fills its Hero frame
   edge to edge. The full uncropped source remains reserved for media panels and
   the opened image viewer, where an empty background may be necessary. */
.hotel-page .hero-gallery-grid figure > img,
.hotel-page .hero-gallery-grid figure:hover > img {
  width: 100%;
  height: 100%;
  object-fit: cover !important;
  object-position: center !important;
  transform: none !important;
}
.hotel-page .hero-gallery-grid figure,
.hotel-page .tulua-media-panel figure,
.hotel-page .image-viewer-dialog figure {
  background: #102d25;
}
.hotel-page .tulua-media-panel figure > img,
.hotel-page .tulua-media-thumbnails img,
.hotel-page .image-viewer-thumbnails img {
  object-fit: scale-down !important;
  object-position: center !important;
  transform: none !important;
}
.hotel-page .image-viewer-dialog figure > img {
  object-fit: contain !important;
  object-position: center !important;
  transform: none !important;
}
.hotel-page .tulua-media-thumbnails img,
.hotel-page .image-viewer-thumbnails img {
  background: #102d25;
}

/* Mobile hotel galleries follow the finger and complete the change with a
   directional slide. The cloned outgoing image keeps the frame filled while
   the next image enters; desktop geometry and card dimensions stay unchanged. */
.hotel-page .mobile-image-slide-clone {
  position: absolute !important;
  z-index: 1;
  margin: 0;
  pointer-events: none;
  will-change: translate;
}

@media (max-width: 760px) {
  .hotel-page .tulua-media-panel figure > img,
  .hotel-page .image-viewer-dialog figure > img {
    will-change: translate;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hotel-page .mobile-image-slide-clone { display: none !important; }
  .hotel-page .tulua-media-panel figure > img,
  .hotel-page .image-viewer-dialog figure > img { will-change: auto; }
}

@media (max-width: 760px) {
  .tulua-media-thumbnails { right: 10px; bottom: 10px; left: 10px; }
  .tulua-media-thumbnails button { width: 58px; height: 45px; flex-basis: 58px; }
  .image-viewer-dialog[open] { grid-template-rows: 54px minmax(0, 1fr) 76px; }
  .image-viewer-toolbar { padding: 0 62px 0 14px; }
  .image-viewer-meta { gap: 9px; font-size: 10px; }
  .image-viewer-meta b { font-size: 10px; }
  .image-viewer-dialog .image-viewer-close {
    width: 36px;
    height: 36px;
    top: 9px;
    right: 10px;
  }
  .image-viewer-dialog figure { height: 100%; padding: 0; }
  .image-viewer-dialog figure img {
    width: calc(100% - 16px);
    height: calc(100% - 16px);
    top: 8px;
    left: 8px;
  }
  .image-viewer-dialog figcaption { right: 12px; bottom: 88px; left: 12px; }
  .image-viewer-thumbnails { height: 76px; padding: 8px 76px 8px 8px; }
  .image-viewer-thumbnails button { width: 70px; height: 54px; flex-basis: 70px; }
}

/* Verified flight details and selectable alternatives are shared by every
   hotel page because all result surfaces use hotel-demo.js. */
.flight-details[aria-busy="true"] > summary { cursor: progress; }
.flight-details[aria-busy="true"] > summary i { animation: flight-detail-spin .8s linear infinite; }
@keyframes flight-detail-spin { to { transform: rotate(360deg); } }

.flight-alternatives-trigger {
  width: 100%;
  min-height: 46px;
  padding: 9px 18px;
  display: grid;
  grid-template-columns: 1fr auto 24px;
  gap: 18px;
  align-items: center;
  color: var(--forest-deep);
  border: 0;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(90deg, #f8f2e9, #edf4ec);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.flight-alternatives-trigger > span { display: grid; }
.flight-alternatives-trigger small {
  color: var(--orange-deep);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.flight-alternatives-trigger strong { font-size: 11px; }
.flight-alternatives-trigger > b {
  padding: 7px 10px;
  border-radius: 999px;
  background: #f7dfd2;
  font-size: 9px;
}
.flight-alternatives-trigger > i { color: var(--orange-deep); font-size: 17px; font-style: normal; }
.flight-alternatives-trigger:focus-visible,
.flight-alternative-card > footer button:focus-visible {
  outline: 3px solid rgba(239, 155, 114, .48);
  outline-offset: 3px;
}
.offer-card.is-selected-flight { border-color: var(--orange); box-shadow: 0 18px 45px rgba(204, 103, 63, .14); }

.flight-alternatives-dialog {
  width: min(1180px, calc(100% - 32px));
  max-width: none;
  max-height: calc(100dvh - 32px);
  padding: 0;
  color: var(--forest-deep);
  border: 0;
  border-radius: 26px;
  background: #fffdf9;
  box-shadow: 0 36px 100px rgba(3, 30, 22, .42);
}
.flight-alternatives-dialog:not([open]) { display: none; }
.flight-alternatives-dialog::backdrop { background: rgba(4, 30, 23, .78); backdrop-filter: blur(7px); }
.flight-alternatives-dialog__shell { max-height: calc(100dvh - 32px); overflow-y: auto; scrollbar-width: none; }
.flight-alternatives-dialog__shell::-webkit-scrollbar { width: 0; height: 0; }
.flight-alternatives-dialog__shell > header {
  padding: 24px 28px 20px;
  display: flex;
  position: sticky;
  z-index: 5;
  top: 0;
  align-items: flex-start;
  justify-content: space-between;
  gap: 22px;
  border-bottom: 1px solid var(--line);
  background: rgba(255, 253, 249, .96);
  backdrop-filter: blur(14px);
}
.flight-alternatives-dialog__shell > header small {
  color: var(--orange-deep);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.flight-alternatives-dialog__shell > header h2 { margin: 5px 0 4px; font-size: 32px; font-weight: 500; }
.flight-alternatives-dialog__shell > header p { margin: 0; color: #718078; font-size: 10px; }
.flight-alternatives-dialog__shell > header button {
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  color: var(--forest-deep);
  border: 1px solid var(--line);
  border-radius: 50%;
  background: #eaf2e8;
  font-size: 23px;
  cursor: pointer;
}
.flight-alternatives-dialog__list { padding: 20px; display: grid; gap: 16px; background: #edf2eb; }
.flight-alternative-card { overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: #fff; }
.flight-alternative-card > header {
  padding: 18px 22px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 22px;
  border-bottom: 1px solid var(--line);
}
.flight-alternative-card > header > div { display: grid; }
.flight-alternative-card > header > div:last-child { min-width: 210px; text-align: right; }
.flight-alternative-card > header small { color: var(--orange-deep); font-size: 8px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.flight-alternative-card > header h3 { margin: 4px 0 2px; font-size: 21px; font-weight: 600; }
.flight-alternative-card > header span { color: #718078; font-size: 9px; }
.flight-alternative-card > header strong { margin: 3px 0; font-size: 27px; }
.flight-alternative-card > header b { color: var(--orange-deep); font-size: 9px; }
.flight-alternative-card .flight-grid { border-bottom: 0; }
.flight-alternative-card > footer {
  padding: 16px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  background: #f6f3ed;
}
.flight-alternative-card > footer > span { color: #718078; font-size: 9px; }
.flight-alternative-card > footer button,
.flight-alternatives-error > button {
  min-height: 46px;
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
  color: #fff;
  border: 0;
  border-radius: 999px;
  background: var(--forest-deep);
  font-family: inherit;
  font-size: 10px;
  font-weight: 900;
  cursor: pointer;
}
.flight-alternative-card > footer button i { color: #f2a17d; font-size: 16px; font-style: normal; }
.flight-alternatives-loading,
.flight-alternatives-error { min-height: 220px; padding: 32px; display: grid; place-content: center; justify-items: center; gap: 8px; border-radius: 18px; background: #fff; text-align: center; }
.flight-alternatives-loading i { width: 28px; height: 28px; border: 3px solid rgba(23, 63, 53, .18); border-top-color: var(--orange); border-radius: 50%; animation: flight-detail-spin .8s linear infinite; }
.flight-alternatives-loading span,
.flight-alternatives-error span { color: #718078; font-size: 10px; }

@media (max-width: 760px) {
  .flight-alternatives-trigger { grid-template-columns: 1fr 22px; padding-inline: 12px; }
  .flight-alternatives-trigger > b { display: none; }
  .flight-alternatives-dialog { width: 100vw; height: 100dvh; max-height: none; border-radius: 0; }
  .flight-alternatives-dialog__shell { max-height: 100dvh; }
  .flight-alternatives-dialog__shell > header { padding: 18px 16px 15px; }
  .flight-alternatives-dialog__shell > header h2 { font-size: 27px; }
  .flight-alternatives-dialog__list { padding: 10px; }
  .flight-alternative-card > header,
  .flight-alternative-card > footer { align-items: stretch; flex-direction: column; }
  .flight-alternative-card > header > div:last-child { min-width: 0; text-align: left; }
  .flight-alternative-card > footer button { width: 100%; }
}

/* TULUA finder and results polish: anchored airport selector, premium filters,
   and calmer editorial headings. */
.tulua-page .tulua-auto-finder .picker-field {
  position: relative;
}

.tulua-page .tulua-auto-finder .airport-popover {
  width: min(560px, calc(100vw - 48px));
  max-width: none;
  max-height: var(--airport-popover-max-height, min(520px, calc(100vh - 120px)));
  padding: 17px;
  left: 0 !important;
  right: auto !important;
  overflow: hidden;
  transform: none !important;
  border-radius: 18px;
}

.tulua-page .tulua-auto-finder .airport-popover.is-above {
  top: auto;
  bottom: calc(100% + 12px);
}

.tulua-page .tulua-auto-finder .airport-popover header {
  margin-bottom: 10px;
}

.tulua-page .tulua-auto-finder .airport-popover header strong {
  font-size: 21px;
  line-height: 1.15;
}

.tulua-page .tulua-auto-finder .airport-list {
  max-height: calc(var(--airport-popover-max-height, min(520px, calc(100vh - 120px))) - 146px);
  padding-right: 5px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: #b7c8bb transparent;
  scrollbar-width: thin;
}

.tulua-page .tulua-auto-finder .airport-country-heading {
  margin-top: 5px;
  padding: 6px 2px 3px;
  position: sticky;
  z-index: 2;
  top: 0;
  background: #fffdf8;
  font-size: 8px;
}

.tulua-page .tulua-auto-finder .airport-list button {
  min-height: 54px;
  padding: 8px 10px;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 1px 7px;
  border-radius: 11px;
}

.tulua-page .tulua-auto-finder .airport-list b { font-size: 12px; }
.tulua-page .tulua-auto-finder .airport-list span { font-size: 11px; }
.tulua-page .tulua-auto-finder .airport-list small { font-size: 8px; }

.tulua-page .tulua-auto-finder .airport-popover .picker-footer {
  margin-top: 10px;
  padding-top: 10px;
  display: grid;
  grid-template-columns: auto minmax(180px, 1fr);
  gap: 12px;
  align-items: center;
  color: #6d7c75;
  border-top: 1px solid #e1e7df;
  font-size: 9px;
}

.tulua-page .tulua-auto-finder .airport-popover .picker-apply {
  min-height: 38px;
  width: auto;
  padding-inline: 14px;
  font-size: 10px;
}

.tulua-page .results-layout > .filters {
  color: #fff;
  border-color: rgba(255, 255, 255, .15);
  background:
    radial-gradient(circle at 100% 0, rgba(195, 230, 91, .08), transparent 34%),
    #173f34;
  box-shadow: 0 22px 52px rgba(10, 48, 37, .2);
}

.tulua-page .filters .filter-title,
.tulua-page .filters fieldset,
.tulua-page .filters .filter-group {
  border-color: rgba(255, 255, 255, .12);
}

.tulua-page .filters .filter-title small { color: #ef9b72; }
.tulua-page .filters .filter-title strong,
.tulua-page .filters legend,
.tulua-page .filters .filter-group > summary strong { color: #fff; }
.tulua-page .filters .filter-title button {
  color: #fff;
  border-color: rgba(239, 155, 114, .42);
}
.tulua-page .filters .filter-group > summary small,
.tulua-page .filters .filter-range-card header small { color: rgba(255, 255, 255, .55); }
.tulua-page .filters .filter-range-card header b { color: #cfe6d0; }
.tulua-page .filters .filter-range-card {
  border-color: rgba(255, 255, 255, .12);
  background: rgba(255, 255, 255, .06);
}
.tulua-page .filters label,
.tulua-page .filters .filter-copy strong { color: rgba(255, 255, 255, .9); }
.tulua-page .filters label small,
.tulua-page .filters .filter-copy small { color: rgba(255, 255, 255, .52); }
.tulua-page .filters .filter-option > b { color: rgba(255, 255, 255, .68); }
.tulua-page .filters .filter-check {
  border-color: rgba(255, 255, 255, .48);
  background: rgba(255, 255, 255, .06);
}
.tulua-page .filters .range-slider-row > span,
.tulua-page .filters .range-scale { color: rgba(255, 255, 255, .52); }
.tulua-page .filters .range-slider-row > b { color: rgba(255, 255, 255, .9); }
.tulua-page .filters .range-slider-row input[type="range"]::-webkit-slider-runnable-track {
  background: rgba(255, 255, 255, .22);
}
.tulua-page .filters .range-slider-row input[type="range"]::-moz-range-track {
  background: rgba(255, 255, 255, .22);
}

.tulua-page .tulua-section-heading h2 {
  margin: 8px 0 14px;
  font-size: clamp(32px, 3vw, 46px);
  line-height: 1.02;
}

.tulua-page .tulua-media .tulua-section-heading {
  margin-bottom: 20px;
}

@media (max-width: 760px) {
  .tulua-page .tulua-auto-finder .airport-popover {
    width: auto;
    max-height: calc(100dvh - 104px);
    padding: 14px;
    position: fixed;
    top: 88px;
    right: 12px !important;
    bottom: auto;
    left: 12px !important;
    margin: 0;
    border-radius: 18px;
  }

  .tulua-page .tulua-auto-finder .airport-list {
    max-height: calc(100dvh - 246px);
  }

  .tulua-page .tulua-section-heading h2 {
    font-size: clamp(29px, 9vw, 36px);
  }
}

/* Preserve the previously approved media-card footprint after the global
   typography refinements above. */
.tulua-page .tulua-media-panel {
  min-height: 490px;
  grid-template-columns: minmax(300px, .56fr) minmax(0, 1.44fr);
}
.tulua-page .tulua-media-panel figure { min-height: 490px; }

@media (max-width: 760px) {
  .tulua-page .tulua-media-panel { min-height: 0; grid-template-columns: 1fr; }
  .tulua-page .tulua-media-panel figure { min-height: 390px; }
}

/* The only deliberate Hero refinement: a quieter, properly spaced breadcrumb. */
.tulua-page .hero-breadcrumbs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: .005em;
}
.tulua-page .hero-breadcrumbs a {
  color: rgba(255,255,255,.82);
  font-weight: 400;
}
.tulua-page .hero-breadcrumbs strong { color: #fff; font-weight: 600; }
.tulua-page .hero-breadcrumbs span {
  margin-inline: 8px;
  color: rgba(255,255,255,.38);
  font-weight: 300;
}

@media (max-width: 760px) {
  .tulua-page .hero-breadcrumbs { font-size: 10.5px; line-height: 1.35; }
  .tulua-page .hero-breadcrumbs span { margin-inline: 5px; }
}

.tulua-page .tulua-heading-solo { grid-template-columns: minmax(0, 1fr); }
.tulua-page .tulua-heading-solo > div { max-width: 780px; }

/* Finder overlays: every choice stays anchored to its own field on desktop
   and becomes the same compact, viewport-safe sheet on small screens. */
.tulua-page .tulua-auto-finder .picker-field,
.tulua-page .tulua-auto-finder .date-range-field { position: relative; }

.tulua-page .tulua-auto-finder .field-popover,
.tulua-page .tulua-auto-finder .date-range-popover {
  max-height: var(--field-popover-max-height, 560px);
  margin: 0;
  position: absolute;
  z-index: 95;
  top: calc(100% + 10px);
  right: auto;
  bottom: auto;
  left: 0;
  overflow-y: auto;
  transform: none;
  overscroll-behavior: contain;
}

.tulua-page .tulua-auto-finder .field-popover.is-above,
.tulua-page .tulua-auto-finder .date-range-popover.is-above {
  top: auto;
  bottom: calc(100% + 10px);
}

.tulua-page .tulua-auto-finder .date-range-popover {
  width: min(740px, calc(100vw - 24px));
  padding: 19px 20px;
}

.tulua-page .tulua-auto-finder .duration-popover { width: min(560px, calc(100vw - 24px)); }
.tulua-page .tulua-auto-finder .travelers-popover { width: min(410px, calc(100vw - 24px)); }
.tulua-page .tulua-auto-finder .hotel-context-popover { width: min(400px, calc(100vw - 24px)); }

.tulua-page .tulua-auto-finder .airport-popover {
  max-height: var(--field-popover-max-height, 520px);
  overflow: hidden;
}
.tulua-page .tulua-auto-finder .airport-list {
  max-height: min(330px, calc(var(--field-popover-max-height, 520px) - 177px));
  overflow-y: auto;
}
.airport-load-more {
  width: 100%;
  min-height: 37px;
  margin-top: 9px;
  color: #173f34;
  border: 1px solid #d7e2d8;
  border-radius: 11px;
  background: #edf4eb;
  cursor: pointer;
  font: inherit;
  font-size: 10px;
  font-weight: 700;
}
.airport-load-more:hover { border-color: #ef9b72; background: #fff8ef; }

body.tulua-page.finder-picker-open { overflow: hidden; }
body.tulua-page.finder-picker-open::before {
  content: "";
  position: fixed;
  z-index: 240;
  inset: 0;
  background: rgba(6, 30, 23, .62);
  backdrop-filter: blur(5px);
}

.tulua-page .is-mobile-field-popover {
  width: auto !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 16px !important;
  position: fixed !important;
  z-index: 250 !important;
  inset: 76px 12px 12px !important;
  overflow-y: auto !important;
  border-radius: 19px !important;
  transform: none !important;
  overscroll-behavior: contain;
}
.tulua-page .is-mobile-field-popover.airport-popover { overflow: hidden !important; }
.tulua-page .is-mobile-field-popover .airport-list {
  max-height: calc(100dvh - 282px);
  overflow-y: auto;
}

/* The media card keeps its approved dimensions; only typography and controls
   are refined. */
.tulua-page .tulua-media-panel {
  min-height: 490px;
  grid-template-columns: minmax(300px, .56fr) minmax(0, 1.44fr);
}
.tulua-page .tulua-media-panel figure { min-height: 490px; }

.tulua-media-arrow {
  width: 46px;
  height: 46px;
  padding: 0;
  display: grid;
  position: absolute;
  z-index: 5;
  top: 50%;
  place-items: center;
  color: #fff;
  border: 1px solid rgba(255,255,255,.38);
  border-radius: 50%;
  background: rgba(13, 52, 42, .82);
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
  cursor: pointer;
  transform: translateY(-50%);
  backdrop-filter: blur(9px);
  transition: background .18s ease, transform .18s ease;
}
.tulua-media-arrow:hover { background: #173f34; transform: translateY(-50%) scale(1.05); }
.tulua-media-arrow--previous { left: 18px; }
.tulua-media-arrow--next { right: 18px; }
.tulua-media-arrow span { font-size: 20px; line-height: 1; }

@media (max-width: 760px) {
  .tulua-page .tulua-media-panel { min-height: 0; grid-template-columns: 1fr; }
  .tulua-page .tulua-media-panel figure { min-height: 390px; }
  .tulua-media-arrow { width: 40px; height: 40px; }
  .tulua-media-arrow--previous { left: 10px; }
  .tulua-media-arrow--next { right: 10px; }
}

@media (max-width: 430px) {
  .tulua-page .tulua-auto-finder .airport-list { grid-template-columns: 1fr; }
  .tulua-page .tulua-auto-finder .airport-popover .picker-footer {
    grid-template-columns: 1fr;
  }
  .tulua-page .tulua-auto-finder .airport-popover .picker-apply { width: 100%; }
}

.tulua-page .hotel-subnav {
  gap: clamp(26px, 3vw, 48px);
}

.tulua-page .hotel-subnav a {
  padding: 22px 0 19px;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .005em;
  border-bottom-width: 2px;
}

@media (max-width: 760px) {
  .tulua-page .hotel-subnav { gap: 22px; }
  .tulua-page .hotel-subnav a { padding: 18px 0 15px; font-size: 11px; }
}

/* TULUA typography system: quieter proportions, finer reading type and a
   consistently more compact rhythm across the complete hotel page. */
.tulua-page .section-shell {
  width: min(1220px, calc(100% - 72px));
}

.tulua-page .tulua-intro,
.tulua-page .tulua-location,
.tulua-page .tulua-catalogue,
.tulua-page .tulua-media,
.tulua-page .offers {
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 14px;
  letter-spacing: -.004em;
}

.tulua-page .eyebrow,
.tulua-page .detail-index,
.tulua-page .tulua-location-stack article > span,
.tulua-page .tulua-media-panel .media-copy > p:first-child,
.tulua-page .tulua-catalogue-panel header > div > p {
  margin-bottom: 9px;
  font-size: 9px;
  line-height: 1.3;
  letter-spacing: .17em;
}

.tulua-page .hotel-subnav {
  width: min(1220px, calc(100% - 72px));
  min-height: 58px;
  padding-inline: 22px;
  border-radius: 17px;
}
.tulua-page .hotel-subnav a { padding: 18px 0 16px; }

.tulua-page .tulua-intro {
  padding-block: 46px 40px;
  grid-template-columns: minmax(0, 1.42fr) minmax(290px, .58fr);
  gap: 34px;
  align-items: start;
}
.tulua-page .tulua-intro h2 {
  max-width: 720px;
  margin: 7px 0 22px;
  font-size: clamp(34px, 3vw, 44px);
  line-height: 1.08;
  letter-spacing: -.028em;
}
.tulua-page .tulua-intro-copy .lead {
  max-width: 740px;
  margin-bottom: 13px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.62;
}
.tulua-page .tulua-intro-copy > p:not(.eyebrow):not(.lead) {
  max-width: 740px;
  font-size: 13.5px;
  line-height: 1.68;
}
.tulua-page .tulua-classification {
  padding: 25px 27px;
  border-radius: 24px;
}
.tulua-page .tulua-classification > p:first-child { margin-bottom: 12px; font-size: 9px; }
.tulua-page .tulua-classification h3 { font-size: 27px; line-height: 1.15; }
.tulua-page .tulua-classification > p:not(:first-child) { font-size: 12.5px; line-height: 1.62; }
.tulua-page .tulua-classification ul { margin-block: 17px; }
.tulua-page .tulua-classification li {
  padding: 8px 0 8px 17px;
  font-size: 11.5px;
  line-height: 1.45;
}
.tulua-page .tulua-classification li::before { top: 13px; }
.tulua-page .tulua-classification a { font-size: 11.5px; font-weight: 600; }

.tulua-page .tulua-location { padding-block: 6px 42px; }
.tulua-page .tulua-catalogue { padding-block: 40px 46px; }
.tulua-page .tulua-media { padding-block: 42px 50px; }
.tulua-page .tulua-section-heading {
  margin-bottom: 18px;
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr);
  gap: 28px;
}
.tulua-page .tulua-section-heading h2,
.tulua-page .tulua-media .tulua-section-heading h2 {
  margin: 6px 0 8px;
  font-size: clamp(30px, 2.65vw, 39px);
  line-height: 1.06;
  letter-spacing: -.025em;
}
.tulua-page .tulua-section-heading > p {
  margin-bottom: 2px;
  font-size: 12.5px;
  line-height: 1.62;
}

.tulua-page .tulua-location-layout {
  padding: 13px;
  gap: 11px;
  border-radius: 24px;
}
.tulua-page .tulua-location-stack { gap: 10px; }
.tulua-page .tulua-location-stack article {
  padding: 18px 20px;
  border-radius: 18px;
}
.tulua-page .tulua-location-stack h3 { margin-block: 6px; font-size: 20px; }
.tulua-page .tulua-location-stack p { font-size: 12px; line-height: 1.62; }
.tulua-page .tulua-location-stack ul { margin-top: 9px; }
.tulua-page .tulua-location-stack li { margin-top: 6px; font-size: 11px; }
.tulua-page .tulua-map-card,
.tulua-page .tulua-map-card iframe { min-height: 370px; }

.tulua-page .tulua-catalogue-tabs { margin-bottom: 14px; }
.tulua-page .tulua-catalogue-tabs button,
.tulua-page .tulua-media-categories button,
.tulua-page .tulua-media-tabs button {
  padding: 9px 13px;
  font-size: 10.5px;
}
.tulua-page .tulua-catalogue-panel { border-radius: 24px; }
.tulua-page .tulua-catalogue-panel header {
  padding: 21px 26px;
  grid-template-columns: 1.15fr .85fr;
  gap: 28px;
}
.tulua-page .tulua-catalogue-panel header h3 {
  margin-top: 7px;
  font-size: clamp(25px, 2.2vw, 30px);
  line-height: 1.12;
}
.tulua-page .tulua-catalogue-panel header > p { font-size: 12.5px; line-height: 1.62; }
.tulua-page .catalogue-columns > div { padding: 21px 26px 25px; }
.tulua-page .catalogue-columns h4 { margin-bottom: 9px; font-size: 19px; }
.tulua-page .catalogue-columns p { font-size: 12px; line-height: 1.62; }
.tulua-page .catalogue-columns li { padding-block: 6px; font-size: 11.5px; line-height: 1.52; }
.tulua-page .catalogue-location-strip > div { padding: 17px 20px; }
.tulua-page .catalogue-location-strip strong { margin-top: 5px; font-size: 14px; }
.tulua-page .catalogue-location-strip span { margin-top: 5px; font-size: 10.5px; }
.tulua-page .catalogue-room-list { padding: 17px 20px; }
.tulua-page .catalogue-room-list summary { padding: 12px 14px; }
.tulua-page .catalogue-room-list summary span { font-size: 12px; }
.tulua-page .catalogue-room-list details p { padding: 0 14px 13px; font-size: 11px; }

.tulua-page .tulua-media-categories { margin-bottom: 10px; }
.tulua-page .tulua-media-tabs { margin-bottom: 13px; }
.tulua-page .tulua-media-stage,
.tulua-page .tulua-media-panel { border-radius: 24px; }
.tulua-page .tulua-media-panel {
  min-height: 420px;
  grid-template-columns: minmax(260px, .68fr) minmax(0, 1.7fr);
}
.tulua-page .tulua-media-panel .media-copy { padding: 26px 28px 24px; }
.tulua-page .tulua-media-panel .media-copy h3 {
  margin: 10px 0 15px;
  font-size: clamp(27px, 2.45vw, 34px);
  line-height: 1.1;
}
.tulua-page .tulua-media-panel .media-copy > p:not(:first-child) { font-size: 12.5px; line-height: 1.58; }
.tulua-page .tulua-media-panel dl { margin: 18px 0 14px; }
.tulua-page .tulua-media-panel dl > div { padding-block: 7px; grid-template-columns: 86px 1fr; gap: 12px; }
.tulua-page .tulua-media-panel dt { font-size: 9.5px; }
.tulua-page .tulua-media-panel dd { font-size: 10.5px; }
.tulua-page .tulua-media-panel .media-copy a { padding-top: 13px; font-size: 11.5px; font-weight: 600; }
.tulua-page .tulua-media-panel figure { min-height: 420px; }

.tulua-page .offers { padding-block: 46px 58px; }
.tulua-page .offers-heading { margin-bottom: 25px; gap: 28px; }
.tulua-page .offers-heading h2 {
  font-size: clamp(34px, 3.3vw, 46px);
  line-height: 1.05;
  letter-spacing: -.025em;
}
.tulua-page .offers-heading > p { font-size: 12.5px; line-height: 1.62; }
.tulua-page .results-layout { margin-top: 22px; }
.tulua-page .filter-title { padding: 18px 20px; }
.tulua-page .filter-title strong { font-size: 19px; }
.tulua-page .filters fieldset { padding: 16px 20px; }
.tulua-page .offer-header { padding: 17px 22px; }
.tulua-page .offer-card { border-radius: 22px; }

@media (max-width: 960px) {
  .tulua-page .section-shell,
  .tulua-page .hotel-subnav { width: min(100% - 40px, 760px); }
  .tulua-page .tulua-intro { grid-template-columns: 1fr; gap: 24px; }
  .tulua-page .tulua-classification { max-width: none; }
  .tulua-page .tulua-section-heading { grid-template-columns: 1fr; gap: 8px; }
}

@media (max-width: 760px) {
  .tulua-page .section-shell,
  .tulua-page .hotel-subnav { width: calc(100% - 28px); }
  .tulua-page .hotel-subnav { min-height: 52px; padding-inline: 16px; gap: 20px; }
  .tulua-page .hotel-subnav a { padding: 15px 0 13px; font-size: 10.5px; }
  .tulua-page .tulua-intro { padding-block: 34px 30px; gap: 21px; }
  .tulua-page .tulua-intro h2 { margin-bottom: 17px; font-size: 31px; }
  .tulua-page .tulua-intro-copy .lead { font-size: 14.5px; line-height: 1.58; }
  .tulua-page .tulua-intro-copy > p:not(.eyebrow):not(.lead) { font-size: 12.5px; }
  .tulua-page .tulua-classification { padding: 21px; border-radius: 20px; }
  .tulua-page .tulua-classification h3 { font-size: 24px; }
  .tulua-page .tulua-location,
  .tulua-page .tulua-catalogue,
  .tulua-page .tulua-media { padding-block: 30px 34px; }
  .tulua-page .tulua-section-heading { margin-bottom: 14px; }
  .tulua-page .tulua-section-heading h2,
  .tulua-page .tulua-media .tulua-section-heading h2 { font-size: 29px; }
  .tulua-page .tulua-location-layout { padding: 9px; }
  .tulua-page .tulua-map-card,
  .tulua-page .tulua-map-card iframe { min-height: 290px; }
  /* Verbindliche Mobilreihenfolge: Titel zuerst, Erklaerung darunter in voller Breite. */
  .tulua-page .tulua-catalogue-panel header {
    padding: 19px 20px;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 14px;
  }
  .tulua-page .tulua-catalogue-panel header > p {
    width: 100%;
    max-width: none;
  }
  .tulua-page .catalogue-columns > div { padding: 18px 20px 21px; }
  .tulua-page .tulua-media-panel { min-height: 0; grid-template-columns: 1fr; }
  .tulua-page .tulua-media-panel .media-copy { padding: 22px 21px; }
  .tulua-page .tulua-media-panel figure { min-height: 300px; }
  .tulua-page .offers { padding-block: 35px 42px; }
  .tulua-page .offers-heading { margin-bottom: 20px; gap: 10px; }
  .tulua-page .offers-heading h2 { font-size: 33px; }
  .tulua-page .tulua-auto-finder .airport-popover {
    width: auto !important;
    max-height: calc(100dvh - 104px) !important;
    margin: 0 !important;
    position: fixed !important;
    inset: 88px 12px auto !important;
    transform: none !important;
  }
}

/* A compact, consistently sized media stage for rooms, dining and resort areas. */
.tulua-page .tulua-media-panel {
  min-height: 420px;
  grid-template-columns: minmax(270px, .62fr) minmax(0, 1.58fr);
}
.tulua-page .tulua-media-panel .media-copy { justify-content: flex-start; }
.tulua-page .tulua-media-panel figure { min-height: 420px; }
.tulua-page .tulua-media-thumbnails button,
.tulua-page .tulua-media-thumbnails button img { cursor: pointer !important; }

@media (max-width: 760px) {
  .tulua-page .tulua-media-panel { min-height: 0; grid-template-columns: 1fr; }
  .tulua-page .tulua-media-panel .media-copy { justify-content: flex-start; }
  .tulua-page .tulua-media-panel figure { min-height: 390px; }
}

/* One calm reading size throughout the complete hotel description. */
.tulua-page .tulua-intro-copy > p.hotel-copy {
  max-width: 760px;
  margin: 0 0 12px;
  color: #304c44;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.68;
  letter-spacing: -.004em;
}

/* Only the active category contributes to the layout. Hidden room tabs must
   never reserve space above a shorter dining or resort category. */
.tulua-page .tulua-media-tabs:not([hidden]) {
  min-height: 0;
  align-content: flex-start;
  align-items: flex-start;
  grid-auto-rows: max-content;
}
.tulua-page .tulua-media-tabs:not([hidden]) > button {
  min-height: 38px;
  height: auto;
  align-self: flex-start;
}

.tulua-page .tulua-media-thumbnails,
.tulua-page .tulua-media-categories,
.tulua-page .tulua-media-tabs,
.image-viewer-thumbnails {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.tulua-page .tulua-media-thumbnails::-webkit-scrollbar,
.tulua-page .tulua-media-categories::-webkit-scrollbar,
.tulua-page .tulua-media-tabs::-webkit-scrollbar,
.image-viewer-thumbnails::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

/* Binding mobile hotel layout: restore the tall lead-image presentation while
   preserving the established height of the three small preview tiles. Every
   hero image must fill its frame edge to edge without dark letterboxing. The
   hotel identity panel must grow from its content instead of reserving an
   empty fixed-height area. */
@media (max-width: 760px) {
  .hotel-hero-mosaic .hero-gallery-grid {
    min-height: 0;
    grid-template-rows:
      clamp(340px, calc(100vw - 22px), 430px)
      clamp(100px, 27vw, 122px);
  }
  .hotel-hero-mosaic .hero-gallery-grid figure {
    background: var(--paper);
  }
  .hotel-hero-mosaic .hero-gallery-grid figure > img {
    width: 100%;
    height: 100%;
    object-fit: cover !important;
    object-position: center !important;
    transform: none !important;
  }
  .hotel-hero-mosaic .hero-copy-panel {
    min-height: 0;
    height: auto;
    max-height: none;
    padding-bottom: 24px;
  }
  .hotel-hero-mosaic .hero-copy {
    flex: 0 0 auto;
    margin-top: 22px;
  }
  .hotel-hero-mosaic .hero-actions {
    margin-top: 22px;
    padding-top: 0;
  }
}

/* Compact live finder on every hotel page: the label sits above the white
   control, while the icon and current value stay inside the control. */
.search-studio .premium-search-fields { align-items: end; }
.search-studio .premium-search-fields > .studio-field {
  min-height: 0;
  padding: 0;
  position: relative;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.search-studio .premium-search-fields > .studio-field:hover {
  transform: none;
  box-shadow: none;
}
.search-studio .premium-search-fields > .studio-field > .studio-field-label {
  min-height: 11px;
  margin: 0 0 5px 2px;
  display: block;
  color: #ef9b72;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .13em;
  line-height: 1.15;
  text-transform: uppercase;
}
.search-studio .premium-search-fields > .studio-field > .studio-field-label .finder-field-icon {
  width: 23px;
  height: 23px;
  position: absolute;
  z-index: 2;
  bottom: 14px;
  left: 11px;
  border-radius: 7px;
  font-size: 10px;
}
.search-studio .premium-search-fields > .studio-field > .field-trigger {
  min-height: 51px;
  margin: 0;
  padding: 0 11px 0 43px;
  border: 1px solid rgba(18, 62, 49, .13);
  border-radius: 12px;
  background: #fffdf8;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .12);
}
.search-studio .premium-search-fields > .studio-field > .field-trigger:hover,
.search-studio .premium-search-fields > .studio-field > .field-trigger[aria-expanded="true"] {
  border-color: #d86b3c;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .16);
}
.search-studio .premium-search-fields > .studio-field > small { display: none; }
.search-studio .premium-search-fields > .studio-submit {
  min-height: 51px;
  align-self: end;
}
.search-studio .field-popover,
.search-studio .date-range-popover,
.tulua-page .tulua-auto-finder .field-popover,
.tulua-page .tulua-auto-finder .date-range-popover {
  top: calc(100% + 9px) !important;
  right: auto;
  bottom: auto !important;
  margin: 0;
  position: absolute !important;
  max-height: var(--field-popover-max-height, calc(100dvh - 32px));
  overflow-y: auto;
}

@media (max-width: 760px) {
  .search-studio .premium-search-fields > .studio-field > .field-trigger { min-height: 49px; }
  .search-studio .premium-search-fields > .studio-submit { min-height: 49px; }
  .search-studio .is-mobile-field-popover,
  .tulua-page .is-mobile-field-popover {
    top: 76px !important;
    right: 12px !important;
    bottom: 12px !important;
    left: 12px !important;
    max-height: none !important;
  }
}

/* Older static resort finders follow the same compact visual hierarchy. */
.search-studio .studio-fields:not(.premium-search-fields) { align-items: end; }
.search-studio .studio-fields:not(.premium-search-fields) > .studio-field {
  min-height: 0;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.search-studio .studio-fields:not(.premium-search-fields) > .studio-field:hover {
  transform: none;
  box-shadow: none;
}
.search-studio .studio-fields:not(.premium-search-fields) > .studio-field > span {
  min-height: 11px;
  margin: 0 0 5px 2px;
  color: #ef9b72;
  font-size: 8px;
  letter-spacing: .13em;
}
.search-studio .studio-fields:not(.premium-search-fields) > .studio-field > strong {
  min-height: 51px;
  margin: 0;
  padding: 0 11px 0 43px;
  display: flex;
  position: relative;
  align-items: center;
  border: 1px solid rgba(18, 62, 49, .13);
  border-radius: 12px;
  background: #fffdf8;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .12);
  font-size: 13px;
  line-height: 1.18;
}

/* Mobile Finder interaction invariant: every choice panel is a real viewport
   sheet. Later generic popover rules must never turn it back into an absolute
   panel, otherwise its confirmation action sits below the locked page. */
@media (max-width: 760px) {
  .is-mobile-field-popover,
  .search-studio [data-airport-popover]:not([hidden]),
  .search-studio [data-duration-popover]:not([hidden]),
  .search-studio [data-travelers-popover]:not([hidden]),
  .search-studio [data-hotel-context-popover]:not([hidden]),
  .search-studio [data-date-range-popover]:not([hidden]) {
    width: auto !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 16px !important;
    position: fixed !important;
    z-index: 250 !important;
    inset: 76px 12px 12px !important;
    overflow-y: auto !important;
    border-radius: 19px !important;
    transform: none !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body:has([data-airport-popover]:not([hidden]), [data-duration-popover]:not([hidden]), [data-travelers-popover]:not([hidden]), [data-hotel-context-popover]:not([hidden]), [data-date-range-popover]:not([hidden])) {
    overflow: hidden;
  }

  .is-mobile-field-popover.airport-popover,
  [data-airport-popover]:not([hidden]) {
    overflow: hidden !important;
  }

  [data-airport-popover] .picker-footer,
  [data-date-range-popover] .calendar-footer,
  [data-duration-popover] .duration-exact,
  [data-travelers-popover] > .picker-apply {
    position: sticky;
    z-index: 3;
    bottom: 0;
  }

  /* The sticky actions must cover choices scrolling behind them, including
     the sheet's 16px bottom padding. */
  [data-date-range-popover] .calendar-footer,
  [data-duration-popover] .duration-exact {
    background: #fffdf8;
    padding-bottom: 16px;
    margin-bottom: -16px;
    bottom: -16px;
  }

  [data-airport-popover] .picker-apply,
  [data-travelers-popover] .picker-apply,
  [data-date-range-popover] .calendar-confirm,
  [data-duration-popover] [data-duration-exact-apply] {
    min-height: 48px;
    pointer-events: auto;
    touch-action: manipulation;
  }
}
.search-studio .studio-fields:not(.premium-search-fields) > .studio-field > strong::before {
  width: 23px;
  height: 23px;
  display: grid;
  position: absolute;
  left: 10px;
  place-items: center;
  color: var(--orange-deep);
  border: 1px solid #d9e4da;
  border-radius: 7px;
  background: #eef4eb;
  font-size: 10px;
  font-weight: 700;
}
.search-studio .studio-fields:not(.premium-search-fields) > .studio-field:nth-child(1) > strong::before { content: "⌖"; }
.search-studio .studio-fields:not(.premium-search-fields) > .studio-field:nth-child(2) > strong::before { content: "✈"; }
.search-studio .studio-fields:not(.premium-search-fields) > .studio-field:nth-child(3) > strong::before { content: "▦"; }
.search-studio .studio-fields:not(.premium-search-fields) > .studio-field:nth-child(4) > strong::before { content: "◷"; }
.search-studio .studio-fields:not(.premium-search-fields) > .studio-field:nth-child(5) > strong::before { content: "◇"; }
.search-studio .studio-fields:not(.premium-search-fields) > .studio-field > small { display: none; }
.search-studio .studio-fields:not(.premium-search-fields) > .studio-submit {
  min-height: 51px;
  align-self: end;
}

.tulua-page .tulua-intro-copy > p.hotel-copy:last-child { margin-bottom: 0; }
.tulua-page .tulua-section-heading.tulua-heading-solo,
.tulua-page .offers-heading.tulua-heading-solo {
  grid-template-columns: minmax(0, 1fr);
}
.tulua-page .tulua-heading-solo > div { max-width: 780px; }

@media (max-width: 760px) {
  .tulua-page .tulua-intro-copy > p.hotel-copy {
    margin-bottom: 10px;
    font-size: 14px;
    line-height: 1.62;
  }
}

/* Compact premium result cards: all travel details stay available, while the
   recurring rows use less vertical space on desktop and especially mobile. */
.offer-card { margin-bottom: 14px; }
.offer-ribbon {
  right: 18px;
  padding: 7px 11px;
}
.offer-header {
  min-height: 64px;
  padding: 11px 18px;
}
.offer-header > div { gap: 10px; }
.operator-logo {
  width: 50px;
  max-height: 30px;
}
.operator-mark {
  width: 40px;
  height: 40px;
}
.offer-header p strong {
  margin-bottom: 2px;
  font-size: 16px;
}
.offer-header p small { font-size: 9.5px; }
.offer-meta-actions { gap: 8px; }
.catalogue-trigger {
  min-height: 34px;
  padding-inline: 14px;
}
.flight-grid { grid-template-columns: 128px 1fr; }
.flight-label {
  min-height: 84px;
  padding: 14px 15px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.flight-label span { margin-bottom: 5px; }
.flight-label strong {
  margin-bottom: 3px;
  font-size: 15px;
}
.flight-label small { font-size: 9.5px; }
.flight-route {
  min-height: 84px;
  padding: 12px 18px;
  grid-template-columns: 82px minmax(0, 1fr) 82px;
}
.flight-route strong { font-size: 19px; }
.flight-carrier-summary {
  margin-bottom: 5px;
  gap: 6px;
}
.offer-card .flight-carrier-summary .airline-logo,
.offer-card .flight-carrier-summary .airline-logo-fallback {
  width: 28px;
  height: 28px;
  flex-basis: 28px;
  border-radius: 8px;
}
.flight-line span { margin-bottom: 5px; }
.flight-line small { margin-top: 5px !important; }
.flight-details > summary {
  min-height: 38px;
  padding: 0 18px 0 146px;
}
.flight-details-content { padding: 5px 18px 18px 146px; }
.stay-grid div { padding: 13px 15px; }
.stay-grid small { margin-bottom: 5px; }
.stay-grid strong {
  margin-bottom: 3px;
  line-height: 1.25;
}
.stay-grid span { line-height: 1.35; }
.tariff-strip { padding: 10px 16px; }
.offer-footer {
  padding: 14px 16px;
  gap: 16px;
}
.benefit-list { gap: 5px 14px; }
.price { min-width: 158px; }
.price strong {
  margin: 1px 0;
  font-size: 25px;
}
.check-button {
  min-height: 52px;
  padding-inline: 16px;
  gap: 16px;
}
.hotel-only-message { padding: 16px 18px; }

@media (max-width: 1100px) {
  .flight-details > summary { padding-left: 18px; }
  .flight-details-content { padding-left: 18px; }
}

@media (max-width: 760px) {
  .offer-card {
    margin-bottom: 12px;
    border-radius: 18px;
  }
  .offer-ribbon {
    top: -4px;
    left: 0;
    right: auto;
    padding: 6px 10px;
    border-radius: 0 0 10px 0;
    font-size: 7.5px;
  }
  .offer-header {
    min-height: 70px;
    padding: 34px 12px 9px;
    align-items: center !important;
    gap: 8px;
  }
  .offer-header > div:first-child { gap: 8px; }
  .operator-logo {
    width: 43px;
    max-height: 27px;
  }
  .operator-mark {
    width: 34px;
    height: 34px;
    font-size: 10px;
  }
  .offer-header p strong {
    margin-bottom: 1px;
    font-size: 13.5px;
    line-height: 1.15;
  }
  .offer-header p small {
    font-size: 8px;
    line-height: 1.25;
  }
  .offer-meta-actions {
    align-items: flex-end;
    gap: 4px;
  }
  .catalogue-trigger {
    min-height: 30px;
    padding-inline: 10px;
    font-size: 8.5px;
  }
  .flight-grid {
    grid-template-columns: 86px minmax(0, 1fr);
  }
  .flight-label {
    min-height: 88px;
    padding: 10px 9px;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
  }
  .flight-label span {
    margin-bottom: 4px;
    font-size: 7.5px;
  }
  .flight-label strong {
    margin-bottom: 2px;
    font-size: 12px;
    line-height: 1.2;
  }
  .flight-label small {
    font-size: 8px;
    line-height: 1.3;
  }
  .flight-route {
    min-height: 88px;
    padding: 8px 9px;
    grid-template-columns: 50px minmax(0, 1fr) 50px;
    gap: 5px;
  }
  .flight-route strong { font-size: 16px; }
  .flight-route > div > span {
    font-size: 8.5px;
    line-height: 1.2;
  }
  .flight-route > div > small {
    margin-top: 2px;
    font-size: 7.5px;
  }
  .flight-carrier-summary {
    margin-bottom: 3px;
    flex-direction: column;
    gap: 2px;
  }
  .flight-carrier-summary > span:last-child {
    font-size: 7.5px !important;
    line-height: 1.12 !important;
  }
  .offer-card .flight-carrier-summary .airline-logo,
  .offer-card .flight-carrier-summary .airline-logo-fallback {
    width: 22px;
    height: 22px;
    flex-basis: 22px;
    border-radius: 7px;
  }
  .flight-line small {
    margin-top: 3px !important;
    font-size: 7.5px;
  }
  .flight-detail-shell { grid-column: 1 / -1; }
  .flight-details > summary {
    min-height: 36px;
    padding: 0 12px;
    grid-template-columns: 1fr 18px;
    gap: 7px;
  }
  .flight-details > summary span { font-size: 9px; }
  .flight-details-content { padding: 4px 10px 12px; }
  .flight-leg {
    padding: 11px;
    gap: 10px;
  }
  .stay-grid { grid-template-columns: 1fr 1fr; }
  .stay-grid div {
    min-height: 62px;
    padding: 9px 10px;
  }
  .stay-grid small {
    margin-bottom: 4px;
    font-size: 7.5px;
  }
  .stay-grid strong {
    margin-bottom: 2px;
    font-size: 11.5px;
    line-height: 1.2;
  }
  .stay-grid span {
    font-size: 8px;
    line-height: 1.25;
  }
  .tariff-strip {
    padding: 9px 11px;
    gap: 6px;
  }
  .offer-footer {
    padding: 11px 12px 12px;
    grid-template-columns: minmax(0, .8fr) minmax(145px, 1.2fr);
    gap: 9px 10px;
  }
  .benefit-list {
    grid-column: 1 / -1;
    gap: 3px 9px;
    font-size: 8.5px;
    line-height: 1.3;
  }
  .price {
    min-width: 0;
    text-align: left;
  }
  .price small { font-size: 7.5px; }
  .price strong { font-size: 23px; }
  .price span { font-size: 8.5px; }
  .check-button {
    min-height: 48px;
    padding-inline: 11px;
    grid-column: 2;
    justify-content: space-between;
    gap: 8px;
    font-size: 10px;
    line-height: 1.2;
  }
  .check-button span { font-size: 15px; }
  .hotel-only-message {
    padding: 13px 14px;
    font-size: 10.5px;
    line-height: 1.45;
  }
}

/* Shared compact Hotelwelten geometry: natural content height, no tallest-panel
   measurement, no centred blank text column. Images follow the active copy. */
.tulua-page .tulua-media-stage { min-height: 0; }
.tulua-page .tulua-media-panel {
  min-height: 0;
  grid-template-columns: minmax(300px, .9fr) minmax(0, 1.3fr);
}
.tulua-page .tulua-media-panel .media-copy {
  padding: 24px 28px;
  justify-content: flex-start;
}
.tulua-page .tulua-media-panel figure { min-height: 340px; margin: 0; }
.tulua-page .tulua-media-panel .media-copy h3 {
  margin: 10px 0 14px;
  font-size: clamp(26px, 2.2vw, 34px);
  line-height: 1.16;
}
.tulua-page .tulua-media-panel dl { margin: 18px 0 0; }
.tulua-page .tulua-media-panel .media-copy > a { margin-top: 18px; }
.tulua-page .tulua-media-tabs:not([hidden]) {
  height: auto;
  margin-bottom: 16px;
  flex-wrap: wrap;
  overflow: visible;
}
@media (max-width: 760px) {
  .tulua-page .tulua-media-panel { grid-template-columns: 1fr; }
  .tulua-page .tulua-media-panel .media-copy { padding: 22px; }
  .tulua-page .tulua-media-panel figure { min-height: 0; height: auto; aspect-ratio: 4 / 3; }
}

/* Shared hotel section title: Hotelwelten and Termine & Preise use one scale. */
.hotel-page .tulua-section-heading h2,
.hotel-page #offers-title {
  font-family: "Tenor Sans", Georgia, serif;
  font-size: clamp(30px, 2.65vw, 39px);
  font-weight: 400;
  line-height: 1.06;
  letter-spacing: -.025em;
  margin: 6px 0 8px;
  text-align: left;
}
.hotel-page #offers > .hotel-offers-heading {
  width: calc(100% - 72px);
  max-width: 1680px;
  display: block;
  text-align: left;
  margin-inline: auto;
}
.hotel-page .hotel-offers-heading .eyebrow {
  color: var(--orange);
  text-align: left;
}
.hotel-page .hotel-offers-heading > p.hotel-copy {
  max-width: 780px;
  margin: 18px 0 0;
}
@media (max-width: 960px) {
  .hotel-page #offers > .hotel-offers-heading { width: min(100% - 40px, 760px); }
}
@media (max-width: 760px) {
  .hotel-page .tulua-section-heading h2,
  .hotel-page #offers-title { font-size: 29px; }
  .hotel-page #offers > .hotel-offers-heading { width: calc(100% - 28px); }
}

/* Document image originals (such as room plans) must remain fully visible. */
.hotel-page .hotel-media-card .tulua-media-panel[data-media-group="documents"] figure > img {
  object-fit: contain !important;
  background: #fff;
}

/* Google draws a non-removable place card inside legacy map iframes. Crop only
   that top strip while retaining the interactive satellite map, attribution
   and bottom controls. This shared rule applies to every hotel map. */
.hotel-page .tulua-map-card {
  --hotel-map-place-card-crop: 210px;
  overflow: hidden;
}
.hotel-page .tulua-map-card iframe {
  width: 100%;
  height: calc(100% + var(--hotel-map-place-card-crop));
  min-height: 0;
  position: absolute;
  top: calc(var(--hotel-map-place-card-crop) * -1);
  right: 0;
  bottom: auto;
  left: 0;
}

/* Room catalogue standard 2: compact table-like rows on every hotel page. */
.hotel-page .room-catalogue > header {
  padding: 16px 32px;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .72fr);
  align-items: center;
  gap: 24px;
}
.hotel-page .room-catalogue > header h3 {
  font-size: clamp(22px, 1.9vw, 28px);
  line-height: 1.16;
}
.hotel-page .room-catalogue > header > p {
  font-size: 13px;
  line-height: 1.55;
}
.hotel-page .room-catalogue-list { padding: 0 32px 16px; display: block; }
.hotel-page .room-catalogue .room-entry { margin: 0; border: 0; border-bottom: 1px solid #dce3dd; border-radius: 0; background: #fff; color: #203d33; overflow: visible; }
.hotel-page .room-catalogue .room-entry:last-child { border-bottom: 0; }
.hotel-page .room-catalogue .room-entry > summary { list-style: none; display: grid; grid-template-columns: minmax(0,1fr) 32px; align-items: center; gap: 16px; min-height: 60px; margin: 0; padding: 10px 4px; cursor: pointer; border-radius: 8px; }
.hotel-page .room-catalogue .room-entry > summary::-webkit-details-marker { display: none; }
.hotel-page .room-catalogue .room-entry > summary::marker { content: ''; }
.hotel-page .room-catalogue .room-entry > summary:hover { background: #f5f7f2; }
.hotel-page .room-catalogue .room-entry > summary:focus-visible { outline: 3px solid #b96138; outline-offset: 3px; }
.hotel-page .room-entry-heading { display: grid; grid-template-columns: minmax(0,1fr) minmax(150px,.34fr); align-items: center; gap: 20px; min-width: 0; }
.hotel-page .room-entry-name { font-family: 'Tenor Sans', Georgia, serif; font-size: clamp(17px,1.25vw,20px); line-height: 1.3; font-weight: 400; overflow-wrap: anywhere; }
.hotel-page .room-entry-heading small { color: #62736a; font-family: 'DM Sans', sans-serif; font-size: 13px; font-weight: 500; line-height: 1.45; text-align: right; }
.hotel-page .room-entry-toggle { width: 32px; height: 32px; position: relative; border: 1px solid #cbd8cd; border-radius: 50%; background: #f4f7f1; flex: none; }
.hotel-page .room-entry-toggle::before, .hotel-page .room-entry-toggle::after { content: ''; position: absolute; background: #264b3d; top: 50%; left: 50%; width: 12px; height: 2px; transform: translate(-50%,-50%); }
.hotel-page .room-entry-toggle::after { transform: translate(-50%,-50%) rotate(90deg); }
.hotel-page .room-entry[open] .room-entry-toggle { background: #25493b; border-color: #25493b; }
.hotel-page .room-entry[open] .room-entry-toggle::before { background: white; }
.hotel-page .room-entry[open] .room-entry-toggle::after { display: none; }
.hotel-page .room-entry-body { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(240px,.85fr); gap: 14px 28px; margin: 0 0 10px; padding: 16px 18px; background: #f5f7f2; border-radius: 10px; }
.hotel-page .room-entry-body > * { min-width: 0; }
.hotel-page .room-entry-body h5 { margin: 0 0 7px; font-family: 'DM Sans',sans-serif; font-size: 13px; line-height: 1.45; font-weight: 700; letter-spacing: .025em; color: #25493b; }
.hotel-page .room-entry-body p, .hotel-page .room-catalogue-note p { margin: 0 0 8px; padding: 0; color: #53685d; font-size: 14px; line-height: 1.55; overflow-wrap: anywhere; }
.hotel-page .room-entry-body p:last-child { margin-bottom: 0; }
.hotel-page .room-entry-body dl { margin: 0; }
.hotel-page .room-entry-body dl > div { display: grid; grid-template-columns: minmax(80px,.8fr) minmax(0,1.4fr); gap: 12px; border-bottom: 1px solid #dce3dd; padding: 7px 0; font-size: 14px; line-height: 1.5; }
.hotel-page .room-entry-body dl > div:first-child { padding-top: 0; }
.hotel-page .room-entry-body dt { color: #62736a; }
.hotel-page .room-entry-body dd { margin: 0; color: #264638; overflow-wrap: anywhere; }
.hotel-page .room-entry-equipment, .hotel-page .room-entry-documents { grid-column: 1 / -1; }
.hotel-page .room-entry-equipment { border-top: 1px solid #dce3dd; padding-top: 12px; }
.hotel-page .room-entry-body ul, .hotel-page .room-catalogue-note ul { margin: 0; padding: 0 0 0 18px; color: #53685d; font-size: 14px; line-height: 1.55; }
.hotel-page .room-entry-equipment ul { columns: 2; column-gap: 28px; }
.hotel-page .room-entry-body li, .hotel-page .room-catalogue-note li { padding: 2px 0 2px 2px; break-inside: avoid; }
.hotel-page .room-entry-body li::marker, .hotel-page .room-catalogue-note li::marker { color: #b96138; }
.hotel-page .room-catalogue-notes { border-top: 1px solid #dce3dd; padding: 20px 32px 24px; background: #fcfcf9; }
.hotel-page .room-catalogue-notes > h4 { margin: 0 0 16px; font-family: 'Tenor Sans',Georgia,serif; font-size: 20px; line-height: 1.35; font-weight: 400; }
.hotel-page .room-catalogue-notes-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 24px; }
.hotel-page .room-catalogue-note h4 { font-family: 'DM Sans',sans-serif; font-size: 14px; font-weight: 700; line-height: 1.45; margin: 0 0 8px; }
@media (max-width: 700px) {
  .hotel-page .room-catalogue > header { padding: 15px 18px; grid-template-columns: minmax(0,1fr); gap: 7px; }
  .hotel-page .room-catalogue > header h3 { font-size: 22px; }
  .hotel-page .room-catalogue > header > p { font-size: 14px; line-height: 1.5; }
  .hotel-page .room-catalogue-list { padding: 0 16px 10px; }
  .hotel-page .room-catalogue .room-entry > summary { min-height: 64px; gap: 12px; padding: 9px 0; }
  .hotel-page .room-entry-heading { grid-template-columns: minmax(0,1fr); gap: 3px; }
  .hotel-page .room-entry-name { font-size: 18px; }
  .hotel-page .room-entry-heading small { font-size: 13px; text-align: left; }
  .hotel-page .room-entry-body { grid-template-columns: minmax(0,1fr); gap: 14px; margin-bottom: 8px; padding: 15px 16px; }
  .hotel-page .room-entry-body dl > div { grid-template-columns: minmax(75px,.8fr) minmax(0,1.4fr); }
  .hotel-page .room-entry-equipment ul { columns: 1; }
  .hotel-page .room-catalogue-notes { padding: 18px 18px 20px; }
  .hotel-page .room-catalogue-notes-grid { grid-template-columns: minmax(0,1fr); gap: 18px; }
}

/* Location & transfer standard 3: one calm premium composition for every
   current and future hotel page. Hotel-specific copy and the real interactive
   map stay untouched; only the shared presentation changes. */
.hotel-page .tulua-location-layout {
  padding: 0;
  gap: 0;
  grid-template-columns: minmax(410px, .86fr) minmax(0, 1.14fr);
  overflow: hidden;
  position: relative;
  isolation: isolate;
  border: 1px solid rgba(18, 62, 49, .15);
  border-radius: 28px;
  background: #173c32;
  box-shadow: 0 30px 75px rgba(18, 62, 49, .15);
}
.hotel-page .tulua-location-layout::before {
  content: "";
  height: 3px;
  position: absolute;
  inset: 0 0 auto;
  z-index: 4;
  pointer-events: none;
  background: linear-gradient(90deg, #d36b3f 0 35%, rgba(211, 107, 63, .2) 58%, transparent 82%);
}
.hotel-page .tulua-location-stack {
  gap: 0;
  min-width: 0;
  align-content: stretch;
  background:
    radial-gradient(circle at 8% 0%, rgba(226, 154, 111, .11), transparent 31%),
    linear-gradient(155deg, #173f34 0%, #12362d 100%);
}
.hotel-page .tulua-location-stack article,
.hotel-page .tulua-location-stack article:nth-child(2) {
  min-width: 0;
  padding: 27px 32px 25px;
  border-radius: 0;
  background: transparent;
}
.hotel-page .tulua-location-stack article + article {
  border-top: 1px solid rgba(255, 255, 255, .13);
}
.hotel-page .tulua-location-stack article > span {
  margin: 0 0 9px;
  color: #efa077;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .18em;
}
.hotel-page .tulua-location-stack h3 {
  margin: 0 0 9px;
  color: #fffdf8;
  font-size: clamp(21px, 1.5vw, 25px);
  line-height: 1.2;
  letter-spacing: -.018em;
}
.hotel-page .tulua-location-stack p {
  margin: 0;
  color: rgba(255, 255, 255, .72);
  font-size: 14px;
  line-height: 1.54;
}
.hotel-page .tulua-location-stack ul {
  margin: 13px 0 0;
}
.hotel-page .tulua-location-stack li {
  margin-top: 5px;
  padding-left: 19px;
  color: rgba(255, 255, 255, .91);
  font-size: 13px;
  line-height: 1.44;
}
.hotel-page .tulua-location-stack li::before {
  content: "";
  width: 5px;
  height: 5px;
  top: .62em;
  border-radius: 50%;
  background: #efa077;
}
.hotel-page .tulua-map-card {
  min-height: 470px;
  border-left: 0;
  border-radius: 0;
  background: #dce7df;
}
.hotel-page .tulua-map-card::before {
  content: "";
  width: 72px;
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(13, 48, 39, .18), transparent);
}
.hotel-page .tulua-map-card iframe {
  filter: saturate(.78) contrast(1.06) brightness(.97);
}
.hotel-page .tulua-map-card > div {
  z-index: 2;
  border: 1px solid rgba(255, 255, 255, .16);
  box-shadow: 0 15px 35px rgba(9, 38, 31, .18);
}

@media (max-width: 1100px) {
  .hotel-page .tulua-location-layout { grid-template-columns: minmax(0, 1fr); }
  .hotel-page .tulua-location-stack { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hotel-page .tulua-location-stack article + article {
    border-top: 0;
    border-left: 1px solid rgba(255, 255, 255, .13);
  }
  .hotel-page .tulua-map-card {
    min-height: 400px;
    border-top: 1px solid rgba(255, 255, 255, .13);
    border-left: 0;
  }
  .hotel-page .tulua-map-card::before {
    width: auto;
    height: 52px;
    inset: 0 0 auto;
    background: linear-gradient(180deg, rgba(13, 48, 39, .16), transparent);
  }
}

@media (max-width: 760px) {
  .hotel-page .tulua-location-layout { border-radius: 23px; }
  .hotel-page .tulua-location-stack { grid-template-columns: minmax(0, 1fr); }
  .hotel-page .tulua-location-stack article,
  .hotel-page .tulua-location-stack article:nth-child(2) { padding: 26px 24px 25px; }
  .hotel-page .tulua-location-stack article + article {
    border-top: 1px solid rgba(255, 255, 255, .13);
    border-left: 0;
  }
  .hotel-page .tulua-location-stack article > span { font-size: 10px; }
  .hotel-page .tulua-location-stack h3 { margin-bottom: 11px; font-size: 22px; }
  .hotel-page .tulua-location-stack p { font-size: 14px; line-height: 1.62; }
  .hotel-page .tulua-location-stack ul { margin-top: 15px; }
  .hotel-page .tulua-location-stack li { margin-top: 7px; font-size: 13px; }
  .hotel-page .tulua-map-card { min-height: 330px; }
}

/* Hotel introduction standard 4: the editorial description and our
   classification form one compact, premium composition. Every hotel keeps its
   complete individual copy, category and recommendation points. */
.hotel-page .tulua-intro {
  margin-block: 42px 34px;
  padding: 0;
  gap: 0;
  grid-template-columns: minmax(0, 1.36fr) minmax(360px, .64fr);
  align-items: stretch;
  overflow: hidden;
  position: relative;
  isolation: isolate;
  border: 1px solid rgba(18, 62, 49, .14);
  border-radius: 28px;
  background: #fbfaf5;
  box-shadow: 0 28px 72px rgba(18, 62, 49, .12);
}
.hotel-page .tulua-intro::before {
  content: "";
  height: 3px;
  position: absolute;
  inset: 0 0 auto;
  z-index: 3;
  pointer-events: none;
  background: linear-gradient(90deg, #d36b3f 0 38%, rgba(211, 107, 63, .22) 62%, transparent 84%);
}
.hotel-page .tulua-intro-copy {
  max-width: none;
  min-width: 0;
  padding: 35px 44px 33px;
  background:
    radial-gradient(circle at 100% 0%, rgba(23, 63, 52, .055), transparent 37%),
    #fbfaf5;
}
.hotel-page .tulua-intro-copy > .eyebrow {
  margin: 0 0 8px;
  color: #b8532f;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .18em;
}
.hotel-page .tulua-intro h2 {
  max-width: 760px;
  margin: 0 0 20px;
  font-size: clamp(33px, 2.8vw, 43px);
  line-height: 1.055;
  letter-spacing: -.03em;
}
.hotel-page .tulua-intro-copy > p.hotel-copy {
  max-width: 900px;
  margin: 0 0 11px;
  color: #304c44;
  font-size: 15px;
  line-height: 1.58;
}
.hotel-page .tulua-intro-copy > p.hotel-copy:last-child { margin-bottom: 0; }
.hotel-page .tulua-classification {
  min-width: 0;
  padding: 34px 36px 28px;
  display: flex;
  flex-direction: column;
  border-radius: 0;
  background:
    radial-gradient(circle at 96% 0%, rgba(239, 160, 119, .12), transparent 34%),
    linear-gradient(155deg, #173f34 0%, #12362d 100%);
  box-shadow: none;
}
.hotel-page .tulua-classification > p:first-child {
  margin: 0 0 9px;
  color: #efa077;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .18em;
}
.hotel-page .tulua-classification h3 {
  margin: 0 0 13px;
  font-size: clamp(26px, 2vw, 30px);
  line-height: 1.15;
  letter-spacing: -.018em;
}
.hotel-page .tulua-classification > p:not(:first-child) {
  margin: 0;
  color: rgba(255, 255, 255, .74);
  font-size: 14px;
  line-height: 1.58;
}
.hotel-page .tulua-classification ul {
  margin: 17px 0 16px;
}
.hotel-page .tulua-classification li {
  padding: 9px 0 9px 18px;
  color: rgba(255, 255, 255, .92);
  font-size: 13px;
  line-height: 1.45;
}
.hotel-page .tulua-classification li::before {
  width: 5px;
  height: 5px;
  top: 15px;
  background: #efa077;
}
.hotel-page .tulua-classification a {
  margin-top: auto;
  padding-top: 13px;
  border-top: 1px solid rgba(255, 255, 255, .13);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
}

@media (max-width: 960px) {
  .hotel-page .tulua-intro {
    margin-block: 34px 30px;
    grid-template-columns: minmax(0, 1fr);
  }
  .hotel-page .tulua-classification { max-width: none; }
}

@media (max-width: 760px) {
  .hotel-page .tulua-intro {
    margin-block: 28px 26px;
    gap: 0;
    border-radius: 22px;
  }
  .hotel-page .tulua-intro-copy { padding: 27px 24px 25px; }
  .hotel-page .tulua-intro h2 {
    margin: 0 0 17px;
    font-size: 31px;
    line-height: 1.08;
  }
  .hotel-page .tulua-intro-copy > p.hotel-copy {
    margin-bottom: 10px;
    font-size: 14px;
    line-height: 1.62;
  }
  .hotel-page .tulua-classification {
    padding: 26px 24px 24px;
    border-radius: 0;
  }
  .hotel-page .tulua-classification h3 { font-size: 25px; }
  .hotel-page .tulua-classification > p:not(:first-child) { font-size: 14px; line-height: 1.6; }
  .hotel-page .tulua-classification li { padding-block: 9px; font-size: 13px; }
  .hotel-page .tulua-classification a { font-size: 13px; }
}

/* Premium catalogue standard 3: navigation, catalogue content and long room
   collections form one calm composition on every current and future hotel. */
.hotel-page .section-accent-divider {
  width: 82px;
  height: 2px;
  margin: 3px auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, #b8532f, #e3996f);
  box-shadow: 0 5px 16px rgba(184, 83, 47, .16);
}

.hotel-page .tulua-catalogue {
  padding-block: 46px 50px;
}
.hotel-page .tulua-catalogue > .tulua-section-heading {
  margin-bottom: 24px;
}
.hotel-page .tulua-catalogue > .tulua-section-heading h2 {
  font-size: clamp(36px, 3.6vw, 50px);
  line-height: 1.04;
  letter-spacing: -.032em;
}
.hotel-page .catalogue-premium-shell {
  overflow: hidden;
  position: relative;
  isolation: isolate;
  border: 1px solid rgba(18, 62, 49, .15);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 28px 72px rgba(18, 62, 49, .12);
}
.hotel-page .catalogue-premium-shell::before {
  content: "";
  height: 3px;
  position: absolute;
  inset: 0 0 auto;
  z-index: 3;
  pointer-events: none;
  background: linear-gradient(90deg, #d36b3f 0 35%, rgba(211, 107, 63, .22) 60%, transparent 84%);
}
.hotel-page .catalogue-premium-shell .tulua-catalogue-tabs {
  min-height: 70px;
  margin: 0;
  padding: 15px 22px 13px;
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;
  background:
    radial-gradient(circle at 96% 0%, rgba(239, 160, 119, .12), transparent 33%),
    linear-gradient(145deg, #173f34 0%, #12362d 100%);
  border-bottom: 1px solid rgba(255, 255, 255, .1);
}
.hotel-page .catalogue-premium-shell .tulua-catalogue-tabs::-webkit-scrollbar { display: none; }
.hotel-page .catalogue-premium-shell .tulua-catalogue-tabs button {
  min-height: 40px;
  padding: 0 17px;
  flex: 0 0 auto;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 999px;
  color: rgba(255, 255, 255, .76);
  background: rgba(255, 255, 255, .055);
  box-shadow: none;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.2;
  transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
}
.hotel-page .catalogue-premium-shell .tulua-catalogue-tabs button:hover {
  color: #fff;
  border-color: rgba(239, 160, 119, .7);
  transform: translateY(-1px);
}
.hotel-page .catalogue-premium-shell .tulua-catalogue-tabs button.is-active {
  color: #173d33;
  border-color: #fffaf2;
  background: #fffaf2;
  box-shadow: 0 9px 24px rgba(6, 31, 25, .2), inset 0 -2px 0 #e28b60;
}
.hotel-page .catalogue-premium-shell .tulua-catalogue-panels {
  background: #fff;
}
.hotel-page .catalogue-premium-shell .tulua-catalogue-panel {
  overflow: hidden;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}
.hotel-page .catalogue-premium-shell .tulua-catalogue-panel[hidden] { display: none !important; }
.hotel-page .catalogue-premium-shell .tulua-catalogue-panel > header {
  min-height: 150px;
  padding: 29px 36px 27px;
  grid-template-columns: minmax(0, 1.14fr) minmax(320px, .86fr);
  gap: 54px;
  align-items: center;
  border-bottom: 1px solid rgba(18, 62, 49, .11);
  background:
    radial-gradient(circle at 100% 0%, rgba(23, 63, 52, .07), transparent 40%),
    #fbfaf5;
}
.hotel-page .catalogue-premium-shell .tulua-catalogue-panel > header > div > p {
  margin: 0 0 8px;
  color: #b8532f;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .18em;
}
.hotel-page .catalogue-premium-shell .tulua-catalogue-panel > header h3 {
  max-width: 760px;
  margin: 0;
  font-size: clamp(26px, 2.3vw, 34px);
  line-height: 1.12;
  letter-spacing: -.025em;
}
.hotel-page .catalogue-premium-shell .tulua-catalogue-panel > header > p {
  margin: 0;
  color: #52675e;
  font-size: 14px;
  line-height: 1.62;
}
.hotel-page .catalogue-premium-shell .catalogue-columns {
  gap: 1px;
  background: rgba(18, 62, 49, .11);
}
.hotel-page .catalogue-premium-shell .catalogue-columns > div {
  padding: 29px 36px 33px;
  border: 0;
  background: #fff;
}
.hotel-page .catalogue-premium-shell .catalogue-columns > div + div { border: 0; }
.hotel-page .catalogue-premium-shell .catalogue-columns h4 {
  margin: 0 0 11px;
  color: #173d33;
  font-size: 22px;
  line-height: 1.25;
}
.hotel-page .catalogue-premium-shell .catalogue-columns p,
.hotel-page .catalogue-premium-shell .catalogue-columns > div > p:not(.catalogue-column-intro) {
  margin: 0 0 18px;
  color: #53685f;
  font-size: 14px;
  line-height: 1.62;
}
.hotel-page .catalogue-premium-shell .catalogue-columns li {
  padding: 9px 0 9px 19px;
  color: #3e584e;
  border-top-color: rgba(18, 62, 49, .11);
  font-size: 13px;
  line-height: 1.5;
}
.hotel-page .catalogue-premium-shell .catalogue-columns li::before { color: #d36b3f; }

.hotel-page .catalogue-premium-shell .room-catalogue > header {
  min-height: 136px;
  padding: 26px 36px 25px;
  grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr);
}
.hotel-page .catalogue-premium-shell .room-catalogue-list {
  padding: 0 34px 16px;
}
.hotel-page .catalogue-premium-shell .room-entry {
  border-bottom-color: rgba(18, 62, 49, .12);
}
.hotel-page .catalogue-premium-shell .room-entry > summary {
  min-height: 58px;
  padding: 9px 5px;
}
.hotel-page .catalogue-premium-shell .room-entry > summary:hover { background: #f5f7f2; }
.hotel-page .catalogue-premium-shell .room-entry[open] > summary {
  color: #173d33;
}
.hotel-page .catalogue-premium-shell .room-entry-body {
  margin-bottom: 13px;
  padding: 19px 20px;
  border: 1px solid rgba(18, 62, 49, .08);
  border-radius: 14px;
  background: #f4f7f2;
  box-shadow: inset 3px 0 0 #dc845b;
  animation: catalogue-reveal .24s ease both;
}
@keyframes catalogue-reveal {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}
.hotel-page .room-catalogue-more {
  width: 100%;
  min-height: 52px;
  margin: 13px 0 4px;
  padding: 0 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border: 1px solid rgba(18, 62, 49, .14);
  border-radius: 14px;
  color: #173d33;
  background: #f7f7f2;
  cursor: pointer;
  font: 700 13px/1.35 "DM Sans", Arial, sans-serif;
  transition: background .2s ease, border-color .2s ease;
}
.hotel-page .room-catalogue-more:hover {
  border-color: rgba(184, 83, 47, .4);
  background: #fbf7f0;
}
.hotel-page .room-catalogue-more i {
  width: 28px;
  height: 28px;
  position: relative;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #173d33;
}
.hotel-page .room-catalogue-more i::before,
.hotel-page .room-catalogue-more i::after {
  content: "";
  width: 10px;
  height: 1.5px;
  position: absolute;
  top: 50%;
  left: 50%;
  background: #fff;
  transform: translate(-50%, -50%);
}
.hotel-page .room-catalogue-more i::after { transform: translate(-50%, -50%) rotate(90deg); }
.hotel-page .room-catalogue-more[aria-expanded="true"] i::after { display: none; }

/* Sticky hotel navigation standard 2: a dark, translucent navigation ribbon
   replaces the former plain white bar and carries a distinct wishlist action. */
.hotel-page .hotel-subnav {
  width: min(1320px, calc(100% - 80px));
  min-height: 62px;
  margin: 0 auto;
  padding: 0 13px 0 25px;
  justify-content: flex-start;
  gap: clamp(22px, 2.6vw, 43px);
  overflow: hidden;
  border: 1px solid rgba(239, 160, 119, .22);
  border-radius: 18px;
  color: #fff;
  background:
    radial-gradient(circle at 94% 0%, rgba(239, 160, 119, .14), transparent 30%),
    rgba(20, 58, 48, .97);
  box-shadow: 0 17px 42px rgba(12, 44, 36, .2);
  backdrop-filter: blur(16px) saturate(1.15);
  transition: transform .28s ease, opacity .22s ease, box-shadow .22s ease;
}
.hotel-page .hotel-subnav::before {
  content: "";
  height: 2px;
  position: absolute;
  inset: 0 20px auto;
  border-radius: 999px;
  background: linear-gradient(90deg, #dc845b, rgba(220, 132, 91, .18) 55%, transparent 82%);
}
.hotel-page .hotel-subnav a {
  padding: 21px 0 18px;
  color: rgba(255, 255, 255, .68);
  border-bottom: 2px solid transparent;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .005em;
}
.hotel-page .hotel-subnav a.active,
.hotel-page .hotel-subnav a.is-active,
.hotel-page .hotel-subnav a:hover {
  color: #fffdf8;
  border-bottom-color: #efa077;
}
.hotel-page .hotel-subnav button[data-favorite-hotel] {
  min-height: 42px;
  margin: 0 0 0 auto;
  padding: 0 16px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  flex: 0 0 auto;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 999px;
  color: #fffdf8;
  background: rgba(255, 255, 255, .08);
  font: 700 12.5px/1.2 "DM Sans", Arial, sans-serif;
  transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
}
.hotel-page .hotel-subnav button[data-favorite-hotel]:hover {
  border-color: rgba(239, 160, 119, .72);
  background: rgba(239, 160, 119, .12);
  transform: translateY(-1px);
}
.hotel-page .hotel-subnav button[data-favorite-hotel] [data-favorite-icon] {
  color: #efa077;
  font-size: 19px;
  line-height: 1;
}
.hotel-page .hotel-subnav button[data-favorite-hotel].is-favorite {
  color: #173d33;
  border-color: #fffaf2;
  background: #fffaf2;
}
.hotel-page .hotel-subnav button[data-favorite-hotel].is-favorite [data-favorite-icon] { color: #c7633d; }

body.hotel-page.has-docked-finder.is-results-scrolling-down .hotel-subnav {
  opacity: 0;
  pointer-events: none;
  transform: translateY(calc(-100% - 16px));
}

/* Premium hero actions: the main booking path and Hotel-DNA share one calm
   visual system without adding height to the fixed desktop hero. */
.hotel-page .hotel-hero-mosaic .hero-actions {
  gap: 10px;
  align-items: center;
}
.hotel-page .hotel-hero-mosaic .primary-action,
.hotel-page .hotel-hero-mosaic .hotel-dna-trigger {
  min-height: 52px;
  border-radius: 15px;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
}
.hotel-page .hotel-hero-mosaic .primary-action {
  min-width: 220px;
  padding: 0 9px 0 20px;
  justify-content: space-between;
  gap: 18px;
  color: #173d33;
  border: 1px solid rgba(255, 255, 255, .55);
  background: linear-gradient(135deg, #fffaf1, #f2ecdf);
  box-shadow: 0 15px 34px rgba(4, 30, 23, .2);
  font-size: 12px;
  letter-spacing: .01em;
}
.hotel-page .hotel-hero-mosaic .primary-action > span {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  border-radius: 11px;
  color: #fff;
  background: linear-gradient(135deg, #de7547, #bf532d);
  box-shadow: 0 8px 18px rgba(182, 75, 37, .25);
  font-size: 15px;
}
.hotel-page .hotel-hero-mosaic .primary-action:hover {
  border-color: rgba(255, 255, 255, .8);
  background: #fffdf8;
  box-shadow: 0 19px 40px rgba(4, 30, 23, .3);
  transform: translateY(-2px);
}
.hotel-page .hotel-hero-mosaic .hotel-dna-trigger {
  min-width: 212px;
  padding: 5px 11px 5px 5px;
  gap: 9px;
  color: #fffdf8;
  border: 1px solid rgba(255, 255, 255, .25);
  background: linear-gradient(135deg, rgba(255, 255, 255, .11), rgba(255, 255, 255, .055));
  box-shadow: 0 14px 30px rgba(4, 30, 23, .16);
  backdrop-filter: blur(12px) saturate(1.1);
}
.hotel-page .hotel-hero-mosaic .hotel-dna-trigger > span:first-child {
  width: 40px;
  height: 40px;
  flex-basis: 40px;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 12px;
  background: linear-gradient(145deg, #df7748, #bd4f2a);
  box-shadow: 0 8px 18px rgba(3, 25, 19, .2);
}
.hotel-page .hotel-hero-mosaic .hotel-dna-trigger small { color: #efa077; }
.hotel-page .hotel-hero-mosaic .hotel-dna-trigger strong { color: #fffdf8; }
.hotel-page .hotel-hero-mosaic .hotel-dna-trigger > b {
  margin-left: auto;
  color: #efa077;
}
.hotel-page .hotel-hero-mosaic .hotel-dna-trigger:hover {
  border-color: rgba(239, 160, 119, .65);
  background: rgba(255, 255, 255, .13);
  box-shadow: 0 19px 40px rgba(4, 30, 23, .3);
  transform: translateY(-2px);
}

.hotel-page .hotel-media-scroll-cue {
  height: 40px;
  padding: 9px 12px 5px;
  gap: 7px;
  z-index: 3;
  color: #48675b;
  border: 0;
  background: linear-gradient(transparent, #f6f5ef 30%);
  cursor: pointer;
  pointer-events: auto;
  font: 700 9px/1.2 "DM Sans", Arial, sans-serif;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.hotel-page .hotel-media-choice-list { bottom: 42px; }
.hotel-page .hotel-media-scroll-cue i {
  color: #c7633d;
  font-size: 16px;
  font-style: normal;
  line-height: 1;
  transition: transform .2s ease;
}
.hotel-page .hotel-media-scroll-cue.is-at-end i { transform: rotate(180deg); }

/* Media images stay visually clean. Category names already live in the left
   navigation and right detail panel; only functional document controls may
   overlay the image. */
.hotel-page .tulua-media-panel figure > figcaption,
.hotel-page .tulua-media-panel .hotel-media-caption {
  display: none !important;
}

@media (max-width: 960px) {
  .hotel-page .catalogue-premium-shell .tulua-catalogue-panel > header,
  .hotel-page .catalogue-premium-shell .room-catalogue > header {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }
  .hotel-page .hotel-subnav { width: calc(100% - 40px); gap: 22px; }
  .hotel-page .hotel-subnav a { white-space: nowrap; }
}

@media (max-width: 760px) {
  .hotel-page .section-accent-divider { width: 56px; }
  .hotel-page .tulua-catalogue { padding-block: 37px 41px; }
  .hotel-page .tulua-catalogue > .tulua-section-heading { margin-bottom: 20px; }
  .hotel-page .tulua-catalogue > .tulua-section-heading h2 { font-size: 34px; }
  .hotel-page .catalogue-premium-shell { border-radius: 22px; }
  .hotel-page .catalogue-premium-shell .tulua-catalogue-tabs {
    min-height: 64px;
    padding: 13px 15px 11px;
  }
  .hotel-page .catalogue-premium-shell .tulua-catalogue-tabs button {
    min-height: 39px;
    padding-inline: 15px;
    font-size: 12.5px;
  }
  .hotel-page .catalogue-premium-shell .tulua-catalogue-panel > header,
  .hotel-page .catalogue-premium-shell .room-catalogue > header {
    min-height: 0;
    padding: 24px 22px 22px;
    gap: 10px;
  }
  .hotel-page .catalogue-premium-shell .tulua-catalogue-panel > header h3 { font-size: 26px; }
  .hotel-page .catalogue-premium-shell .tulua-catalogue-panel > header > p { font-size: 14px; }
  .hotel-page .catalogue-premium-shell .catalogue-columns { grid-template-columns: minmax(0, 1fr); }
  .hotel-page .catalogue-premium-shell .catalogue-columns > div { padding: 23px 22px 26px; }
  .hotel-page .catalogue-premium-shell .catalogue-columns > div + div { border-top: 1px solid rgba(18, 62, 49, .11); }
  .hotel-page .catalogue-premium-shell .catalogue-columns h4 { font-size: 21px; }
  .hotel-page .catalogue-premium-shell .catalogue-columns p,
  .hotel-page .catalogue-premium-shell .catalogue-columns > div > p:not(.catalogue-column-intro) { font-size: 14px; }
  .hotel-page .catalogue-premium-shell .catalogue-columns li { font-size: 13px; }
  .hotel-page .catalogue-premium-shell .room-catalogue-list { padding: 0 18px 13px; }
  .hotel-page .room-catalogue-more { min-height: 50px; margin-top: 11px; }
  .hotel-page .hotel-subnav {
    width: calc(100% - 28px);
    min-height: 54px;
    padding: 0 15px;
    gap: 21px;
    overflow-x: auto;
    border-radius: 15px;
    scrollbar-width: none;
  }
  .hotel-page .hotel-subnav::-webkit-scrollbar { display: none; }
  .hotel-page .hotel-subnav a { padding: 18px 0 15px; font-size: 11px; }
  .hotel-page .hotel-subnav button[data-favorite-hotel] { display: none; }
  body.hotel-page.has-docked-finder.is-results-scrolling-down .hotel-subnav {
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }
  .hotel-page .hotel-hero-mosaic .hero-actions {
    align-items: stretch;
    gap: 9px;
  }
  .hotel-page .hotel-hero-mosaic .primary-action,
  .hotel-page .hotel-hero-mosaic .hotel-dna-trigger {
    min-width: 0;
    min-height: 50px;
    border-radius: 14px;
  }
  .hotel-page .hotel-hero-mosaic .primary-action { padding: 0 8px 0 14px; }
  .hotel-page .hotel-hero-mosaic .primary-action > span {
    width: 32px;
    height: 32px;
    flex-basis: 32px;
    border-radius: 10px;
  }
  .hotel-page .hotel-hero-mosaic .hotel-dna-trigger > span:first-child {
    width: 37px;
    height: 37px;
    flex-basis: 37px;
    border-radius: 11px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hotel-page .hotel-subnav,
  .hotel-page .hotel-hero-mosaic .primary-action,
  .hotel-page .hotel-hero-mosaic .hotel-dna-trigger,
  .hotel-page .hotel-media-scroll-cue i { transition: none; }
}

/* Live offer configurator: real variants stay inside the result card and keep
   operator, travel dates and flights locked to the selected offer. */
.stay-grid > .stay-grid__item,
.stay-grid > .offer-choice {
  min-width: 0;
  border-right: 1px solid var(--line);
  position: relative;
}
.stay-grid > :last-child { border-right: 0; }
.offer-choice > summary {
  min-height: 100%;
  padding: 13px 15px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 26px;
  align-items: center;
  gap: 8px;
  list-style: none;
  cursor: pointer;
  transition: background .18s ease, color .18s ease;
}
.offer-choice > summary::-webkit-details-marker { display: none; }
.offer-choice > summary > span { min-width: 0; }
.offer-choice > summary strong {
  overflow: hidden;
  text-overflow: ellipsis;
}
.offer-choice > summary em {
  display: block;
  color: #85908a;
  font-size: 9px;
  font-style: normal;
  line-height: 1.35;
}
.offer-choice > summary > i {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  color: var(--forest);
  border: 1px solid rgba(18, 62, 49, .18);
  border-radius: 50%;
  background: rgba(255, 255, 255, .78);
  font-size: 14px;
  font-style: normal;
  transition: transform .18s ease;
}
.offer-choice > summary:hover,
.offer-choice[open] > summary { background: #eef4eb; }
.offer-choice[open] > summary > i { transform: rotate(180deg); }
.offer-choice-menu {
  width: min(430px, calc(100vw - 64px));
  max-height: 420px;
  overflow: auto;
  position: absolute;
  z-index: 24;
  top: calc(100% - 2px);
  left: 8px;
  color: var(--forest-deep);
  border: 1px solid rgba(18, 62, 49, .14);
  border-top: 3px solid var(--orange);
  border-radius: 0 0 18px 18px;
  background: #fffdfa;
  box-shadow: 0 24px 54px rgba(10, 43, 34, .2);
}
.offer-card:has(.offer-choice[open]) {
  z-index: 70;
  overflow: visible;
}
/* A last-result chooser can extend beyond the offers section into the space
   above the advice block. Keep the full menu, its prices and controls usable. */
.hotel-page .offers:has(.offer-choice[open]) { overflow: visible; }
/* Opening a card menu must not activate a different sticky scroll ancestor
   for the independent left filter. Keep its existing document position. */
@media (min-width: 761px) {
  .hotel-page .results-layout > .filters { position: static; }
}
.offer-card:has(.offer-choice[open]) .stay-grid {
  position: relative;
  z-index: 71;
  overflow: visible;
}
.offer-choice[open] { z-index: 72; }
.offer-choice[open] .offer-choice-menu { z-index: 73; }
.offer-choice--transfer .offer-choice-menu { right: 8px; left: auto; }
.offer-choice-menu > header {
  padding: 15px 16px 12px;
  display: grid;
  gap: 3px;
  border-bottom: 1px solid var(--line);
  background: #f5f7f2;
}
.offer-choice-menu > header strong { font-size: 13px; }
.stay-grid .offer-choice-menu > header span {
  color: #6f7d75;
  font-size: 10px;
  line-height: 1.4;
}
.offer-choice-menu ul { margin: 0; padding: 6px; list-style: none; }
.offer-choice-menu li + li { border-top: 1px solid var(--line); }
.offer-choice-menu button {
  width: 100%;
  padding: 12px 10px;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  color: inherit;
  border: 0;
  border-radius: 12px;
  background: transparent;
  cursor: pointer;
  text-align: left;
}
.offer-choice-menu button:hover:not(:disabled),
.offer-choice-menu button:focus-visible { background: #eef4eb; }
.offer-choice-menu button:disabled { cursor: default; }
.offer-choice-load-state {
  min-height: 92px;
  padding: 16px;
  display: flex;
  align-items: center;
  gap: 11px;
  color: var(--forest-deep);
}
.offer-choice-load-state > span {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.offer-choice-load-state strong { font-size: 12px; line-height: 1.35; }
.offer-choice-load-state small {
  color: #738078;
  font-size: 10px;
  line-height: 1.45;
}
.offer-choice-load-state > i {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  border: 2px solid rgba(18, 62, 49, .18);
  border-top-color: var(--forest);
  border-radius: 50%;
  animation: offer-choice-spin .8s linear infinite;
}
.offer-choice-load-state > button {
  width: auto;
  margin-left: auto;
  padding: 8px 10px;
  display: inline-flex;
  grid-template-columns: none;
  color: var(--forest);
  border: 1px solid rgba(18, 62, 49, .18);
  background: #eef4eb;
  white-space: nowrap;
}
.offer-choice-load-state.is-failed > button { color: #7b3f2d; background: #fff4ef; }
@keyframes offer-choice-spin { to { transform: rotate(360deg); } }
.offer-choice-check {
  width: 22px;
  height: 22px;
  display: grid !important;
  place-items: center;
  color: #fff !important;
  border: 1px solid #cfdad1;
  border-radius: 50%;
  background: #fff;
  font-size: 11px !important;
}
.offer-choice-menu button[aria-current="true"] .offer-choice-check {
  border-color: var(--forest);
  background: var(--forest);
}
.offer-choice-copy,
.offer-choice-price { min-width: 0; display: grid !important; gap: 3px; }
.offer-choice-copy strong,
.offer-choice-price strong { margin: 0; font-size: 11px; line-height: 1.35; }
.offer-choice-copy small,
.offer-choice-price small { margin: 0; color: #79857e; font-size: 9px; line-height: 1.35; text-transform: none; letter-spacing: 0; }
.offer-choice-price { text-align: right; }
.offer-choice-price strong { white-space: nowrap; }

.offer-verification-control {
  min-width: 250px;
  display: grid;
  gap: 7px;
}
.offer-verification-control .check-button {
  width: 100%;
  justify-content: space-between;
  border-radius: 16px;
}
.offer-verification-control .check-button:disabled { cursor: default; }
.offer-verification-control .check-button.is-loading { background: #365d52; }
.offer-verification-control .check-button.is-verified { background: #267451; }
.offer-verification-control .check-button.is-retry { background: #8c4d37; }
.offer-verification-control .check-button > i,
.offer-verification-status.is-loading > i {
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  border: 2px solid rgba(255, 255, 255, .35);
  border-top-color: #fff;
  border-radius: 50%;
  animation: offer-verify-spin .75s linear infinite;
}
.offer-verification-status {
  padding: 9px 11px;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  border-radius: 13px;
  background: #edf5ec;
}
.offer-verification-status > i {
  width: 23px;
  height: 23px;
  display: grid;
  place-items: center;
  color: #fff;
  border-radius: 50%;
  background: #267451;
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
}
.offer-verification-status.is-loading > i { background: transparent; }
.offer-verification-status.is-failed { background: #fff1eb; }
.offer-verification-status.is-failed > i { background: #b75c3c; }
.offer-verification-status span,
.offer-verification-status strong,
.offer-verification-status small { display: block; }
.offer-verification-status strong { margin: 0 0 2px; font-size: 10px; }
.offer-verification-status small { color: #6b7a72; font-size: 8.5px; line-height: 1.35; }
@keyframes offer-verify-spin { to { transform: rotate(360deg); } }

@media (max-width: 760px) {
  .stay-grid > .stay-grid__item,
  .stay-grid > .offer-choice { border-bottom: 1px solid var(--line); }
  .stay-grid > :nth-child(2n) { border-right: 0; }
  .offer-choice > summary {
    min-height: 62px;
    padding: 9px 10px;
    grid-template-columns: minmax(0, 1fr) 25px;
  }
  .offer-choice > summary em { font-size: 8px; }
  .offer-choice-menu {
    width: calc(200% - 8px);
    max-height: 340px;
    top: calc(100% - 1px);
    left: 4px;
    right: auto;
    border-radius: 0 0 16px 16px;
  }
  .stay-grid > .offer-choice:nth-child(2n) .offer-choice-menu,
  .offer-choice--transfer .offer-choice-menu { right: 4px; left: auto; }
  .offer-choice-menu > header { padding: 13px; }
  .offer-choice-menu button { min-height: 56px; padding: 10px 8px; }
  .offer-choice-copy strong,
  .offer-choice-price strong { font-size: 12px; }
  .offer-choice-copy small,
  .offer-choice-price small,
  .stay-grid .offer-choice-menu > header span { font-size: 10px !important; }
  .offer-verification-control { min-width: 0; }
  .offer-footer .offer-verification-control { grid-column: 1 / -1; }
  .offer-verification-status { grid-template-columns: 22px minmax(0, 1fr); padding: 8px 9px; }
  .offer-verification-status strong { font-size: 11px; }
  .offer-verification-status small { font-size: 10px; }
  .offer-verification-control .check-button { grid-column: auto; font-size: 11px; }
}

/* Full desktop calendar: page scroll retains access to every date and action. */
@media (min-width: 761px) {
  .search-studio .date-range-popover,
  .tulua-page .tulua-auto-finder .date-range-popover {
    max-height: none;
    overflow: visible;
  }
}

/* Shared offer pagination on the light result surface, for every hotel. */
.offer-results-more .load-more { color: #fffdf7; background: #214b3f; border: 1px solid #214b3f; min-height: 56px; padding: 14px 20px; font-size: 16px; line-height: 1.4; }
.offer-results-more .load-more span { color: #f2ad80; }
.offer-results-more .load-more:hover { background: #173b30; border-color: #173b30; }
.offer-results-more .load-more:focus-visible { background: #173b30; outline: 3px solid #b65730; outline-offset: 3px; }

/* Explicit shared offer choices: original selection + visible customer action. */
.hotel-page .offer-choice summary { background: #f0f4ed; cursor: pointer; }
.hotel-page .offer-choice summary strong { color: #21483e; opacity: 1; }
.hotel-page .offer-choice summary:hover { background: #e5eddf; }
.hotel-page .offer-choice summary:focus-visible { outline: 2px solid #b95228; outline-offset: -3px; }
.hotel-page .offer-choice .offer-choice-hint { display: flex; align-items: center; gap: 8px; margin-top: 8px; color: #a74420; font-size: 13px; font-weight: 700; line-height: 1.35; }
.hotel-page .offer-choice .offer-choice-hint b { font-size: 17px; }
.hotel-page .offer-choice summary > i { color: #a74420; border-color: #c78566; flex-shrink: 0; }
.hotel-page .offer-choice[open] summary { background: #e5eddf; }
@media (max-width: 760px) { .hotel-page .offer-choice .offer-choice-hint {font-size: 13px;} }

.transfer-fallback-notice{padding:16px 20px;margin:0 0 20px;background:#fff6e9;border-left:4px solid #c66d40;border-radius:12px;color:#203e35;font-size:15px;line-height:1.55}.transfer-fallback-notice[hidden]{display:none}

/* A rotated phone gives the full height to the uncropped photo. Navigation
   overlays the image; portrait keeps its captions and thumbnail strip. */
@media (orientation: landscape) and (max-height: 600px) and (max-width: 1180px) {
  .hotel-page .image-viewer-dialog[open] {
    display: block;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    max-width: none;
    max-height: none;
    inset: 0;
    margin: 0;
    border-radius: 0;
  }
  .hotel-page .image-viewer-dialog figure {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
  }
  .hotel-page .image-viewer-dialog figure > img {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
  .hotel-page .image-viewer-dialog.is-room-map figure > img {
    position: absolute;
    width: 100% !important;
    height: 100% !important;
    object-fit: scale-down !important;
  }
  .hotel-page .image-viewer-thumbnails,
  .hotel-page .image-viewer-download,
  .hotel-page .image-viewer-meta > span { display: none; }
  .hotel-page .image-viewer-toolbar {
    position: absolute;
    inset: auto auto max(8px, env(safe-area-inset-bottom)) 50%;
    transform: translateX(-50%);
    min-height: 28px;
    padding: 4px 12px;
    border: 0;
    border-radius: 20px;
    background: rgba(7, 23, 18, .78);
    pointer-events: none;
  }
  .hotel-page .image-viewer-meta b { font-size: 14px; }
  .hotel-page .image-viewer-dialog .image-viewer-close,
  .hotel-page .image-viewer-dialog .image-viewer-nav {
    width: 44px;
    height: 44px;
    z-index: 6;
    background: rgba(7, 23, 18, .78);
  }
  .hotel-page .image-viewer-dialog .image-viewer-close {
    top: max(8px, env(safe-area-inset-top));
    right: max(8px, env(safe-area-inset-right));
  }
  .hotel-page .image-viewer-nav.previous { left: max(8px, env(safe-area-inset-left)); }
  .hotel-page .image-viewer-nav.next { right: max(8px, env(safe-area-inset-right)); }
}

/* One duration summary per direction, shared by search and hotel offers. */
.offer-card .flight-label .flight-direction-summary {
  color: #53685e;
  font-size: 12px;
  line-height: 1.45;
}
.flight-direction-duration {
  color: var(--forest-deep);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

/* The filter column can leave a tablet offer narrower than a phone layout.
   Adapt to the actual card width, preserving the desktop filter and Finder. */
@media (min-width: 761px) {
  .hotel-page .offer-card { container-type: inline-size; container-name: hotel-offer; }
  @container hotel-offer (max-width: 800px) {
    .offer-header { flex-wrap: wrap; gap: 12px; }
    .offer-header > div { min-width: 0; }
    .stay-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .stay-grid > :nth-child(2n) { border-right: 0; }
    .stay-grid > :nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .offer-choice > summary strong { overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
    .offer-choice-menu { width: calc(200% - 8px); max-width: 430px; left: 4px; right: auto; }
    .stay-grid > .offer-choice:nth-child(2n) .offer-choice-menu { left: auto; right: 4px; }
    .offer-footer { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .offer-footer > .benefit-list { grid-column: 1 / -1; }
    .offer-footer .price { min-width: 0; }
    .offer-footer .offer-verification-control { min-width: 0; grid-column: 2; }
    .offer-verification-control .check-button { min-width: 0; grid-column: auto; white-space: normal; }
  }
  @container hotel-offer (max-width: 480px) {
    .flight-grid { grid-template-columns: 86px minmax(0, 1fr); }
    .flight-label { padding: 12px 9px; }
    .flight-route { padding: 12px 9px; grid-template-columns: 50px minmax(0, 1fr) 50px; gap: 5px; }
    .flight-route strong { font-size: 16px; }
    .flight-carrier-summary { flex-direction: column; }
    .offer-footer { grid-template-columns: minmax(0, 1fr); }
    .offer-footer .price { text-align: left; }
    .offer-footer .offer-verification-control { grid-column: 1; }
  }
}

/* Long action labels must wrap inside their own selection field. */
.hotel-page .offer-choice .offer-choice-hint { display: block; overflow-wrap: anywhere; hyphens: auto; }
.hotel-page .offer-choice .offer-choice-hint b { display: inline-block; margin-inline-start: 6px; vertical-align: middle; }
.hotel-page .offer-choice summary small { overflow-wrap: anywhere; hyphens: auto; }
.hotel-page .offer-choice summary strong { overflow: visible; text-overflow: clip; overflow-wrap: anywhere; hyphens: auto; }

/* Mobile audit: keep the scrollable gallery strip clear of its download action. */
@media (max-width: 1024px) {
  .image-viewer-thumbnails { width: calc(100% - 140px); padding-inline: 8px; }
  .image-viewer-download { right: 12px; max-width: 124px; min-height: 44px; display: flex; align-items: center; box-sizing: border-box; }
  .live-results-error > button[data-retry-hotel-search],
  .live-results-error > button[data-retry-result-filter] {
    min-height: 48px;
    max-width: 100%;
    padding: 12px 18px;
    justify-self: center;
    border: 0;
    border-radius: 12px;
    color: white;
    background: var(--orange-deep);
    font: inherit;
    font-weight: 800;
    white-space: normal;
    cursor: pointer;
  }
  .live-results-error > button:focus-visible { outline: 3px solid var(--forest-deep); outline-offset: 3px; }
}
@media (max-width: 760px) {
  .advice-callout { grid-template-columns: minmax(0, 1fr); }
  .advice-callout > div { min-width: 0; }
  .advice-callout h2 { overflow-wrap: anywhere; hyphens: auto; }
}

/* Desktop gallery audit: reserve the download action beside the thumbnail rail. */
@media (min-width: 1025px) {
  .image-viewer-thumbnails { width: calc(100% - 140px); padding-right: 8px; }
}

/* The close/title row stays reachable in a long, asynchronously growing menu. */
.offer-choice-menu > header { position: sticky; top: 0; z-index: 2; }

/* Stable document gutter and one anchor policy for asynchronous results. */
html { scrollbar-gutter: stable; }
.results-layout { overflow-anchor: none; }
