:root,
body.theme-root {
  --mini-color-primary: #0f172a;
  --mini-color-secondary: #1e293b;
  --mini-color-accent: #059669;
  --mini-color-surface: #ffffff;
  --mini-color-background: #f8fafc;
  --mini-color-muted: #64748b;
  --mini-color-text: #0f172a;
  --mini-color-primary-soft: #1f2a44;
  --mini-color-secondary-soft: #26354d;
  --mini-color-accent-soft: #34d399;
  --mini-color-primary-contrast: #f8fafc;
  --mini-color-secondary-contrast: #f8fafc;
  --mini-color-accent-contrast: #f0fdf4;
  --mini-color-surface-contrast: #0f172a;
  --mini-color-background-contrast: #0f172a;
  --mini-color-muted-contrast: #f8fafc;
  --mini-color-text-contrast: #ffffff;
  --mini-overlay-primary: rgba(15, 23, 42, 0.6);
  --mini-overlay-secondary: rgba(30, 41, 59, 0.55);
  --mini-overlay-accent: rgba(5, 150, 105, 0.45);
  --mini-border-strong: rgba(15, 23, 42, 0.16);
  --mini-border-soft: rgba(15, 23, 42, 0.08);
}

body.theme-root {
  background-color: var(--mini-color-background);
  color: var(--mini-color-text);
  transition: background-color 180ms ease, color 180ms ease;
}

body.theme-root main,
body.theme-root header,
body.theme-root footer {
  color: inherit;
}

body.theme-root #siteBrandingHeader {
  background-color: color-mix(in srgb, var(--mini-color-surface) 92%, transparent);
  border-color: var(--mini-border-soft);
  box-shadow: 0 12px 30px -15px rgba(15, 23, 42, 0.32);
}

body.theme-root #siteBrandingHeader a {
  color: var(--mini-color-text);
}

body.theme-root #headerBackLink {
  color: var(--mini-color-accent);
}

body.theme-root #headerBackLink:hover {
  color: var(--mini-color-accent-soft);
}

body.theme-root section.theme-hero {
  background-image: linear-gradient(135deg, var(--mini-color-primary), var(--mini-color-secondary));
  color: var(--mini-color-primary-contrast);
}

body.theme-root section.theme-hero #propertyHeroTint {
  background-color: var(--mini-overlay-primary);
}

body.theme-root section.theme-hero #propertyHeroContent {
  color: var(--mini-color-primary-contrast);
}

body.theme-root section.theme-hero #heroRateLabel,
body.theme-root section.theme-hero #propertyLocation {
  color: var(--mini-color-primary-contrast);
}

body.theme-root section.theme-hero #heroBadgeLabel {
  color: var(--mini-color-accent-contrast);
}

body.theme-root section.theme-hero [data-theme="muted-pill"] {
  background-color: color-mix(in srgb, var(--mini-color-surface) 92%, transparent);
  color: var(--mini-color-text);
  border: 1px solid var(--mini-border-soft);
}

body.theme-root [data-theme="surface"] {
  background-color: var(--mini-color-surface);
  color: var(--mini-color-text);
  border-color: var(--mini-border-soft);
  box-shadow: 0 18px 38px -20px rgba(15, 23, 42, 0.25);
}

body.theme-root [data-theme="surface-muted"] {
  background-color: color-mix(in srgb, var(--mini-color-background) 80%, var(--mini-color-primary-soft) 20%);
  border-color: var(--mini-border-soft);
  color: var(--mini-color-text);
}

body.theme-root [data-theme="muted"] {
  background-color: color-mix(in srgb, var(--mini-color-secondary-soft) 40%, var(--mini-color-background) 60%);
  color: var(--mini-color-secondary-contrast);
  border-color: transparent;
}

body.theme-root [data-theme="accent-soft"] {
  background-color: var(--mini-color-accent-soft);
  border-color: var(--mini-color-accent);
  color: var(--mini-color-accent-contrast);
}

body.theme-root [data-theme="accent-soft"] h2,
body.theme-root [data-theme="accent-soft"] p,
body.theme-root [data-theme="accent-soft"] span {
  color: inherit;
}

body.theme-root [data-theme="accent-soft"] svg {
  color: inherit;
}

body.theme-root [data-theme="accent-soft"] a {
  color: inherit;
}

body.theme-root [data-theme="accent-link"] {
  color: var(--mini-color-accent);
}

