:root {
  --button-edge: #b5c5bd;
  --button-text: #173e45;
  --button-top: #fffef9;
  --button-bottom: #e8eee8;
  --button-solid: #eef2ea;
}

/* Shared interaction surface: calm light controls, clear focus and readable text. */
html {font-size:18px;scroll-padding-top:110px}
body :where(h1,h2,h3,h4,p,a,button,input,select,textarea,label,summary,dt,dd,td,th,small) {font-family:Onest,sans-serif;font-weight:400;font-style:normal;letter-spacing:normal}
body :where(input,select,textarea,label,summary,small) {font-size:max(18px,1em)}
body :where(button,a,input,select,textarea,summary):focus-visible {outline:3px solid #356e61;outline-offset:4px}
body :where(input,select,textarea) {border-color:#aabdb4}
body :where(input,select,textarea):focus {border-color:#356e61}
body :where(a) {text-underline-offset:4px}
body :where(button,a,input,select,textarea,summary) {touch-action:manipulation}
body :where(button:disabled) {cursor:default;opacity:.6}
@media(prefers-reduced-motion:reduce) {html {scroll-behavior:auto}body :where(button,a) {transition:none!important;transform:none!important}}

body :where(button:not(.yr-image-open), [data-contact], [data-tour-contact], [data-yr-contact]) {
  min-height: 48px;
  padding: 12px 18px;
  border-radius: 16px;
  font-size: 18px;
  line-height: 1.35;
}

body :is(
  button:not(.yr-image-open, .price-search__clear), [data-contact], [data-tour-contact], [data-yr-contact],
  .city-tabs > a, .price-link, .yr-button, .yacht-primary-action, .yacht-sticky-cta,
  .property-city-link, .tour-detail-button, .price-order-done__link, .tour-quick-done a,
  .hero-action, .price-section-nav a,
  .tour-reference .tour-quick-form button[type=submit]
) {
  border: 1px solid var(--button-border, var(--button-edge));
  background: linear-gradient(165deg, var(--button-start, var(--button-top)), var(--button-end, var(--button-bottom)));
  color: var(--button-ink, var(--button-text));
  box-shadow: inset 0 1px 0 var(--button-highlight, #ffffffdc), inset 0 -1px 0 #183f4010, 0 5px 12px var(--button-shadow, #173e4512);
  font-family: Onest, sans-serif;
  font-size: max(18px, var(--button-font, 1em));
  font-style: normal;
  font-weight: 400;
  text-decoration: none;
  text-shadow: none;
  overflow-wrap: normal;
  word-break: normal;
  transform: translateY(var(--button-lift, 0));
  filter: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transition: transform 140ms ease, box-shadow 140ms ease, border-color 140ms ease;
  -webkit-tap-highlight-color: transparent;
  cursor: pointer;
}

body :is(
  .city-tabs > a[aria-selected=true],
  .price-row-button--cart, .price-selection-button--cart,
  .tour-detail-button--cart, .price-modal-main,
  .yacht-primary-action, .yacht-quiz__submit, .yacht-sticky-cta,
  .yr-button:not([data-yr-contact]):not([data-yr-close]),
  .tour-quick-form button[type=submit], .price-order-form button[type=submit],
  [data-price-order-form] button[type=submit], .price-order-done__link, .tour-quick-done a,
  [data-compare-inquire]
) {
  --button-start: #246b6c;
  --button-end: #123e46;
  --button-ink: #fffdf6;
  --button-border: #bc9e62;
  --button-highlight: #ffffff4d;
  --button-shadow: #123e462b;
  --button-fallback: #194e53;
}
body .intro .price-link {
  --button-start: #34585a;
  --button-end: #1a343d;
  --button-ink: #fffdf6;
  --button-border: #bc9e62;
  --button-highlight: #ffffff4d;
  --button-shadow: #123e462b;
  --button-fallback: #24444a;
  min-height: 88px;
  padding: 20px 24px;
  gap: 18px;
  border-radius: 22px;
  --button-font: clamp(22px, 2vw, 28px);
  line-height: 1.3;
}
body .price-link__mark {
  flex: 0 0 44px;
  width: 44px;
  min-width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: #efcd89;
}
.price-link__mark svg { width: 30px; height: 30px; }
body .price-link__arrow { color: #efcd89; font-size: 30px; }

body :is(.service-chooser .city-tabs, .city-tabs) { gap: 16px; }
body .city-tabs > a {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  min-height: 76px;
  padding: 18px 46px;
  border-radius: 18px;
  --button-font: 24px;
  text-align: center;
  overflow: hidden;
}
body .city-tabs > a > span:not(.city-tab-check) { font-size: inherit; }
body .city-tabs .city-tab-check {
  right: 18px;
  width: 24px;
  height: 24px;
  border: 1px solid #e9cd9573;
  background: #ffffff12;
  color: #fffdf6;
  font-size: 18px;
  opacity: 0;
  transform: none;
}
body .city-tabs > a[aria-selected=true] .city-tab-check { opacity: 1; }

body :is([data-contact=whatsapp], [data-tour-contact=whatsapp], [data-yr-contact=whatsapp]) {
  --button-start: #158047;
  --button-end: #0d673c;
  --button-ink: #ffffff;
  --button-border: #137748;
  --button-highlight: #ffffff61;
  --button-shadow: #0a653023;
  --button-fallback: #117342;
}
body :is([data-contact=telegram], [data-tour-contact=telegram], [data-yr-contact=telegram]) {
  --button-start: #1677a7;
  --button-end: #0c628f;
  --button-ink: #ffffff;
  --button-border: #126f9d;
  --button-highlight: #ffffff61;
  --button-shadow: #09689423;
  --button-fallback: #116e9c;
}
body :is(.footer-choice, .property-contact-link, [data-yr-contact]) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 56px;
}
body .header-contact-icons { gap: 12px; }
body .header-contact-icon {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  padding: 12px;
  border-radius: 18px;
}
.header-contact-icon > svg { display: block; width: 32px; height: 32px; fill: currentColor; }
body .contact-dock {
  gap: 12px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  bottom: max(16px, env(safe-area-inset-bottom));
}
body .contact-dock a { width: 162px; min-height: 58px; gap: 10px; padding: 12px 16px; border-radius: 18px; }
body :is(.contact-dock__icon, .footer-service-icon, .tour-contact-card__icon, .button-service-icon) {
  display: grid;
  place-items: center;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: inherit;
}
body :is(.contact-dock__icon, .footer-service-icon, .tour-contact-card__icon, .button-service-icon) svg { width: 26px; height: 26px; fill: currentColor; }
body .tour-contact-card { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 58px; }
body .tour-contact-card__title { color: inherit; font-size: 18px; }
body :is(.tour-contact-card__copy, .tour-contact-card__title) { min-width: 0; }
body :is(.yacht-contact-links, .footer-contact-links, .yr-actions) { gap: 12px; }
body :is(.price-link, .contact-dock__link, .tour-contact-card, .price-filter__button, .hero-action)::before,
body :is(.price-link, .contact-dock__link, .tour-contact-card, .price-filter__button, .hero-action)::after { content: none; animation: none; }

body :is(.price-filter__button, [data-trip-day], [data-tour-option], .property-city-link).is-active,
body :is(.price-filter__button, [data-trip-day], [data-tour-option], .price-row-button:not(.price-row-button--cart))[aria-pressed=true],
body .property-city-link.is-current {
  --button-start: #e4f0e8;
  --button-end: #c7dfd3;
  --button-border: #5b8d79;
  --button-ink: #164a3e;
  --button-fallback: #d7e8dc;
  --button-highlight: #ffffffc4;
}
body .price-row-button { gap: 8px; min-height: 56px; padding: 10px 8px; }
body .price-row-button__icon { width: 24px; height: 24px; flex-basis: 24px; border: 0; border-radius: 0; background: transparent; }
body .price-row-button__icon img { width: 24px; height: 24px; filter: none; }
body .price-row-actions { gap: 12px; }
body .price-selection-button { min-height: 68px; padding: 10px 14px; grid-template-columns: 40px minmax(0,1fr) auto; gap: 10px; }
body .price-selection-button__icon { width: 40px; height: 40px; border: 0; background: transparent; box-shadow: none; }
body .price-selection-button__icon img { width: 40px; height: 40px; }
body .price-selection-bar { gap: 12px; padding: 0; background: #fbf7ed; border: 0; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
body .price-filter__button { min-height: 56px; padding: 12px; }
body .price-trip__days { gap: 12px; }
body .price-stepper__row { gap: 12px; }
body .price-stepper__row button { min-height: 48px; width: 48px; padding: 0; border-radius: 14px; font-size: 24px; }
body .price-trip__days button { padding: 10px 14px; }
body .price-section-nav a { display: inline-flex; align-items: center; padding: 10px 14px; }
body .price-contact-choice { border-radius: 16px; box-shadow: inset 0 1px 0 #fff, 0 3px 10px #143d3910; }
body .price-contact-choice:has(input:checked) { border-color: #377761; background: #e2efe5; box-shadow: 0 0 0 1px #377761; }
body .price-search__clear { padding: 0; min-height: 44px; background: transparent; border: 0; box-shadow: none; transform: translateY(-50%); }
body :is(button[disabled], button:disabled) { opacity: .48; cursor: not-allowed; transform: none; }
body :is(.price-modal__close, [data-yr-close]) { min-width: 48px; min-height: 48px; padding: 10px 14px; }
body .price-modal__close { display: grid; place-items: center; width: 48px; height: 48px; padding: 0; --button-font: 26px; }

@media (hover: hover) {
  body :is(button:not(:disabled), [data-contact], [data-tour-contact], [data-yr-contact], .city-tabs > a, .price-link, .yr-button, .yacht-primary-action, .yacht-sticky-cta, .property-city-link, .hero-action, .price-section-nav a):hover { --button-lift: -2px; --button-shadow: #123d4526; }
}
body :is(button, [data-contact], [data-tour-contact], [data-yr-contact], .city-tabs > a, .price-link, .yr-button, .yacht-primary-action, .yacht-sticky-cta, .property-city-link, .hero-action, .price-section-nav a):active { --button-lift: 1px; --button-shadow: #123d450c; }
html body :is(button, a, input, select, textarea):focus-visible { outline: 3px solid #aa7122; outline-offset: 4px; }

@media (max-width: 720px) {
  body .city-tabs > a { min-height: 66px; padding: 16px 30px 16px 12px; border-radius: 16px; --button-font: 20px; }
  body :is(.service-chooser .city-tabs, .city-tabs) { gap: 12px; }
  body .city-tabs .city-tab-check { right: 8px; width: 20px; height: 20px; }
  body .intro .price-link { min-height: 84px; margin-top: 24px; padding: 16px; gap: 12px; border-radius: 18px; --button-font: 20px; }
  body .price-link__mark { width: 32px; min-width: 32px; flex-basis: 32px; }
  body .price-link__mark svg { width: 28px; height: 28px; }
  body .header-contact-icon { width: 48px; height: 48px; padding: 10px; border-radius: 15px; }
  body .header-contact-icon > svg { width: 28px; height: 28px; }
  body .contact-dock { width: calc(100% - 48px); max-width: 360px; }
  body .contact-dock a { width: auto; flex: 1 1 0; min-width: 0; min-height: 56px; padding: 12px 8px; gap: 8px; border-radius: 16px; }
  body .contact-dock__icon { width: 24px; height: 24px; flex-basis: 24px; }
  body .contact-dock__icon svg { width: 24px; height: 24px; }
  body .price-selection-button { grid-template-columns: 28px minmax(0,1fr) auto; min-width: 0; gap: 6px; padding: 10px 8px; font-size: 18px; }
  body .price-selection-button__icon, body .price-selection-button__icon img { width: 30px; height: 30px; }
  body .price-selection-button__count { position: static; width: auto; min-width: 24px; height: 24px; }
  body .price-trip__days button { flex: 1 1 calc(25% - 12px); min-width: 0; padding: 10px 8px; }
  body .price-trip__days button:first-child { flex-basis: 100%; }
  body .footer-contact-links { width: 100%; }
  body .footer-choice { flex: 1 1 140px; }
}
@media (prefers-reduced-motion: reduce) {
  html body :is(button, a) { transition: none !important; --button-lift: 0px !important; }
}
@media (prefers-reduced-transparency: reduce) {
  html body :is(button:not(.yr-image-open), [data-contact], [data-tour-contact], [data-yr-contact], .city-tabs > a, .price-link, .yr-button, .yacht-primary-action, .yacht-sticky-cta, .property-city-link) {
    background: var(--button-fallback, var(--button-solid)) !important;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}
@media (forced-colors: active) {
  html body :is(button, a) { box-shadow: none; border-color: ButtonText; }
}

body .price-selection-button__icon::after { content: none; animation: none; }

body .price-row-button[aria-pressed=true]::after { content: none; }
body .price-selection-button__label { white-space: nowrap; }
@media (max-width: 360px) {
  body .price-filter__buttons { grid-template-columns: 1fr; }
  body .city-tabs > a { padding: 16px 8px; --button-font: 18px; }
  body .city-tabs .city-tab-check { display: none; }
  body .contact-dock a { padding: 10px 6px; gap: 6px; }
  body .contact-dock__icon, body .contact-dock__icon svg { width: 20px; height: 20px; flex-basis: 20px; }
  body .price-selection-button { grid-template-columns: minmax(0,1fr) auto; }
  body .price-selection-button__icon, body .price-row-button__icon { display: none; }
}

body .price-fly-item { display: none; }
body :is(.price-selection-button.is-receiving, .price-selection-button.is-receiving .price-selection-button__icon, .price-selection-button__count.is-updating) { animation: none; }
body .price-trip__days button { min-height: 48px; }

/* Final shared state layer follows the component variants above. */
body :is(.j-primary,.j-city button,.j-time button,.j-view a,.j-header-cart,.j-header-cart [data-cart-count],.price-selection-button--cart,.price-row-button--cart,.tour-detail-button--cart,.price-modal-main,.yacht-primary-action,.yacht-sticky-cta,.yr-button,.hero-action,.j-pill,[data-view],button[type=submit],button[data-cart],[data-compare-inquire]) {
 --button-start:#f4f8f2;--button-end:#e8f0e8;--button-ink:#183e38;--button-border:#afc5b9;--button-highlight:#fff;--button-shadow:#193e3810;
 background:linear-gradient(165deg,#f8fbf6,#e8f0e8)!important;color:#183e38!important;border-color:#afc5b9!important;box-shadow:inset 0 1px 0 #fff,0 3px 10px #193e380a!important;text-shadow:none!important;
}
body :is(.j-city button[aria-pressed=true],.j-time button[aria-pressed=true],[data-view][aria-current=true]) {background:#e2eee5!important;color:#183e38!important;border-color:#5d8674!important;box-shadow:inset 0 0 0 1px #5d8674!important}
.j-header,.j-wrap,.j-detail,.j-dialog {font-size:18px}
.j-header nav {gap:24px}
.j-header :is(a,button),.property-header nav a,.dev-header nav a,.site-section-nav a {min-height:48px;display:inline-flex;align-items:center}
.j-header-cart [data-cart-count] {border:1px solid #afc5b9}
.j-wrap h1,.j-wrap h2,.j-detail h2,.j-dialog h2 {letter-spacing:normal!important}
.j-wrap :where(p,li),.property-detail-section>p,.dev-wrap article>section>p {max-width:72ch}
.j-card,.car-card,.property-card {transition:border-color 140ms ease,box-shadow 140ms ease}
.j-card:focus-within,.car-card:focus-within,.property-card:focus-within {border-color:#6f9583;box-shadow:0 6px 20px #193e3810}
.j-card__body,.car-copy {display:flex;flex-direction:column;align-items:flex-start}
.j-card__body .j-actions,.car-copy>[data-car-save] {margin-top:auto}
.j-card__summary {line-height:1.6}
.j-tour-photo {top:108px}
.j-tour-nav {scroll-margin-top:108px}
.site-section-nav {display:flex;flex-wrap:wrap;align-items:center;gap:24px}
.hotels-page .header-inner {justify-content:space-between;max-width:1280px;padding-block:18px}
.hotels-page .brand-banner {width:230px;flex:0 0 230px}
.developments-page {font-size:18px}
.dev-wrap {width:min(1280px,calc(100% - 128px))}
.dev-wrap p,.dev-wrap li {line-height:1.65}
.property-return {display:inline-flex;align-items:center;min-height:48px;margin-top:12px}
.property-return[hidden] {display:none}
.car-total {padding:14px 18px;border:1px solid #bfd1c3;border-radius:12px;background:#f1f6ee}
.car-dialog>img {max-height:44vh}
.car-dialog-copy {padding:22px 28px}
@media(min-width:1001px) {
 .j-hero {min-height:410px;padding:32px 40px;gap:28px}
 .j-hero h1 {font-size:clamp(38px,4vw,56px);line-height:1.1;max-width:17ch}
 .j-hero__art {max-height:380px}
 .j-hero__art img {height:100%;max-height:380px;object-fit:contain}
 .j-catalog-hero {min-height:300px;max-height:340px;margin-bottom:28px}
 .j-catalog-hero h1 {font-size:48px;line-height:1.12}
 .j-catalog-hero picture,.j-catalog-hero img {max-height:338px}
 .property-sections {margin-top:12px;margin-bottom:12px;gap:24px}
 .property-section {min-height:156px;padding:24px 28px}
 .property-section-title {font-size:36px}
 .property-city-copy {gap:8px}
 .property-city-art {width:190px;height:104px}
 .property-city-arrow {top:24px;right:24px}
 .property-sections+.property-hero {gap:42px;padding-block:22px 38px}
 .property-sections+.property-hero h1 {font-size:clamp(38px,3.5vw,50px);line-height:1.15}
 .property-sections+.property-hero .property-hero-image {height:370px}
 .property-header {padding-block:18px}
}
@media(max-width:1000px) {.site-section-nav {gap:12px 20px}.hotels-page .header-inner {flex-wrap:wrap}.dev-wrap {width:calc(100% - 48px)}}
@media(prefers-reduced-transparency:reduce) {.j-header {background:#fcfbf8;backdrop-filter:none;-webkit-backdrop-filter:none}}
@media(prefers-reduced-motion:reduce) {.j-card,.car-card,.property-card {transition:none}}
.property-header nav a {gap:5px}
.site-footer,.j-footer,.dev-footer,.property-footer {background:#f8faf6;color:#183e38}
body .header-contact-icon {background:#f1f6ef!important;border-color:#b9cec2!important;box-shadow:inset 0 1px 0 #fff,0 3px 10px #193e3810!important}
body .header-contact-icon[data-contact=whatsapp] {color:#157c49!important}
body .header-contact-icon[data-contact=telegram] {color:#1479a3!important}
.hotel-hero {background:#f8fbf8}
.hotel-hero__shade {background:#fffffff0}
.hotel-hero__content,.hotel-breadcrumbs a,.hotel-hero__actions a {color:#173e38}
.hotel-hero__actions a {background:#f2f7ee;border-color:#aec6b7}
.hotel-tools {margin-top:18px;box-shadow:0 6px 24px #193e380a}
.hotel-picks article:nth-child(2),.hotel-card__number,.hotel-method {background:#eaf2e9;color:#173e38}
.hotel-picks article:nth-child(2) p,.hotel-picks article:nth-child(2) button,.hotel-method :is(p,dt,dd,a) {color:#173e38}
.hotel-card[data-rank] .hotel-card__number {background:#edf4e9;color:#173e38}
@media(min-width:1001px) {
 .j-header .j-menu {display:none!important}
 .hotel-hero {width:min(1280px,calc(100% - 128px));margin:24px auto;min-height:430px;background:transparent;align-items:center}
 .hotel-hero>img {inset:18px 0 auto auto;width:46%;height:390px;border-radius:24px}
 .hotel-hero__shade {display:none}
 .hotel-hero .wrap {width:100%}
 .hotel-hero__content {padding-block:20px}
 .hotel-hero h1 {max-width:50%;font-size:46px;line-height:1.12}
 .hotel-hero p {max-width:48%;font-size:20px;line-height:1.6;margin-top:20px}
 .hotel-breadcrumbs {margin-bottom:22px}
 .hotel-tools h2 {font-size:32px;max-width:19ch;line-height:1.2}
}
body a[href^="https://wa.me/"],body a[href^="https://t.me/"] {color:#183e38!important;background-color:#f0f6ee!important;background-image:none!important}
