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

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; }