body.theme-root [data-theme="accent-link"]:hover {
  color: var(--mini-color-accent-soft);
}

body.theme-root [data-theme="accent-dot"] {
  background-color: var(--mini-color-accent);
}

body.theme-root .theme-cta-primary,
body.theme-root [data-theme="cta"] {
  background-image: linear-gradient(135deg, var(--mini-color-accent), color-mix(in srgb, var(--mini-color-accent) 70%, #ffffff 30%));
  color: var(--mini-color-accent-contrast);
  border: none;
  box-shadow: 0 18px 35px -18px rgba(15, 23, 42, 0.45);
}

body.theme-root .theme-cta-primary:hover,
body.theme-root [data-theme="cta"]:hover {
  background-image: linear-gradient(135deg, var(--mini-color-accent-soft), var(--mini-color-accent));
  color: var(--mini-color-accent-contrast);
}

body.theme-root .theme-cta-primary:focus-visible,
body.theme-root [data-theme="cta"]:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--mini-color-accent) 35%, transparent);
  outline-offset: 2px;
}

body.theme-root footer[data-theme="surface"] {
  border-color: var(--mini-border-soft);
  color: color-mix(in srgb, var(--mini-color-text) 68%, #ffffff 32%);
  background-color: color-mix(in srgb, var(--mini-color-surface) 92%, transparent);
}

body.theme-root #propertyBooking {
  gap: clamp(1.5rem, 3vw, 2.75rem);
}

body.theme-root #propertyHighlights p[id$="Label"] {
  color: var(--mini-color-accent);
}

body.theme-root #propertyHighlights p:not([id$="Label"]) {
  color: var(--mini-color-text);
}

body.theme-root #calendarContainer {
  border-color: var(--mini-border-soft);
  background-color: var(--mini-color-surface);
}

body.theme-root #calendarHeading {
  color: var(--mini-color-muted);
}

body.theme-root #calendarPrev,
body.theme-root #calendarNext {
  border-color: var(--mini-border-soft);
  color: var(--mini-color-text);
}

body.theme-root #calendarPrev:hover,
body.theme-root #calendarNext:hover {
  border-color: var(--mini-color-accent);
  color: var(--mini-color-accent);
}

body.theme-root #quoteSummary ul li::marker {
  color: var(--mini-color-accent);
}

body.theme-root #formError {
  border-color: rgba(225, 29, 72, 0.3);
  background-color: rgba(254, 242, 242, 0.8);
}

body.theme-root[data-layout="catalog"] section.theme-hero {
  border-radius: 2.25rem;
  padding-bottom: clamp(3rem, 4vw, 4.5rem);
}

body.theme-root[data-layout="catalog"] section.theme-hero #propertyHeroContent {
  gap: clamp(2.5rem, 4vw, 4rem);
}

@media (min-width: 1024px) {
  body.theme-root[data-layout="catalog"] section.theme-hero {
    display: grid;
    grid-template-columns: minmax(0, 0.62fr) minmax(0, 0.38fr);
    align-items: end;
  }

  body.theme-root[data-layout="catalog"] section.theme-hero #propertyHeroContent {
    grid-column: 1 / 2;
    align-self: stretch;
  }

  body.theme-root[data-layout="catalog"] section.theme-hero .flex.flex-col.items-start {
    align-self: center;
  }
}

body.theme-root[data-layout="catalog"] #propertyHighlights {
  display: grid;
}

body.theme-root[data-layout="catalog"] #propertyGallery[data-gallery-visible="true"] {
  display: block;
}

body.theme-root[data-layout="catalog"] #propertyGallery[data-gallery-visible="true"] > div {
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
}

body.theme-root[data-layout="catalog"] [data-theme="surface-muted"] {
  background-color: color-mix(in srgb, var(--mini-color-background) 65%, var(--mini-color-primary-soft) 35%);
}

body.theme-root[data-layout="narrative"] section.theme-hero {
  border-radius: 2rem 2rem 0 0;
  margin-inline: calc(0px - clamp(1.25rem, 3vw, 2.5rem));
}

body.theme-root[data-layout="narrative"] #propertyBooking {
  grid-template-columns: minmax(0, 1fr);
}

body.theme-root[data-layout="narrative"] #propertyBooking > div {
  order: 1;
}

body.theme-root[data-layout="narrative"] #propertyBooking > article {
  order: 2;
}

@media (min-width: 1024px) {
  body.theme-root[data-layout="narrative"] #propertyBooking > div {
    position: sticky;
    top: 1.5rem;
  }
}

body.theme-root[data-layout="narrative"] [data-theme="muted"] {
  background-color: color-mix(in srgb, var(--mini-color-primary-soft) 35%, var(--mini-color-background) 65%);
}

body.theme-root[data-layout="narrative"] [data-theme="surface-muted"] {
  background-color: color-mix(in srgb, var(--mini-color-secondary-soft) 25%, var(--mini-color-background) 75%);
}

body.theme-root[data-layout="narrative"] #propertyHighlights {
  border: 1px solid color-mix(in srgb, var(--mini-color-accent) 25%, transparent);
}

body.theme-root #demoCustomizerToggle[data-theme="surface"] {
  background-color: color-mix(in srgb, var(--mini-color-surface) 95%, transparent);
  border-color: var(--mini-border-soft);
  box-shadow: 0 12px 24px -18px rgba(15, 23, 42, 0.35);
  color: var(--mini-color-text);
}

body.theme-root #demoCustomizerToggle[data-theme="surface"]:hover {
  border-color: color-mix(in srgb, var(--mini-color-accent) 30%, var(--mini-border-soft) 70%);
  color: var(--mini-color-text);
}

body.theme-root #demoCustomizerToggle[data-theme="surface"]:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--mini-color-accent) 40%, transparent);
  outline-offset: 2px;
}

body.theme-root #demoCustomizerPanel[data-theme="surface"] {
  border-color: var(--mini-border-soft);
  box-shadow: 0 26px 60px -28px rgba(15, 23, 42, 0.5);
}

body.theme-root #demoCustomizerPanel[data-theme="surface"] select,
body.theme-root #demoCustomizerPanel[data-theme="surface"] input[type="color"] {
  border-color: var(--mini-border-soft);
}

body.theme-root [data-theme="accent-text"] {
  color: var(--mini-color-accent) !important;
}

body.theme-root [data-theme="accent-text-contrast"] {
  color: var(--mini-color-accent-contrast) !important;
}

body.theme-root [data-theme="muted-text"] {
  color: color-mix(in srgb, var(--mini-color-text) 65%, #ffffff 35%) !important;
}

body.theme-root [data-theme="muted-secondary"] {
  color: color-mix(in srgb, var(--mini-color-muted) 80%, var(--mini-color-text) 20%) !important;
}

body.theme-root [data-theme="strong-text"] {
  color: var(--mini-color-text) !important;
}

body.theme-root [data-theme="surface-contrast"] {
  color: var(--mini-color-surface-contrast) !important;
}

body.theme-root [data-theme="outline"] {
  border-color: var(--mini-border-soft) !important;
}

body.theme-root [data-theme="outline-strong"] {
  border-color: var(--mini-border-strong) !important;
}

body.theme-root [data-theme="accent-outline"] {
  border-color: var(--mini-color-accent) !important;
  color: var(--mini-color-accent) !important;
}

body.theme-root [data-theme="secondary-outline"] {
  border-color: color-mix(in srgb, var(--mini-color-secondary) 70%, var(--mini-border-soft) 30%) !important;
  color: var(--mini-color-secondary) !important;
}

body.theme-root [data-theme="secondary-outline"]:hover {
  border-color: var(--mini-color-secondary) !important;
  color: color-mix(in srgb, var(--mini-color-secondary) 90%, white 10%) !important;
}

body.theme-root [data-theme="secondary-link"] {
  color: var(--mini-color-secondary) !important;
}

body.theme-root [data-theme="secondary-link"]:hover {
  color: color-mix(in srgb, var(--mini-color-secondary) 90%, white 10%) !important;
}

body.theme-root [data-theme="secondary-soft"] {
  background-color: color-mix(in srgb, var(--mini-color-secondary-soft) 75%, var(--mini-color-background) 25%) !important;
  border-color: color-mix(in srgb, var(--mini-color-secondary) 55%, transparent) !important;
  color: color-mix(in srgb, var(--mini-color-secondary) 80%, var(--mini-color-text) 20%) !important;
}

body.theme-root [data-theme="secondary-text"] {
  color: color-mix(in srgb, var(--mini-color-secondary) 70%, var(--mini-color-text) 30%) !important;
}

body.theme-root [data-theme="secondary-pill"] {
  background-color: color-mix(in srgb, var(--mini-color-secondary) 15%, white 85%) !important;
  color: var(--mini-color-secondary) !important;
  border: 1px solid color-mix(in srgb, var(--mini-color-secondary) 60%, transparent) !important;
}

body.theme-root [data-theme="muted-bg"] {
  background-color: color-mix(in srgb, var(--mini-color-background) 82%, var(--mini-color-text) 18%) !important;
}

body.theme-root [data-theme="pure-bg"] {
  background-color: var(--mini-color-surface) !important;
}

body.theme-root [data-theme="accent-bg"] {
  background-color: var(--mini-color-accent) !important;
  color: var(--mini-color-accent-contrast) !important;
}

body.theme-root [data-theme="accent-bg"] svg {
  color: var(--mini-color-accent-contrast) !important;
}

body.theme-root [data-theme="accent-pill"] {
  background-color: var(--mini-color-accent-soft) !important;
  color: var(--mini-color-accent-contrast) !important;
  border: 1px solid var(--mini-color-accent) !important;
}

body.theme-root [data-theme="accent-pill"] svg {
  color: inherit;
}

body.theme-root [data-theme="badge"] {
  color: var(--mini-color-accent) !important;
  background-color: color-mix(in srgb, var(--mini-color-accent) 16%, transparent) !important;
}

body.theme-root [data-theme="primary-pill"] {
  background-color: color-mix(in srgb, var(--mini-color-primary) 12%, var(--mini-color-surface) 88%) !important;
  color: var(--mini-color-primary) !important;
}

body.theme-root [data-theme="muted-link"] {
  color: color-mix(in srgb, var(--mini-color-text) 70%, var(--mini-color-muted) 30%) !important;
}

body.theme-root [data-theme="muted-link"]:hover {
  color: var(--mini-color-text) !important;
}

body.theme-root [data-theme="outline-accent"] {
  border-color: var(--mini-border-soft) !important;
  color: color-mix(in srgb, var(--mini-color-text) 70%, var(--mini-color-muted) 30%) !important;
  transition: border-color 160ms ease, color 160ms ease;
}

body.theme-root [data-theme="outline-accent"]:hover {
  border-color: var(--mini-color-accent) !important;
  color: var(--mini-color-accent) !important;
}

body.theme-root [data-theme="badge-neutral"] {
  color: color-mix(in srgb, var(--mini-color-text) 65%, var(--mini-color-muted) 35%) !important;
  background-color: color-mix(in srgb, var(--mini-color-background) 60%, var(--mini-color-primary) 10%, white 30%) !important;
}

body.theme-root .text-slate-900,
body.theme-root .text-slate-800 {
  color: var(--mini-color-text) !important;
}

body.theme-root .text-slate-700 {
  color: color-mix(in srgb, var(--mini-color-text) 90%, var(--mini-color-muted) 10%) !important;
}

body.theme-root .text-slate-600 {
  color: color-mix(in srgb, var(--mini-color-text) 65%, var(--mini-color-muted) 35%) !important;
}

body.theme-root .text-slate-500,
body.theme-root .text-slate-400 {
  color: color-mix(in srgb, var(--mini-color-muted) 80%, var(--mini-color-text) 20%) !important;
}

body.theme-root .bg-slate-50,
body.theme-root .bg-slate-50\/80 {
  background-color: color-mix(in srgb, var(--mini-color-background) 88%, white 12%) !important;
}

body.theme-root .border-slate-200,
body.theme-root .border-slate-200\/70 {
  border-color: var(--mini-border-soft) !important;
}

body.theme-root .text-emerald-600,
body.theme-root .text-emerald-500 {
  color: var(--mini-color-accent) !important;
}

body.theme-root .text-emerald-700 {
  color: color-mix(in srgb, var(--mini-color-accent) 80%, black 20%) !important;
}

body.theme-root .text-emerald-200,
body.theme-root .text-emerald-100\/90,
body.theme-root .text-emerald-50 {
  color: var(--mini-color-accent-contrast) !important;
}

body.theme-root .bg-emerald-50,
body.theme-root .bg-emerald-50\/70 {
  background-color: var(--mini-color-accent-soft) !important;
}

body.theme-root .bg-emerald-100 {
  background-color: color-mix(in srgb, var(--mini-color-accent) 18%, white 82%) !important;
}

body.theme-root .border-emerald-200,
body.theme-root .border-emerald-200\/70 {
  border-color: var(--mini-color-accent) !important;
}
