
/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */
/*
Document
========
*/
/**
Use a better box model (opinionated).
*/
*,
::before,
::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/**
1. Correct the line height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size (opinionated).
*/
html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
}

/*
Sections
========
*/
/**
1. Remove the margin in all browsers.
2. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
*/
body {
  margin: 0; /* 1 */
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; /* 2 */
}

/*
Grouping content
================
*/
/**
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
*/
hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
}

/*
Text-level semantics
====================
*/
/**
Add the correct text decoration in Chrome, Edge, and Safari.
*/
abbr[title] {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/**
Add the correct font weight in Edge and Safari.
*/
b,
strong {
  font-weight: bolder;
}

/**
1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
2. Correct the odd 'em' font sizing in all browsers.
*/
code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
Add the correct font size in all browsers.
*/
small {
  font-size: 80%;
}

/**
Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
*/
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
Tabular data
============
*/
/**
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
*/
table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
}

/*
Forms
=====
*/
/**
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
Remove the inheritance of text transform in Edge and Firefox.
*/
button,
select {
  text-transform: none;
}

/**
Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

/**
Remove the inner border and padding in Firefox.
*/
::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
Restore the focus styles unset by the previous rule.
*/
:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
Remove the additional ':invalid' styles in Firefox.
See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737
*/
:-moz-ui-invalid {
  box-shadow: none;
}

/**
Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
*/
legend {
  padding: 0;
}

/**
Add the correct vertical alignment in Chrome and Firefox.
*/
progress {
  vertical-align: baseline;
}

/**
Correct the cursor style of increment and decrement buttons in Safari.
*/
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/**
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/
[type=search] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
Remove the inner padding in Chrome and Safari on macOS.
*/
::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to 'inherit' in Safari.
*/
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Interactive
===========
*/
/*
Add the correct display in Chrome and Safari.
*/
summary {
  display: list-item;
}

.hidden {
  display: none !important;
}

.sr-only {
  position: absolute;
  overflow: hidden;
  width: 1px;
  height: 1px;
  padding: 0;
  border-width: 0;
  margin: -1px;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

* {
  padding: 0;
  margin: 0;
}

:root {
  --outline: 2px solid var(--color-gray-9);
  scroll-behavior: smooth;
}

html,
body {
  min-height: 100%;
}

body {
  color: var(--color-gray-12);
  font-family: "sofia-pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
}

img {
  display: block;
  border-radius: 2px;
}

img,
svg {
  max-width: 100%;
}
img:where(:not(.no-auto-height)),
svg:where(:not(.no-auto-height)) {
  height: auto;
}

button {
  border: none;
  background: transparent;
  cursor: pointer;
}

a {
  color: inherit;
  text-decoration: underline;
}

button,
input,
select {
  color: inherit;
}

:focus-visible {
  outline: var(--outline);
}

.section {
  padding-block: var(--space-l);
}
.section--tall {
  padding-block: var(--space-xl);
}

a.skip-nav-link {
  pointer-events: none;
  position: absolute;
  z-index: 2;
  opacity: 0;
  top: 2rem;
  left: 0;
  -webkit-transform: translateY(-30%);
          transform: translateY(-30%);
  -webkit-transition-property: opacity, background-color, color, -webkit-transform;
  transition-property: opacity, background-color, color, -webkit-transform;
  transition-property: opacity, transform, background-color, color;
  transition-property: opacity, transform, background-color, color, -webkit-transform;
}
a.skip-nav-link:not(:disabled):focus-visible {
  pointer-events: auto;
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  background-color: var(--color-gray-12);
}

[id] {
  scroll-margin-block-start: 5.5rem;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    -webkit-animation-duration: 0.01s !important;
            animation-duration: 0.01s !important;
    -webkit-animation-iteration-count: 1 !important;
            animation-iteration-count: 1 !important;
    -webkit-transition-duration: 0.01s !important;
            transition-duration: 0.01s !important;
    scroll-behavior: auto !important;
  }
}
@font-face {
  font-family: "sofia-pro";
  font-display: swap;
  src: url("https://use.typekit.net/af/773a22/00000000000000007735f996/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n9&v=3") format("woff2"), url("https://use.typekit.net/af/773a22/00000000000000007735f996/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n9&v=3") format("woff"), url("https://use.typekit.net/af/773a22/00000000000000007735f996/30/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n9&v=3") format("opentype");
  font-style: normal;
  font-stretch: normal;
  font-weight: 900;
}
@font-face {
  font-family: "sofia-pro";
  font-display: swap;
  src: url("https://use.typekit.net/af/5d97ff/00000000000000007735f999/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3") format("woff2"), url("https://use.typekit.net/af/5d97ff/00000000000000007735f999/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3") format("woff"), url("https://use.typekit.net/af/5d97ff/00000000000000007735f999/30/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3") format("opentype");
  font-style: normal;
  font-weight: 700;
  font-stretch: normal;
}
@font-face {
  font-family: "sofia-pro";
  font-display: swap;
  src: url("https://use.typekit.net/af/66e20c/00000000000000007735f993/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=i7&v=3") format("woff2"), url("https://use.typekit.net/af/66e20c/00000000000000007735f993/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=i7&v=3") format("woff"), url("https://use.typekit.net/af/66e20c/00000000000000007735f993/30/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=i7&v=3") format("opentype");
  font-style: italic;
  font-weight: 700;
  font-stretch: normal;
}
@font-face {
  font-family: "sofia-pro";
  font-display: swap;
  src: url("https://use.typekit.net/af/2e2409/00000000000000007735f990/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n3&v=3") format("woff2"), url("https://use.typekit.net/af/2e2409/00000000000000007735f990/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n3&v=3") format("woff"), url("https://use.typekit.net/af/2e2409/00000000000000007735f990/30/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n3&v=3") format("opentype");
  font-style: normal;
  font-weight: 300;
  font-stretch: normal;
}
@font-face {
  font-family: "sofia-pro";
  font-display: swap;
  src: url("https://use.typekit.net/af/b718ff/00000000000000007735f98d/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3") format("woff2"), url("https://use.typekit.net/af/b718ff/00000000000000007735f98d/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3") format("woff"), url("https://use.typekit.net/af/b718ff/00000000000000007735f98d/30/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3") format("opentype");
  font-style: normal;
  font-weight: 400;
  font-stretch: normal;
}
/**
   * SIZE SCALE
   * This is a Perfect Fourth scale that powers all the utilities that
   * it is relevant for (font-size, margin, padding). All items are
   * calcuated off the base size, so change that and cascade across
   * your whole project.
   */
/**
   * COLORS
   * Colors are shared between backgrounds and text by default.
   * You can also use them to power borders, fills or shadows, for example.
   */
/**
   * STACK
   * Custom STACK Utility.
   */
.stack-3xs > * {
  --stack-space: clamp(0.25rem, 0.22rem + 0.13vw, 0.31rem);
}

.stack-3xs > * + * {
  -webkit-margin-before: var(--stack-space, 1em);
          margin-block-start: var(--stack-space, 1em);
}

.stack-2xs > * {
  --stack-space: clamp(0.5rem, 0.44rem + 0.26vw, 0.63rem);
}

.stack-2xs > * + * {
  -webkit-margin-before: var(--stack-space, 1em);
          margin-block-start: var(--stack-space, 1em);
}

.stack-xs > * {
  --stack-space: clamp(0.75rem, 0.66rem + 0.39vw, 0.94rem);
}

.stack-xs > * + * {
  -webkit-margin-before: var(--stack-space, 1em);
          margin-block-start: var(--stack-space, 1em);
}

.stack-s > * {
  --stack-space: clamp(1rem, 0.88rem + 0.52vw, 1.25rem);
}

.stack-s > * + * {
  -webkit-margin-before: var(--stack-space, 1em);
          margin-block-start: var(--stack-space, 1em);
}

.stack-m > * {
  --stack-space: clamp(1.5rem, 1.32rem + 0.78vw, 1.88rem);
}

.stack-m > * + * {
  -webkit-margin-before: var(--stack-space, 1em);
          margin-block-start: var(--stack-space, 1em);
}

.stack-l > * {
  --stack-space: clamp(2rem, 1.75rem + 1.05vw, 2.5rem);
}

.stack-l > * + * {
  -webkit-margin-before: var(--stack-space, 1em);
          margin-block-start: var(--stack-space, 1em);
}

.stack-xl > * {
  --stack-space: clamp(3rem, 2.63rem + 1.57vw, 3.75rem);
}

.stack-xl > * + * {
  -webkit-margin-before: var(--stack-space, 1em);
          margin-block-start: var(--stack-space, 1em);
}

.stack-2xl > * {
  --stack-space: clamp(4rem, 3.51rem + 2.09vw, 5rem);
}

.stack-2xl > * + * {
  -webkit-margin-before: var(--stack-space, 1em);
          margin-block-start: var(--stack-space, 1em);
}

.stack-3xl > * {
  --stack-space: clamp(6rem, 5.26rem + 3.14vw, 7.5rem);
}

.stack-3xl > * + * {
  -webkit-margin-before: var(--stack-space, 1em);
          margin-block-start: var(--stack-space, 1em);
}

.stack-3xs-2xs > * {
  --stack-space: clamp(0.25rem, 0.07rem + 0.78vw, 0.63rem);
}

.stack-3xs-2xs > * + * {
  -webkit-margin-before: var(--stack-space, 1em);
          margin-block-start: var(--stack-space, 1em);
}

.stack-2xs-xs > * {
  --stack-space: clamp(0.5rem, 0.29rem + 0.92vw, 0.94rem);
}

.stack-2xs-xs > * + * {
  -webkit-margin-before: var(--stack-space, 1em);
          margin-block-start: var(--stack-space, 1em);
}

.stack-xs-s > * {
  --stack-space: clamp(0.75rem, 0.5rem + 1.05vw, 1.25rem);
}

.stack-xs-s > * + * {
  -webkit-margin-before: var(--stack-space, 1em);
          margin-block-start: var(--stack-space, 1em);
}

.stack-s-m > * {
  --stack-space: clamp(1rem, 0.57rem + 1.83vw, 1.88rem);
}

.stack-s-m > * + * {
  -webkit-margin-before: var(--stack-space, 1em);
          margin-block-start: var(--stack-space, 1em);
}

.stack-m-l > * {
  --stack-space: clamp(1.5rem, 1.01rem + 2.09vw, 2.5rem);
}

.stack-m-l > * + * {
  -webkit-margin-before: var(--stack-space, 1em);
          margin-block-start: var(--stack-space, 1em);
}

.stack-l-xl > * {
  --stack-space: clamp(2rem, 1.14rem + 3.66vw, 3.75rem);
}

.stack-l-xl > * + * {
  -webkit-margin-before: var(--stack-space, 1em);
          margin-block-start: var(--stack-space, 1em);
}

.stack-xl-2xl > * {
  --stack-space: clamp(3rem, 2.02rem + 4.18vw, 5rem);
}

.stack-xl-2xl > * + * {
  -webkit-margin-before: var(--stack-space, 1em);
          margin-block-start: var(--stack-space, 1em);
}

.stack-2xl-3xl > * {
  --stack-space: clamp(4rem, 2.28rem + 7.32vw, 7.5rem);
}

.stack-2xl-3xl > * + * {
  -webkit-margin-before: var(--stack-space, 1em);
          margin-block-start: var(--stack-space, 1em);
}

/* -------------------------------- */
/* Utility Classes for Self-Spacing */
.stack3xs {
  --stack-space: clamp(0.25rem, 0.22rem + 0.13vw, 0.31rem);
}

.stack2xs {
  --stack-space: clamp(0.5rem, 0.44rem + 0.26vw, 0.63rem);
}

.stackxs {
  --stack-space: clamp(0.75rem, 0.66rem + 0.39vw, 0.94rem);
}

.stacks {
  --stack-space: clamp(1rem, 0.88rem + 0.52vw, 1.25rem);
}

.stackm {
  --stack-space: clamp(1.5rem, 1.32rem + 0.78vw, 1.88rem);
}

.stackl {
  --stack-space: clamp(2rem, 1.75rem + 1.05vw, 2.5rem);
}

.stackxl {
  --stack-space: clamp(3rem, 2.63rem + 1.57vw, 3.75rem);
}

.stack2xl {
  --stack-space: clamp(4rem, 3.51rem + 2.09vw, 5rem);
}

.stack3xl {
  --stack-space: clamp(6rem, 5.26rem + 3.14vw, 7.5rem);
}

.stack3xs-2xs {
  --stack-space: clamp(0.25rem, 0.07rem + 0.78vw, 0.63rem);
}

.stack2xs-xs {
  --stack-space: clamp(0.5rem, 0.29rem + 0.92vw, 0.94rem);
}

.stackxs-s {
  --stack-space: clamp(0.75rem, 0.5rem + 1.05vw, 1.25rem);
}

.stacks-m {
  --stack-space: clamp(1rem, 0.57rem + 1.83vw, 1.88rem);
}

.stackm-l {
  --stack-space: clamp(1.5rem, 1.01rem + 2.09vw, 2.5rem);
}

.stackl-xl {
  --stack-space: clamp(2rem, 1.14rem + 3.66vw, 3.75rem);
}

.stackxl-2xl {
  --stack-space: clamp(3rem, 2.02rem + 4.18vw, 5rem);
}

.stack2xl-3xl {
  --stack-space: clamp(4rem, 2.28rem + 7.32vw, 7.5rem);
}

/* Utility Classes for font size */
.font-size--2 {
  font-size: var(--font-size--2);
}

.font-size--1 {
  font-size: var(--font-size--1);
}

.font-size-0 {
  font-size: var(--font-size-0);
}

.font-size-1 {
  font-size: var(--font-size-1);
}

.font-size-2 {
  font-size: var(--font-size-2);
}

.font-size-3 {
  font-size: var(--font-size-3);
}

.font-size-4 {
  font-size: var(--font-size-4);
}

.font-size-5 {
  font-size: var(--font-size-5);
}

/**
   * CORE CONFIG
   * This powers everything from utility class generation to breakpoints
   * to enabling/disabling pre-built components/utilities.
   */
:root {
  --color-white: #fff;
  --color-black: #000;
  --color-gray-1: hsl(0, 0%, 99%);
  --color-gray-2: hsl(0, 0%, 97.3%);
  --color-gray-3: hsl(0, 0%, 95.1%);
  --color-gray-4: hsl(0, 0%, 93%);
  --color-gray-5: hsl(0, 0%, 90.9%);
  --color-gray-6: hsl(0, 0%, 88.7%);
  --color-gray-7: hsl(0, 0%, 85.8%);
  --color-gray-8: hsl(0, 0%, 78%);
  --color-gray-9: hsl(0, 0%, 56.1%);
  --color-gray-10: hsl(0, 0%, 52.3%);
  --color-gray-11: hsl(0, 0%, 43.5%);
  --color-gray-12: hsl(0, 0%, 9%);
  --color-notice-light: #f6eac9;
  --color-success: #15803d;
  --color-success-light: #e7f6ec;
  --color-primary: #1f202b;
  --color-error: #c61d57;
  --color-brand: #327e6c;
  --color-brand-light: #f1f9f7;
  --color-brand-muted: rgba(50, 126, 108, 0.3);
  --color-brand-hover: #7aab9f;
  --color-occupancy-medium: #fff3cd;
  --color-occupancy-medium-text: #856404;
  --color-occupancy-medium-hover: #e8dcb5;
  --color-occupancy-high: #fd7e14;
  --color-occupancy-high-hover: #e57112;
  --font-size--2: clamp(0.79rem, 0.78rem + 0.03vw, 0.8rem);
  --font-size--1: clamp(0.89rem, 0.81rem + 0.37vw, 1rem);
  --font-size-0: clamp(1rem, 0.83rem + 0.83vw, 1.25rem);
  --font-size-1: clamp(1.13rem, 0.83rem + 1.46vw, 1.56rem);
  --font-size-2: clamp(1.27rem, 0.81rem + 2.29vw, 1.95rem);
  --font-size-3: clamp(1.42rem, 0.75rem + 3.39vw, 2.44rem);
  --font-size-4: clamp(1.6rem, 0.64rem + 4.83vw, 3.05rem);
  --font-size-5: clamp(1.8rem, 0.46rem + 6.71vw, 3.82rem);
  --space-3xs: clamp(0.25rem, 0.22rem + 0.13vw, 0.31rem);
  --space-2xs: clamp(0.5rem, 0.44rem + 0.26vw, 0.63rem);
  --space-xs: clamp(0.75rem, 0.66rem + 0.39vw, 0.94rem);
  --space-s: clamp(1rem, 0.88rem + 0.52vw, 1.25rem);
  --space-m: clamp(1.5rem, 1.32rem + 0.78vw, 1.88rem);
  --space-l: clamp(2rem, 1.75rem + 1.05vw, 2.5rem);
  --space-xl: clamp(3rem, 2.63rem + 1.57vw, 3.75rem);
  --space-2xl: clamp(4rem, 3.51rem + 2.09vw, 5rem);
  --space-3xl: clamp(6rem, 5.26rem + 3.14vw, 7.5rem);
  --space-3xs-2xs: clamp(0.25rem, 0.07rem + 0.78vw, 0.63rem);
  --space-2xs-xs: clamp(0.5rem, 0.29rem + 0.92vw, 0.94rem);
  --space-xs-s: clamp(0.75rem, 0.5rem + 1.05vw, 1.25rem);
  --space-s-m: clamp(1rem, 0.57rem + 1.83vw, 1.88rem);
  --space-m-l: clamp(1.5rem, 1.01rem + 2.09vw, 2.5rem);
  --space-l-xl: clamp(2rem, 1.14rem + 3.66vw, 3.75rem);
  --space-xl-2xl: clamp(3rem, 2.02rem + 4.18vw, 5rem);
  --space-2xl-3xl: clamp(4rem, 2.28rem + 7.32vw, 7.5rem);
}

:root {
  --color-white: #fff;
  --color-black: #000;
  --color-gray-1: hsl(0, 0%, 99%);
  --color-gray-2: hsl(0, 0%, 97.3%);
  --color-gray-3: hsl(0, 0%, 95.1%);
  --color-gray-4: hsl(0, 0%, 93%);
  --color-gray-5: hsl(0, 0%, 90.9%);
  --color-gray-6: hsl(0, 0%, 88.7%);
  --color-gray-7: hsl(0, 0%, 85.8%);
  --color-gray-8: hsl(0, 0%, 78%);
  --color-gray-9: hsl(0, 0%, 56.1%);
  --color-gray-10: hsl(0, 0%, 52.3%);
  --color-gray-11: hsl(0, 0%, 43.5%);
  --color-gray-12: hsl(0, 0%, 9%);
  --color-notice-light: #f6eac9;
  --color-success: #15803d;
  --color-success-light: #e7f6ec;
  --color-primary: #1f202b;
  --color-error: #c61d57;
  --color-brand: #327e6c;
  --color-brand-light: #f1f9f7;
  --color-brand-muted: rgba(50, 126, 108, 0.3);
  --color-brand-hover: #7aab9f;
  --color-occupancy-medium: #fff3cd;
  --color-occupancy-medium-text: #856404;
  --color-occupancy-medium-hover: #e8dcb5;
  --color-occupancy-high: #fd7e14;
  --color-occupancy-high-hover: #e57112;
  --font-size--2: clamp(0.79rem, 0.78rem + 0.03vw, 0.8rem);
  --font-size--1: clamp(0.89rem, 0.81rem + 0.37vw, 1rem);
  --font-size-0: clamp(1rem, 0.83rem + 0.83vw, 1.25rem);
  --font-size-1: clamp(1.13rem, 0.83rem + 1.46vw, 1.56rem);
  --font-size-2: clamp(1.27rem, 0.81rem + 2.29vw, 1.95rem);
  --font-size-3: clamp(1.42rem, 0.75rem + 3.39vw, 2.44rem);
  --font-size-4: clamp(1.6rem, 0.64rem + 4.83vw, 3.05rem);
  --font-size-5: clamp(1.8rem, 0.46rem + 6.71vw, 3.82rem);
  --space-3xs: clamp(0.25rem, 0.22rem + 0.13vw, 0.31rem);
  --space-2xs: clamp(0.5rem, 0.44rem + 0.26vw, 0.63rem);
  --space-xs: clamp(0.75rem, 0.66rem + 0.39vw, 0.94rem);
  --space-s: clamp(1rem, 0.88rem + 0.52vw, 1.25rem);
  --space-m: clamp(1.5rem, 1.32rem + 0.78vw, 1.88rem);
  --space-l: clamp(2rem, 1.75rem + 1.05vw, 2.5rem);
  --space-xl: clamp(3rem, 2.63rem + 1.57vw, 3.75rem);
  --space-2xl: clamp(4rem, 3.51rem + 2.09vw, 5rem);
  --space-3xl: clamp(6rem, 5.26rem + 3.14vw, 7.5rem);
  --space-3xs-2xs: clamp(0.25rem, 0.07rem + 0.78vw, 0.63rem);
  --space-2xs-xs: clamp(0.5rem, 0.29rem + 0.92vw, 0.94rem);
  --space-xs-s: clamp(0.75rem, 0.5rem + 1.05vw, 1.25rem);
  --space-s-m: clamp(1rem, 0.57rem + 1.83vw, 1.88rem);
  --space-m-l: clamp(1.5rem, 1.01rem + 2.09vw, 2.5rem);
  --space-l-xl: clamp(2rem, 1.14rem + 3.66vw, 3.75rem);
  --space-xl-2xl: clamp(3rem, 2.02rem + 4.18vw, 5rem);
  --space-2xl-3xl: clamp(4rem, 2.28rem + 7.32vw, 7.5rem);
}

/* GORKO: auto-generated utility classes start */
.bg-white {
  background: #fff;
}

.bg-black {
  background: #000;
}

.bg-gray-1 {
  background: hsl(0, 0%, 99%);
}

.bg-gray-2 {
  background: hsl(0, 0%, 97.3%);
}

.bg-gray-3 {
  background: hsl(0, 0%, 95.1%);
}

.bg-gray-4 {
  background: hsl(0, 0%, 93%);
}

.bg-gray-5 {
  background: hsl(0, 0%, 90.9%);
}

.bg-gray-6 {
  background: hsl(0, 0%, 88.7%);
}

.bg-gray-7 {
  background: hsl(0, 0%, 85.8%);
}

.bg-gray-8 {
  background: hsl(0, 0%, 78%);
}

.bg-gray-9 {
  background: hsl(0, 0%, 56.1%);
}

.bg-gray-10 {
  background: hsl(0, 0%, 52.3%);
}

.bg-gray-11 {
  background: hsl(0, 0%, 43.5%);
}

.bg-gray-12 {
  background: hsl(0, 0%, 9%);
}

.bg-notice-light {
  background: #f6eac9;
}

.bg-success {
  background: #15803d;
}

.bg-success-light {
  background: #e7f6ec;
}

.bg-primary {
  background: #1f202b;
}

.bg-error {
  background: #c61d57;
}

.bg-brand {
  background: #327e6c;
}

.bg-brand-light {
  background: #f1f9f7;
}

.bg-brand-muted {
  background: rgba(50, 126, 108, 0.3);
}

.bg-brand-hover {
  background: #7aab9f;
}

.bg-occupancy-medium {
  background: #fff3cd;
}

.bg-occupancy-medium-text {
  background: #856404;
}

.bg-occupancy-medium-hover {
  background: #e8dcb5;
}

.bg-occupancy-high {
  background: #fd7e14;
}

.bg-occupancy-high-hover {
  background: #e57112;
}

.color-white {
  color: #fff;
}

.color-black {
  color: #000;
}

.color-gray-1 {
  color: hsl(0, 0%, 99%);
}

.color-gray-2 {
  color: hsl(0, 0%, 97.3%);
}

.color-gray-3 {
  color: hsl(0, 0%, 95.1%);
}

.color-gray-4 {
  color: hsl(0, 0%, 93%);
}

.color-gray-5 {
  color: hsl(0, 0%, 90.9%);
}

.color-gray-6 {
  color: hsl(0, 0%, 88.7%);
}

.color-gray-7 {
  color: hsl(0, 0%, 85.8%);
}

.color-gray-8 {
  color: hsl(0, 0%, 78%);
}

.color-gray-9 {
  color: hsl(0, 0%, 56.1%);
}

.color-gray-10 {
  color: hsl(0, 0%, 52.3%);
}

.color-gray-11 {
  color: hsl(0, 0%, 43.5%);
}

.color-gray-12 {
  color: hsl(0, 0%, 9%);
}

.color-notice-light {
  color: #f6eac9;
}

.color-success {
  color: #15803d;
}

.color-success-light {
  color: #e7f6ec;
}

.color-primary {
  color: #1f202b;
}

.color-error {
  color: #c61d57;
}

.color-brand {
  color: #327e6c;
}

.color-brand-light {
  color: #f1f9f7;
}

.color-brand-muted {
  color: rgba(50, 126, 108, 0.3);
}

.color-brand-hover {
  color: #7aab9f;
}

.color-occupancy-medium {
  color: #fff3cd;
}

.color-occupancy-medium-text {
  color: #856404;
}

.color-occupancy-medium-hover {
  color: #e8dcb5;
}

.color-occupancy-high {
  color: #fd7e14;
}

.color-occupancy-high-hover {
  color: #e57112;
}

.text--2 {
  font-size: clamp(0.79rem, 0.78rem + 0.03vw, 0.8rem);
}

.text--1 {
  font-size: clamp(0.89rem, 0.81rem + 0.37vw, 1rem);
}

.text-0 {
  font-size: clamp(1rem, 0.83rem + 0.83vw, 1.25rem);
}

.text-1 {
  font-size: clamp(1.13rem, 0.83rem + 1.46vw, 1.56rem);
}

.text-2 {
  font-size: clamp(1.27rem, 0.81rem + 2.29vw, 1.95rem);
}

.text-3 {
  font-size: clamp(1.42rem, 0.75rem + 3.39vw, 2.44rem);
}

.text-4 {
  font-size: clamp(1.6rem, 0.64rem + 4.83vw, 3.05rem);
}

.text-5 {
  font-size: clamp(1.8rem, 0.46rem + 6.71vw, 3.82rem);
}

@media (min-width: 32em) {
  .sm\:text--2 {
    font-size: clamp(0.79rem, 0.78rem + 0.03vw, 0.8rem);
  }
  .sm\:text--1 {
    font-size: clamp(0.89rem, 0.81rem + 0.37vw, 1rem);
  }
  .sm\:text-0 {
    font-size: clamp(1rem, 0.83rem + 0.83vw, 1.25rem);
  }
  .sm\:text-1 {
    font-size: clamp(1.13rem, 0.83rem + 1.46vw, 1.56rem);
  }
  .sm\:text-2 {
    font-size: clamp(1.27rem, 0.81rem + 2.29vw, 1.95rem);
  }
  .sm\:text-3 {
    font-size: clamp(1.42rem, 0.75rem + 3.39vw, 2.44rem);
  }
  .sm\:text-4 {
    font-size: clamp(1.6rem, 0.64rem + 4.83vw, 3.05rem);
  }
  .sm\:text-5 {
    font-size: clamp(1.8rem, 0.46rem + 6.71vw, 3.82rem);
  }
}
@media (min-width: 40em) {
  .md\:text--2 {
    font-size: clamp(0.79rem, 0.78rem + 0.03vw, 0.8rem);
  }
  .md\:text--1 {
    font-size: clamp(0.89rem, 0.81rem + 0.37vw, 1rem);
  }
  .md\:text-0 {
    font-size: clamp(1rem, 0.83rem + 0.83vw, 1.25rem);
  }
  .md\:text-1 {
    font-size: clamp(1.13rem, 0.83rem + 1.46vw, 1.56rem);
  }
  .md\:text-2 {
    font-size: clamp(1.27rem, 0.81rem + 2.29vw, 1.95rem);
  }
  .md\:text-3 {
    font-size: clamp(1.42rem, 0.75rem + 3.39vw, 2.44rem);
  }
  .md\:text-4 {
    font-size: clamp(1.6rem, 0.64rem + 4.83vw, 3.05rem);
  }
  .md\:text-5 {
    font-size: clamp(1.8rem, 0.46rem + 6.71vw, 3.82rem);
  }
}
@media (min-width: 50em) {
  .lg\:text--2 {
    font-size: clamp(0.79rem, 0.78rem + 0.03vw, 0.8rem);
  }
  .lg\:text--1 {
    font-size: clamp(0.89rem, 0.81rem + 0.37vw, 1rem);
  }
  .lg\:text-0 {
    font-size: clamp(1rem, 0.83rem + 0.83vw, 1.25rem);
  }
  .lg\:text-1 {
    font-size: clamp(1.13rem, 0.83rem + 1.46vw, 1.56rem);
  }
  .lg\:text-2 {
    font-size: clamp(1.27rem, 0.81rem + 2.29vw, 1.95rem);
  }
  .lg\:text-3 {
    font-size: clamp(1.42rem, 0.75rem + 3.39vw, 2.44rem);
  }
  .lg\:text-4 {
    font-size: clamp(1.6rem, 0.64rem + 4.83vw, 3.05rem);
  }
  .lg\:text-5 {
    font-size: clamp(1.8rem, 0.46rem + 6.71vw, 3.82rem);
  }
}
@media (min-width: 64em) {
  .xl\:text--2 {
    font-size: clamp(0.79rem, 0.78rem + 0.03vw, 0.8rem);
  }
  .xl\:text--1 {
    font-size: clamp(0.89rem, 0.81rem + 0.37vw, 1rem);
  }
  .xl\:text-0 {
    font-size: clamp(1rem, 0.83rem + 0.83vw, 1.25rem);
  }
  .xl\:text-1 {
    font-size: clamp(1.13rem, 0.83rem + 1.46vw, 1.56rem);
  }
  .xl\:text-2 {
    font-size: clamp(1.27rem, 0.81rem + 2.29vw, 1.95rem);
  }
  .xl\:text-3 {
    font-size: clamp(1.42rem, 0.75rem + 3.39vw, 2.44rem);
  }
  .xl\:text-4 {
    font-size: clamp(1.6rem, 0.64rem + 4.83vw, 3.05rem);
  }
  .xl\:text-5 {
    font-size: clamp(1.8rem, 0.46rem + 6.71vw, 3.82rem);
  }
}
@media (max-width: 39.99em) {
  .md-max\:text--2 {
    font-size: clamp(0.79rem, 0.78rem + 0.03vw, 0.8rem);
  }
  .md-max\:text--1 {
    font-size: clamp(0.89rem, 0.81rem + 0.37vw, 1rem);
  }
  .md-max\:text-0 {
    font-size: clamp(1rem, 0.83rem + 0.83vw, 1.25rem);
  }
  .md-max\:text-1 {
    font-size: clamp(1.13rem, 0.83rem + 1.46vw, 1.56rem);
  }
  .md-max\:text-2 {
    font-size: clamp(1.27rem, 0.81rem + 2.29vw, 1.95rem);
  }
  .md-max\:text-3 {
    font-size: clamp(1.42rem, 0.75rem + 3.39vw, 2.44rem);
  }
  .md-max\:text-4 {
    font-size: clamp(1.6rem, 0.64rem + 4.83vw, 3.05rem);
  }
  .md-max\:text-5 {
    font-size: clamp(1.8rem, 0.46rem + 6.71vw, 3.82rem);
  }
}
/* GORKO: auto-generated utility classes end */
/*
  FLEX SWITCHER
  Simple flex wrapper for elements with a certain max-width (flex-basis).
*/
.flex-switcher {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: var(--flex-switcher-gap, 2.5rem);
}
.flex-switcher > * {
  -ms-flex-preferred-size: var(--flex-switcher-basis, 25ch);
      flex-basis: var(--flex-switcher-basis, 25ch);
}
.flex-switcher[data-variant=fill] {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

/*
  GRID SWITCHER
  Set the threshold with '--grid-switcher-threshold' and you have a layout
  that switches from a three-clumn layout to a one-column layout at the
  given threshold. The Number of columns can be customized adjusting
  '--grid-switcher-column-count'. Adjust the gap if needed with
  '--grid-switcher-gap'. Fully responsive without media queries. To adjust
  the vertical gap differently to the horizontal gap use '--grid-switcher-gap-vertical'.
*/
.grid-switcher {
  --grid-switcher-column-width: clamp(
    /* ↓ Min column width calculated by (100% / grid-count). Then gap value is substracted. */
      (100% / var(--grid-switcher-column-count, 3)) - var(--grid-switcher-gap, 1rem),
    /* ↓ results in a very large value, when 100% is smaller than the chosen threshold */
      (var(--grid-switcher-threshold, 40rem) - 100%) * 999,
    /* ↓ stops the columns from growing above 100%, which would happen because of the */
      /* ↓ calculation made in the prev. line. */ 100%
  );
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--grid-switcher-column-width), 1fr));
  gap: var(--grid-switcher-gap-vertical, var(--grid-switcher-gap, 1rem)) var(--grid-switcher-gap, 1rem);
}
.grid-switcher.fixed-cols {
  grid-template-columns: repeat(auto-fill, minmax(var(--grid-switcher-column-width), 1fr));
}

.form {
  --grid-switcher-threshold: 37rem;
  --grid-switcher-column-count: 2;
  --grid-switcher-gap-vertical: 2rem;
}
@media (min-width: 50em) {
  .form {
    --grid-switcher-column-count: 3;
  }
}
.form .checkbox {
  -ms-flex-item-align: center;
      align-self: center;
  margin: 0 auto;
}
.form .action {
  -ms-flex-item-align: end;
      align-self: end;
  margin-bottom: 0.6em;
}

.inline-search {
  --grid-switcher-column-count: 2;
}

.search-list {
  --grid-switcher-gap: 2rem;
}

.button {
  --button-height: 2.75rem;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.25ch;
  text-decoration: none;
  line-height: 1;
  padding-inline: var(--space-s);
  height: var(--button-height);
  border-radius: 99rem;
  background-color: var(--color-gray-12);
  color: var(--color-gray-2);
  -webkit-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
  -webkit-transition-property: background-color, color;
  transition-property: background-color, color;
}
.button:not(:disabled):hover, .button:not(:disabled):focus-visible {
  background: var(--color-gray-11);
}
.button:is(:disabled, .is-disabled) {
  opacity: 0.2;
}
.button svg {
  width: 1.5rem;
  height: 1.5rem;
}
.button svg:not(.button--icon-only) {
  -webkit-margin-after: -0.125rem;
          margin-block-end: -0.125rem;
}
.button--align-right {
  -webkit-margin-start: auto;
          margin-inline-start: auto;
  -ms-flex-item-align: end;
      align-self: flex-end;
}
.button--icon-only {
  padding: 0;
  width: var(--button-height);
}
.button--icon-right svg {
  -webkit-margin-end: -0.25rem;
          margin-inline-end: -0.25rem;
}
.button--icon-inline-start svg {
  -webkit-margin-start: -0.25rem;
          margin-inline-start: -0.25rem;
}
.button--white {
  background-color: white;
  color: var(--color-gray-12);
}
.button--white:not(:disabled):hover, .button--white:not(:disabled):focus-visible {
  background: var(--color-gray-4);
}

.container {
  --container-padding: var(--space-s-m);
  --container-max-width: 50rem;
  width: calc(var(--container-max-width) + var(--container-padding) * 2);
  max-width: 100%;
  padding-inline: var(--container-padding);
  margin-inline: auto;
}
.container--wide {
  --container-max-width: 75rem;
}
.container--no-padding {
  --container-padding: 0;
}

.cluster {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: var(--cluster-justification, flex-start);
      -ms-flex-pack: var(--cluster-justification, flex-start);
          justify-content: var(--cluster-justification, flex-start);
  -webkit-box-align: var(--cluster-alignment, flex-start);
      -ms-flex-align: var(--cluster-alignment, flex-start);
          align-items: var(--cluster-alignment, flex-start);
  gap: var(--cluster-gap-vertical, var(--cluster-gap, 1rem)) var(--cluster-gap, 1rem);
}

[data-variant=space-between] {
  --cluster-justification: space-between;
}

.visually-hidden {
  position: absolute;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  width: 1px;
  height: 1px;
  margin: 0;
  overflow: hidden;
  white-space: nowrap;
  border: 0;
}

.hide-initially {
  display: none;
}

.icon {
  fill: #1f202b;
}
.icon__menu {
  margin-right: 0;
}
@media (min-width: 50em) {
  .icon__menu {
    margin-right: 0.9em;
  }
}
.icon__dropdown:not(.flag-icon) {
  width: 0.9375em;
  height: 0.9375em;
}
.icon--centered {
  vertical-align: middle;
  -ms-flex-item-align: center;
      align-self: center;
}
.icon--sub {
  vertical-align: sub;
}

.modal__wrapper {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(192, 192, 192, 0.8);
  display: none;
  z-index: 10000000;
  pointer-events: all;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.5rem;
}
.modal__content {
  position: relative;
  max-width: 80vw;
  min-width: -webkit-min-content;
  min-width: -moz-min-content;
  min-width: min-content;
  max-height: 90vh;
  background-color: white;
  overflow: auto;
  padding: 4rem;
  -ms-flex-preferred-size: 40rem;
      flex-basis: 40rem;
  -webkit-box-shadow: 6px 6px 10px 1px rgba(0, 0, 0, 0.77);
  box-shadow: 6px 6px 10px 1px rgba(0, 0, 0, 0.77);
}
.modal__content__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1em;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: 0.6em;
}
@media (min-width: 40em) {
  .modal__content__header {
    font-size: 1em;
  }
}
.modal__content__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1em;
  min-width: 90%;
}
.modal__content--wrap {
  min-width: 0;
  max-width: 96vw;
  -ms-flex-preferred-size: 72rem;
      flex-basis: 72rem;
}
.modal__content--booking {
  border-radius: 6px;
  text-align: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1em;
  padding: 2em;
}
.modal__content--booking p {
  overflow-x: hidden;
  text-overflow: ellipsis;
}
.modal__content__close {
  position: absolute;
  top: 0;
  right: 0;
  cursor: pointer;
  width: 2.5rem;
  height: 2.5rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border: none;
  background: none;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}
.modal--open .modal__wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.notifications {
  position: fixed;
  top: 6em;
  right: 1em;
  z-index: 13;
}
.notifications__toast {
  min-width: 30ch;
  padding: 0.9em;
  border-radius: 5px;
  text-align: left;
  -webkit-animation-duration: 0.5s;
          animation-duration: 0.5s;
}
.notifications__toast[data-variant=notice] {
  background: #f6eac9;
  border: 1px solid hsl(0, 0%, 56.1%);
  color: #000;
}
.notifications__toast-message {
  padding-right: 2em;
  opacity: 0.8;
}
.notifications__close {
  display: block;
  width: 1.2em;
  height: 1.2em;
  cursor: pointer;
}
.notifications__close[data-variant=notice] {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.4 13.8275L7.16919 18.7835C6.82892 19.0722 6.31853 19.0722 6.01229 18.7835L5.22968 18.0458C4.92344 17.7572 4.92344 17.2761 5.22968 16.9553L10.4698 12.016L5.22968 7.04467C4.92344 6.72394 4.92344 6.24284 5.22968 5.95418L6.01229 5.21649C6.31853 4.92784 6.82892 4.92784 7.16919 5.21649L12.4 10.1725L17.6309 5.2165C17.9711 4.92784 18.4815 4.92784 18.7878 5.2165L19.5704 5.95418C19.8766 6.24284 19.8766 6.72394 19.5704 7.04467L14.3303 11.984L19.5704 16.9553C19.8766 17.2761 19.8766 17.7572 19.5704 18.0458L18.7878 18.7835C18.4815 19.0722 17.9711 19.0722 17.6309 18.7835L12.4 13.8275Z' fill='%238d6b00'/%3E%3C/svg%3E%0A");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100%;
}
.notifications__close[data-variant=alert] {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.4 13.8275L7.16919 18.7835C6.82892 19.0722 6.31853 19.0722 6.01229 18.7835L5.22968 18.0458C4.92344 17.7572 4.92344 17.2761 5.22968 16.9553L10.4698 12.016L5.22968 7.04467C4.92344 6.72394 4.92344 6.24284 5.22968 5.95418L6.01229 5.21649C6.31853 4.92784 6.82892 4.92784 7.16919 5.21649L12.4 10.1725L17.6309 5.2165C17.9711 4.92784 18.4815 4.92784 18.7878 5.2165L19.5704 5.95418C19.8766 6.24284 19.8766 6.72394 19.5704 7.04467L14.3303 11.984L19.5704 16.9553C19.8766 17.2761 19.8766 17.7572 19.5704 18.0458L18.7878 18.7835C18.4815 19.0722 17.9711 19.0722 17.6309 18.7835L12.4 13.8275Z' fill='%23c61d57'/%3E%3C/svg%3E%0A");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100%;
}

.calendar {
  --calendar-color: #1f202b;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1rem;
}
.calendar :-webkit-any-link {
  color: var(--calendar-color);
  text-decoration: none;
}
.calendar :-moz-any-link {
  color: var(--calendar-color);
  text-decoration: none;
}
.calendar :any-link {
  color: var(--calendar-color);
  text-decoration: none;
}

.calendar__head {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0.5rem;
  place-items: center;
}

.calendar__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: inherit;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-pack: distribute;
      justify-content: space-around;
}

.calendar__selector {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: inherit;
  width: 24rem;
  max-width: 100%;
}

.calendar__notice {
  width: 30rem;
  max-width: 100%;
  -ms-flex-item-align: start;
      align-self: flex-start;
}
.calendar__notice :-webkit-any-link {
  text-decoration: underline;
  font-weight: bold;
}
.calendar__notice :-moz-any-link {
  text-decoration: underline;
  font-weight: bold;
}
.calendar__notice :any-link {
  text-decoration: underline;
  font-weight: bold;
}

.calendar__month-switcher {
  --size: 2rem;
  width: var(--size);
  height: var(--size);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.calendar__selected-month {
  grid-column: 2/span 5;
  font-size: 1.25rem;
  font-weight: 500;
}

.calendar__row {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}

.calendar__week-days {
  font-size: 0.875rem;
  color: rgba(0, 0, 0, 0.5);
  margin-bottom: 0.5rem;
}

.calendar__cell {
  text-align: center;
  padding: 0.5rem 0;
}

.calendar__cell-button {
  --size: 2rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: none;
  padding: 0;
  background: none;
  cursor: pointer;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  border-radius: 999px;
  width: var(--size);
  height: var(--size);
  color: var(--calendar-color);
  font-weight: 500;
}
.calendar__cell-button:disabled {
  color: rgba(0, 0, 0, 0.4);
  cursor: not-allowed;
  font-weight: normal;
}
.calendar__cell-button[aria-current=date] {
  font-weight: bold;
}
.calendar__cell-button[aria-selected=true] {
  background-color: var(--calendar-color);
  color: white;
}

.calendar__available-times {
  position: relative;
  overflow: auto;
  margin: 0 calc(-1 * var(--inline-padding, 0));
  padding: var(--inline-padding, 0);
}
@media (hover: hover) {
  .calendar__available-times {
    padding: 0;
    margin: 0;
  }
}

.calendar__available-times-list {
  list-style: none;
  gap: 0.5rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  overflow: auto;
  max-width: 100%;
}
@media (hover: hover) {
  .calendar__available-times-list {
    margin: 1rem;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(4.5rem, 1fr));
  }
}

.calendar__container--fullscreen {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 12;
  background-color: white;
  width: 100vw;
  height: 100vh;
  padding: 1rem;
}

.calendar-wrapper {
  container-type: inline-size;
}

.calendar--booking {
  --calendar-color: var(--color-gray-11);
}
.calendar--booking .calendar__content {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-pack: normal;
      -ms-flex-pack: normal;
          justify-content: normal;
}
@container (width >= 40em) {
  .calendar--booking .calendar__content {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -ms-flex-pack: distribute;
        justify-content: space-around;
  }
}
.calendar--booking .calendar__selected-month {
  font-size: var(--font-size--1);
  text-align: center;
}
.calendar--booking .calendar__month-switcher {
  cursor: pointer;
}
.calendar--booking .calendar__month-switcher:hover {
  opacity: 0.7;
}
.calendar--booking .calendar__view {
  width: 100%;
  border-collapse: collapse;
}
.calendar--booking .calendar__week-days {
  margin-bottom: 0;
}
.calendar--booking .calendar__week-days th {
  padding: 0.5rem 0;
  font-weight: normal;
}
.calendar--booking .calendar__row {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}
.calendar--booking .calendar__cell {
  padding: 0.25rem;
}
.calendar--booking .calendar__cell-button {
  --size: 2.5rem;
  border-radius: 0.5rem;
  -webkit-transition: background-color 0.2s, color 0.2s;
  transition: background-color 0.2s, color 0.2s;
}
.calendar--booking .calendar__cell-button:disabled {
  font-weight: 500;
}
.calendar--booking .calendar__cell--available {
  --day-background: var(--color-brand-muted);
  --day-hover: var(--color-brand-hover);
  --day-color: var(--color-gray-12);
}
.calendar--booking .calendar__cell--available.calendar__cell--occupancy-medium {
  --day-background: var(--color-occupancy-medium);
  --day-hover: var(--color-occupancy-medium-hover);
  --day-color: var(--color-occupancy-medium-text);
}
.calendar--booking .calendar__cell--available.calendar__cell--occupancy-high {
  --day-background: var(--color-occupancy-high);
  --day-hover: var(--color-occupancy-high-hover);
  --day-color: var(--color-white);
}
.calendar--booking .calendar__cell--available.calendar__cell--occupancy-full {
  --day-background: var(--color-error);
  --day-hover: var(--color-error);
  --day-color: var(--color-white);
}
.calendar--booking .calendar__cell--available .calendar__cell-button {
  background-color: var(--day-background);
  color: var(--day-color);
}
.calendar--booking .calendar__cell--available .calendar__cell-button:hover:not(:disabled) {
  background-color: var(--day-hover);
}
.calendar--booking .calendar__cell--available .calendar__cell-button[aria-selected=true], .calendar--booking .calendar__cell--available .calendar__cell-button.selected {
  background-color: var(--calendar-color);
  color: var(--color-white);
}
.calendar--booking .calendar__cell--unavailable .calendar__cell-button {
  background-color: var(--color-gray-5);
  color: var(--color-gray-9);
  cursor: not-allowed;
}
.calendar--booking .calendar__cell--disabled .calendar__cell-button {
  background-color: transparent;
  color: var(--color-gray-7);
  cursor: not-allowed;
}
.calendar--booking .calendar__available-times-wrapper {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  padding-inline: 0.125rem;
}
@container (width >= 40em) {
  .calendar--booking .calendar__available-times-wrapper {
    overflow-y: auto;
    max-height: 20rem;
    padding-block: var(--space-s);
    margin-top: calc(-1 * var(--space-s));
    -webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(var(--color-black)), color-stop(var(--color-black)), to(transparent));
    -webkit-mask-image: -webkit-linear-gradient(top, transparent, var(--color-black) var(--space-s), var(--color-black) calc(100% - var(--space-s)), transparent);
            mask-image: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(var(--color-black)), color-stop(var(--color-black)), to(transparent));
            mask-image: linear-gradient(to bottom, transparent, var(--color-black) var(--space-s), var(--color-black) calc(100% - var(--space-s)), transparent);
  }
}
.calendar--booking .calendar__available-times {
  padding: 0;
  margin: 0;
}
.calendar--booking .calendar__available-times-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(7rem, 1fr));
  padding: 0;
  margin: 0;
  border: none;
}
@container (width < 40em) {
  .calendar--booking .calendar__available-times-list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@container (width < 40em) {
  .calendar--booking.calendar--day-selected .calendar__week-days {
    display: none;
  }
  .calendar--booking.calendar--day-selected .calendar__view {
    display: block;
  }
  .calendar--booking.calendar--day-selected .calendar__body {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    overflow-x: auto;
    max-width: 100%;
    gap: 0.25rem;
    -ms-scroll-snap-type: x proximity;
        scroll-snap-type: x proximity;
  }
  .calendar--booking.calendar--day-selected .calendar__row {
    display: contents;
  }
  .calendar--booking.calendar--day-selected .calendar__cell {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 3.25rem;
            flex: 0 0 3.25rem;
    scroll-snap-align: center;
  }
  .calendar--booking.calendar--day-selected .calendar__cell:not(:has(.calendar__cell-button)) {
    display: none;
  }
}

.calendar__cell-button-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  line-height: 1.1;
}

.calendar__cell-sub {
  font-size: 0.5rem;
  opacity: 0.85;
  margin-top: 0.05rem;
  display: block;
}

.calendar__empty {
  color: var(--color-gray-11);
}

.calendar-loading__body {
  position: relative;
  margin-top: var(--space-xs);
}
.calendar-loading__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0.5rem;
  -webkit-filter: grayscale(1);
          filter: grayscale(1);
}
.calendar-loading__cell {
  height: 2.75rem;
  border-radius: 0.5rem;
  background: rgba(0, 0, 0, 0.08);
  -webkit-animation: calendar-loading-pulse 1.2s ease-in-out infinite;
          animation: calendar-loading-pulse 1.2s ease-in-out infinite;
}
.calendar-loading__overlay {
  position: absolute;
  inset: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.75rem;
}
.calendar-loading__spinner {
  width: 2rem;
  height: 2rem;
  border: 3px solid rgba(0, 0, 0, 0.15);
  border-top-color: var(--color-black);
  border-radius: 50%;
  -webkit-animation: calendar-loading-spin 0.8s linear infinite;
          animation: calendar-loading-spin 0.8s linear infinite;
}
.calendar-loading__text {
  font-weight: bold;
  font-size: 0.875rem;
  color: var(--color-black);
}

@-webkit-keyframes calendar-loading-spin {
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

@keyframes calendar-loading-spin {
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
@-webkit-keyframes calendar-loading-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
}
@keyframes calendar-loading-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
}
.account-type-switch {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-item-align: start;
      align-self: flex-start;
  padding: 0.125rem;
  background-color: var(--color-gray-12);
  border-radius: 99px;
}

.account-type-option {
  color: var(--color-white);
  border-radius: 99px;
  height: 2rem;
  padding-inline: var(--space-s);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  cursor: pointer;
  line-height: normal;
  text-decoration: none;
  -webkit-transition: color 0.2s, background-color 0.2s;
  transition: color 0.2s, background-color 0.2s;
  font-size: var(--font-size--2);
  font-weight: 600;
  white-space: nowrap;
}
.account-type-option--active, .account-type-option:has(:checked) {
  background-color: var(--color-white);
  color: var(--color-gray-12);
}

/* @import 'accessible-autocomplete/dist/accessible-autocomplete.min.css'; */
.autocomplete__wrapper {
  position: relative;
}
.autocomplete__wrapper:not(:has(.autocomplete__input[disabled])):has(.autocomplete__menu--visible)::after {
  content: "";
  position: absolute;
  height: 100%;
  width: 100%;
  border-radius: 0 0 1.375rem 1.375rem;
  border: 2px solid var(--color-black);
  border-top: 0;
  top: 0;
  pointer-events: none;
}
.autocomplete__wrapper:not(:has(.autocomplete__input[disabled])):has(.autocomplete__menu[data-placement=bottom])::after {
  scale: 1 -1;
}

.autocomplete__input,
.autocomplete__hint {
  position: relative;
}

.autocomplete__input {
  z-index: 102;
}
.autocomplete__input::-webkit-input-placeholder {
  color: transparent;
}
.autocomplete__input::-moz-placeholder {
  color: transparent;
}
.autocomplete__input:-ms-input-placeholder {
  color: transparent;
}
.autocomplete__input::-ms-input-placeholder {
  color: transparent;
}
.autocomplete__input::placeholder {
  color: transparent;
}

.autocomplete__input-focused {
  z-index: 1;
}

.autocomplete__hint {
  position: absolute;
  inset: 0;
  width: 100%;
  z-index: 101;
  color: rgba(0, 0, 0, 0.4);
  -webkit-padding-end: 2.25rem;
          padding-inline-end: 2.25rem;
  background-color: var(--color-white);
  border-color: transparent !important;
}

.autocomplete__menu {
  position: absolute;
  max-height: 18rem;
  overflow-y: auto;
  width: 100%;
  z-index: 104;
  background-color: var(--color-white);
  border: 2px solid var(--color-black);
}
.autocomplete__input[disabled] ~ .autocomplete__menu {
  display: none;
}
.autocomplete__menu[data-placement=top] {
  bottom: 100%;
  border-bottom: 0;
  border-radius: 1.375rem 1.375rem 0 0;
}
.autocomplete__menu[data-placement=bottom] {
  border-top: 0;
  border-radius: 0 0 1.375rem 1.375rem;
}

.autocomplete__menu--hidden {
  display: none;
}

.autocomplete__option {
  position: relative;
  padding-inline: 0.875rem;
  padding-block: 0.625rem;
  cursor: pointer;
  margin: 0.125rem;
  border-radius: 1.375rem;
}
.autocomplete__option + .autocomplete__option::after {
  content: "";
  display: block;
  width: calc(100% - 2rem);
  height: 1px;
  position: absolute;
  top: -1.5px;
  background: rgba(0, 0, 0, 0.2);
}

.autocomplete__option--focused {
  outline: none;
  -webkit-box-shadow: inset 0 0 0 2px var(--color-black);
          box-shadow: inset 0 0 0 2px var(--color-black);
}

.autocomplete__option--focused,
.autocomplete__option:hover {
  background-color: rgba(0, 0, 0, 0.1);
}

.booking-process__session-header {
  position: fixed;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: var(--space-3xs);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  top: 1rem;
  right: 1rem;
  z-index: 10;
  background: var(--color-white);
  text-decoration: none;
  border-radius: 999px;
  padding-inline: var(--space-3xs) var(--space-xs);
  padding-block: var(--space-3xs);
}
.booking-process__session-header > svg {
  width: 1.75rem;
  height: 1.75rem;
  color: var(--color-gray-9);
}
.booking-process__session-header__user {
  font-size: var(--font-size--2);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  line-height: 1;
  text-decoration: none;
}
.booking-process__session-header__user__name {
  font-weight: 600;
}
.booking-process__session-header__user__email {
  color: var(--color-gray-11);
  font-weight: 400;
}

.mb-2 {
  margin-bottom: 0.5rem;
}

.mb-4 {
  margin-bottom: 1rem;
}

.mt-4 {
  margin-top: 1rem;
}

.mt-6 {
  margin-top: 1.5rem;
}

.booking-layout {
  min-height: 100dvh;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--space-s-m);
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-padding-before: var(--space-l-xl);
          padding-block-start: var(--space-l-xl);
  -webkit-padding-after: var(--space-s-m);
          padding-block-end: var(--space-s-m);
  position: relative;
  background-color: var(--color-black);
  isolation: isolate;
  overflow: clip;
}

.booking-layout__bg {
  position: absolute;
  inset: 0;
  opacity: 0.5;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top center;
     object-position: top center;
  width: 100%;
  height: 100%;
  z-index: -1;
}

.booking-layout__logo {
  color: var(--color-white);
  width: clamp(8rem, 6.727rem + 6.36vw, 11.5rem);
  height: auto;
  margin-top: var(--space-xl);
}

.booking-layout__top-bar {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 10;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: var(--space-3xs);
  background: var(--color-white);
  border-radius: 999px;
  padding: var(--space-3xs) var(--space-2xs);
}

.booking-layout__top-bar .dropdown__menu {
  right: auto;
  left: 0;
}

.booking-layout__home-link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  color: inherit;
}

.booking-help__button {
  cursor: pointer;
  width: 2rem;
  height: 2rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border: none;
  background: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding: 0;
  color: var(--color-black);
}

.booking-help__studio {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--space-2xs);
}

.booking-card {
  --corner-size: var(--space-xl);
  border: 2px solid var(--color-black);
}
.booking-card > form {
  padding: var(--space-s-m);
  padding-top: var(--space-m-l);
  z-index: 2;
}
@media (max-width: 39.99em) {
  .booking-card {
    background-color: var(--color-white);
  }
}
@media (min-width: 40em) {
  .booking-card {
    border: none;
  }
  @supports (corner-shape: bevel) {
    .booking-card {
      border: 2px solid var(--color-black);
      background-color: white;
      corner-top-right-shape: bevel;
      border-top-right-radius: var(--corner-size);
    }
  }
  @supports not (corner-shape: bevel) {
    .booking-card {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      grid-template-rows: minmax(0, 1fr);
    }
    .booking-card > * {
      grid-column: 1/2;
      grid-row: 1/2;
    }
    .booking-card::before, .booking-card::after {
      content: "";
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      grid-column: 1/2;
      grid-row: 1/2;
    }
    .booking-card::before {
      --corner-size: calc(var(--space-xl) - 1px);
      background-color: var(--color-white);
      margin-top: 2px;
      margin-left: 2px;
      z-index: 1;
      width: calc(100% - 4px);
      height: calc(100% - 4px);
      -webkit-clip-path: polygon(calc(100% - var(--corner-size)) 0, 100% var(--corner-size), 100% 100%, 0 100%, 0 0);
              clip-path: polygon(calc(100% - var(--corner-size)) 0, 100% var(--corner-size), 100% 100%, 0 100%, 0 0);
    }
    .booking-card::after {
      background-color: black;
      z-index: 0;
      width: 100%;
      height: 100%;
      -webkit-clip-path: polygon(calc(100% - var(--corner-size)) 0, 100% var(--corner-size), 100% 100%, 0 100%, 0 0);
              clip-path: polygon(calc(100% - var(--corner-size)) 0, 100% var(--corner-size), 100% 100%, 0 100%, 0 0);
    }
  }
}

.booking-sections {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--space-l);
  padding: var(--space-s-m);
  padding-top: var(--space-m-l);
  position: relative;
  z-index: 2;
}

.booking-sections__chain {
  display: contents;
}

.voucher-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--space-xs);
}

.booking-card-tabs {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  z-index: 2;
  position: relative;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
@media (max-width: 39.99em) {
  .booking-card-tabs {
    border: 2px solid black;
    border-bottom: none;
    background-color: var(--color-white);
    overflow: hidden;
  }
  .booking-card-tabs::before {
    content: "";
    pointer-events: none;
    position: absolute;
    inset-block: 0;
    height: calc(100% + 2px);
    width: 1rem;
    background-color: var(--color-black);
    left: 50%;
    z-index: 2;
    translate: -50%;
    -webkit-transform: skew(-12deg);
            transform: skew(-12deg);
  }
}
@media (min-width: 40em) {
  .booking-card-tabs {
    margin-bottom: calc(-1 * var(--space-xs));
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}

.booking-card-tab {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: var(--space-s) var(--space-m);
  font-size: var(--font-size-0);
  font-weight: bold;
  font-style: italic;
  text-transform: uppercase;
  cursor: pointer;
  border: none;
  text-decoration: none;
  position: relative;
  text-align: center;
}
.booking-card-tab:last-child {
  margin-left: -2px;
}
.booking-card-tab > span {
  line-height: 1;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
}
@media (max-width: 39.99em) {
  .booking-card-tab {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    padding-inline: var(--space-xs);
  }
}
@media (max-width: 39.99em) {
  .booking-card-tab {
    overflow: hidden;
    background-color: white;
    color: var(--color-black);
  }
}
@media (min-width: 40em) {
  .booking-card-tab::before {
    content: "";
    position: absolute;
    inset: 0;
    -webkit-box-shadow: 0 0 0 2px var(--color-black);
            box-shadow: 0 0 0 2px var(--color-black);
    background-color: var(--color-white);
    -webkit-transform: skewX(-12deg);
            transform: skewX(-12deg);
    z-index: -1;
  }
}

.booking-card-tab--active {
  color: #fff;
}
@media (max-width: 39.99em) {
  .booking-card-tab--active {
    background-color: var(--color-black);
  }
}
@media (min-width: 40em) {
  .booking-card-tab--active::before {
    background-color: var(--color-black);
  }
}

.booking-card-tab--inactive {
  color: var(--color-black);
  position: relative;
  background: transparent;
}

.booking-checkout {
  --content-max-width: min(100%, 52rem);
  --sidebar-width: min(100%, 28rem);
  min-height: 100dvh;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media (min-width: 64em) {
  .booking-checkout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) var(--sidebar-width);
    grid-template-rows: 1fr auto;
  }
}

@media (min-width: 64em) {
  .booking-checkout--no-sidebar {
    grid-template-columns: minmax(0, 1fr);
  }
}

.booking-checkout__content {
  padding: var(--space-m-l);
  width: var(--content-max-width);
  margin-inline: auto;
}
.booking-checkout__sidebar {
  padding: var(--space-m-l);
  background-color: var(--color-brand-light);
  margin-top: auto;
  border-block: 1px solid var(--color-brand-muted);
}
@media (min-width: 64em) {
  .booking-checkout__sidebar {
    border-left: 1px solid var(--color-brand-muted);
    border-block: none;
    width: 100%;
    margin-top: 0;
  }
}

.booking-checkout__nav {
  grid-column: 1/-1;
  background-color: var(--color-white);
  border-top: 1px solid var(--color-gray-4);
  position: sticky;
  bottom: 0;
  padding-block: var(--space-2xs);
}

.booking-checkout__nav-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: var(--space-2xs);
  width: var(--content-max-width);
  margin-inline: auto;
  padding-inline: var(--space-m-l);
}

@media (min-width: 64em) {
  .booking-checkout:not(.booking-checkout--no-sidebar) .booking-checkout__nav {
    padding-right: var(--sidebar-width);
  }
}
.booking-checkout__restart {
  margin-right: auto;
  -ms-flex-item-align: center;
      align-self: center;
  color: var(--color-black);
  font-weight: bold;
  text-decoration: underline;
  text-underline-offset: 2px;
  white-space: nowrap;
}
.booking-checkout__restart:hover {
  text-decoration: none;
}

.booking-header {
  padding: 1rem 1.5rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: var(--space-s);
}

.booking-header__home-link {
  color: inherit;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.booking-header__home-link .logo {
  height: 2.25rem;
  width: auto;
}

.booking-header__language-switch {
  margin-left: auto;
}

.booking-header__login {
  color: var(--color-black);
  font-weight: bold;
  text-decoration: underline;
  text-underline-offset: 2px;
  white-space: nowrap;
}
.booking-header__login:hover {
  text-decoration: none;
}

.booking-header__user-icon {
  width: 1.25rem;
  height: 1.25rem;
}

.booking-header__user-email {
  max-width: 18ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-transform: none;
  line-height: 1.5;
}

.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown__title {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  gap: 0.25rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.25rem 0.5rem;
  border: none;
  background: transparent;
  font: inherit;
  font-weight: bold;
  text-transform: uppercase;
  color: var(--color-black);
  cursor: pointer;
}
.dropdown__title svg:last-child {
  -webkit-transition: -webkit-transform 0.2s;
  transition: -webkit-transform 0.2s;
  transition: transform 0.2s;
  transition: transform 0.2s, -webkit-transform 0.2s;
}
.dropdown__title[aria-expanded=true] svg:last-child {
  -webkit-transform: scale(-1);
          transform: scale(-1);
}

.flag-icon {
  width: 1rem;
  height: 1rem;
  border-radius: 99px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

.dropdown__menu {
  position: absolute;
  z-index: 999;
  top: calc(100% + 0.3em);
  right: 0;
  min-width: 20ch;
  padding: 0.5rem;
  margin: 0;
  list-style: none;
  background: var(--color-white);
  border: 2px solid var(--color-black);
  border-radius: 1rem;
  -webkit-box-shadow: 0 0.5em 1em rgba(0, 0, 0, 0.13);
          box-shadow: 0 0.5em 1em rgba(0, 0, 0, 0.13);
}
.dropdown__menu a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1ch;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.6rem 0.75rem;
  border-radius: 0.75rem;
  white-space: nowrap;
  color: var(--color-black);
  text-decoration: none;
}
.dropdown__menu a:hover {
  background: rgba(0, 0, 0, 0.06);
}
.dropdown__menu form {
  margin: 0;
}
.dropdown__menu .button {
  width: 100%;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.booking-success {
  padding-block: var(--space-2xl-3xl);
}
.booking-success h2 {
  --stack-space: var(--space-xl-2xl);
  font-size: var(--font-size-2);
}
.booking-success p {
  color: var(--color-gray-11);
  max-width: 60ch;
  line-height: 1.4;
  font-size: var(--font-size-0);
}

.code-info {
  --code-info-accent: #327e6c;
  --code-info-surface: #f1f9f7;
  border: 1px solid var(--code-info-accent);
  border-radius: 0.5rem;
  background-color: var(--code-info-surface);
  overflow: hidden;
}
.code-info p {
  margin: 0;
}

.code-info__main {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: var(--space-s);
  padding: var(--space-s);
}

.code-info__text {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 60%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--space-2xs);
}

.code-info__headline {
  font-weight: bold;
  color: var(--code-info-accent);
}

.code-info__description {
  color: var(--color-gray-11);
}

.code-info__remove {
  border: 1px solid var(--color-gray-12);
  font-weight: bold;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

.code-info__contents {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  gap: var(--space-2xs) var(--space-xs);
  padding: var(--space-s);
  background-color: var(--color-white);
  border-top: 1px solid var(--code-info-accent);
}

.code-info__contents-label {
  font-weight: bold;
}

.code-info__contents-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  gap: var(--space-2xs) var(--space-xs);
  list-style: none;
  margin: 0;
  padding: 0;
}
.code-info__contents-list li:not(:first-child)::before {
  content: "|";
  -webkit-margin-end: var(--space-xs);
          margin-inline-end: var(--space-xs);
  color: var(--color-gray-8);
}

.booking-form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--space-xs);
}
.booking-form__col {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
}
.booking-form__label {
  font-weight: bold;
  font-size: 0.875rem;
  color: #000;
}
.booking-form__input-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: var(--space-xs);
}
.booking-form__input-wrapper--right {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.booking-form__checkbox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.75rem;
  cursor: pointer;
}
.booking-form__checkbox input {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  width: 1.5rem;
  height: 1.5rem;
  border: 2px solid #000;
  border-radius: 4px;
  cursor: pointer;
  position: relative;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.booking-form__checkbox input:checked {
  background: #000;
}
.booking-form__checkbox input:checked::after {
  content: "";
  position: absolute;
  left: 7px;
  top: 3px;
  width: 6px;
  height: 0.75rem;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.booking-form__checkbox span {
  font-size: 0.875rem;
  color: #000;
}
.booking-form__hint {
  font-size: 0.875rem;
  color: #666;
  margin: 10px 0;
}
.booking-form__hint--error {
  color: #c61d57;
}

.booking-form__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1rem;
}
.booking-form__row > * {
  -ms-flex-preferred-size: var(--basis, auto);
      flex-basis: var(--basis, auto);
  -webkit-box-flex: var(--grow, 0);
      -ms-flex-positive: var(--grow, 0);
          flex-grow: var(--grow, 0);
}
.booking-form__row > .input label {
  white-space: nowrap;
}
.booking-form__row > .button {
  justify-self: flex-end;
  -ms-flex-item-align: end;
      align-self: flex-end;
  margin-left: auto;
}

.booking-form__cell--grow {
  --grow: 1;
}

.booking-form__cell--postal {
  --grow: 1;
  --basis: auto;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  min-width: -webkit-max-content;
  min-width: -moz-max-content;
  min-width: max-content;
}
.booking-form__cell--postal .booking-form__input, .booking-form__cell--postal .autocomplete__input,
.booking-form__cell--postal .autocomplete__hint {
  min-width: 6ch;
}

.booking-form__input, .autocomplete__input,
.autocomplete__hint {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  max-width: 100%;
  width: 100%;
  border: 2px solid #000;
  border-radius: 99px;
  outline: none;
  height: 2.75rem;
  padding-inline: 1rem;
  background: transparent;
}
label:has(~ .booking-form__input, ~ .autocomplete__input,
~ .autocomplete__hint) {
  padding-left: clamp(0.125rem, -0.458rem + 2.92vw, 1rem);
  font-weight: bold;
  font-size: 0.875rem;
  margin-bottom: 0.25rem;
  display: inline-block;
}
.booking-form__input:is(textarea), .autocomplete__input:is(textarea),
.autocomplete__hint:is(textarea) {
  border-radius: 0.5rem;
  height: auto;
  padding-block: 0.75rem;
  line-height: 1.4;
  resize: vertical;
}
.booking-form__input:is(select, .autocomplete__input, .booking-select__input), .autocomplete__input:is(select, .autocomplete__input, .booking-select__input),
.autocomplete__hint:is(select, .autocomplete__input, .booking-select__input) {
  cursor: pointer;
  -webkit-padding-end: 2.25rem;
          padding-inline-end: 2.25rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12%2014.975q-.2%200-.375-.063a.9.9%200%200%201-.325-.212l-4.6-4.6a.95.95%200%200%201-.275-.7q0-.426.275-.7a.95.95%200%200%201%20.7-.275q.424%200%20.7.275l3.9%203.9%203.9-3.9a.95.95%200%200%201%20.7-.275q.424%200%20.7.275a.95.95%200%200%201%20.275.7.95.95%200%200%201-.275.7l-4.6%204.6q-.15.15-.325.212a1.1%201.1%200%200%201-.375.063%22%20fill%3D%22%23686868%22%2F%3E%3C%2Fsvg%3E");
  background-size: 1.5rem 1.5rem;
  background-repeat: no-repeat;
  background-position: calc(100% - 0.5rem) 60%;
}
.booking-form__input:disabled, .autocomplete__input:disabled,
.autocomplete__hint:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.booking-form__error {
  margin: var(--space-2xs) 0 0;
  font-size: var(--font-size--2);
  font-weight: 500;
  color: #c61d57;
}

.booking-form__errors {
  color: #c61d57;
  font-size: 0.875rem;
  margin-bottom: 1rem;
}
.booking-form__errors p {
  margin: 0.25rem 0;
}

.input > span.error {
  display: inline-block;
  line-height: 1.2;
  padding-left: clamp(0.125rem, -0.458rem + 2.92vw, 1rem);
  font-size: var(--font-size--2);
  font-weight: 500;
  color: var(--color-error);
}

.booking-time-slot {
  display: block;
  background: var(--color-gray-4);
  padding: var(--space-xs);
  border-radius: 0.5rem;
  cursor: pointer;
  -webkit-transition: color 0.2s, background-color 0.2s, -webkit-box-shadow 0.2s;
  transition: color 0.2s, background-color 0.2s, -webkit-box-shadow 0.2s;
  transition: box-shadow 0.2s, color 0.2s, background-color 0.2s;
  transition: box-shadow 0.2s, color 0.2s, background-color 0.2s, -webkit-box-shadow 0.2s;
}
.booking-time-slot input {
  position: absolute;
  opacity: 0;
}
.booking-time-slot:has(:focus-visible), .booking-time-slot:hover {
  -webkit-box-shadow: 0 0 0 2px var(--color-gray-8);
          box-shadow: 0 0 0 2px var(--color-gray-8);
}
.booking-time-slot:has(:checked) {
  background-color: var(--color-gray-12);
  color: var(--color-white);
}

.off-studio-address {
  margin-top: var(--space-xs);
  padding-top: var(--space-xs);
  border-top: 1px solid var(--color-gray-4);
}

.booking-icon {
  width: 1.25rem;
  height: 1.25rem;
}

.booking-form__confirmation-pending {
  padding: var(--space-xs);
  border: 2px solid var(--color-black);
  border-radius: 0.5rem;
  font-size: 0.875rem;
  text-align: center;
}

.image-packages-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: var(--space-xs-s);
  border: none;
  padding: 0;
  margin: 0 0 var(--space-m);
}

.image-package {
  position: relative;
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  border-radius: 0.25rem;
}
.image-package:has(:focus-visible) {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}
.image-package input[type=radio] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.image-package input[type=radio]:checked ~ .image-package__inner {
  border-color: var(--color-brand);
  background-color: var(--color-brand-light);
}
.image-package input[type=radio]:checked ~ .image-package__inner .image-package__price {
  color: var(--color-brand);
}

.image-package__inner {
  border: 1px solid var(--color-gray-4);
  border-radius: 0.25rem;
  padding: var(--space-2xs);
  -webkit-transition: border-color 0.2s, background-color 0.2s;
  transition: border-color 0.2s, background-color 0.2s;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.25rem;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  position: relative;
}
.image-package__inner:hover {
  border-color: var(--color-gray-9);
}

.image-package__badge {
  position: absolute;
  top: -0.625rem;
  right: 50%;
  translate: 50%;
  background-color: var(--color-gray-12);
  color: var(--color-white);
  padding: 0.125rem 0.5rem;
  border-radius: 0.25rem;
  font-size: 0.6875rem;
  font-weight: 600;
}

.image-package__online-badge {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  background-color: var(--color-gray-12);
  color: var(--color-white);
  padding: 0.125rem 0.5rem;
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.025em;
  text-transform: uppercase;
  font-style: italic;
  width: 10ch;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  line-height: 1.1;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  -webkit-transform: skew(-10deg) translateX(8%);
          transform: skew(-10deg) translateX(8%);
  z-index: 2;
}
.image-package__online-badge + .image-package__inner {
  -webkit-padding-start: var(--space-s);
          padding-inline-start: var(--space-s);
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-left: none;
}

.image-package__main {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  gap: 0.5rem;
}

.image-package__info {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.125rem;
}
.image-package__info strong {
  font-size: 1rem;
}

.image-package__kind {
  font-size: 0.75rem;
  color: var(--color-gray-11);
}

.image-package__per-image {
  font-size: 0.75rem;
  color: var(--color-gray-11);
}

.image-package__price {
  white-space: nowrap;
}

.image-package__included {
  font-size: 0.75rem;
  color: var(--color-gray-11);
  white-space: nowrap;
}

.upsells {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 4rem;
}

.upsells__section {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.5rem;
}

.upsells__section--tight {
  gap: 1rem;
}

.upsells__section-title {
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 1.1;
  color: var(--color-gray-12);
}

.channel-price {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}
.channel-price__old {
  font-size: 0.75rem;
  color: var(--color-gray-11);
  text-decoration: line-through;
}
.channel-price__current {
  font-size: 1rem;
  color: var(--color-gray-12);
  white-space: nowrap;
}
.channel-price__current--discounted {
  color: var(--color-brand);
}

.upsell-products {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.upsell-product {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1rem;
  padding: 1rem 0.75rem;
  -webkit-border-after: 1px solid var(--color-gray-4);
          border-block-end: 1px solid var(--color-gray-4);
  cursor: pointer;
}
.upsell-product__checkbox {
  position: absolute;
  opacity: 0;
  inline-size: 0;
  block-size: 0;
}
.upsell-product__info {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  gap: 0.125rem;
}
.upsell-product__name {
  font-weight: 700;
  font-size: 1rem;
  color: var(--color-gray-12);
}
.upsell-product__toggle {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  inline-size: 2rem;
  block-size: 2rem;
  border-radius: 50%;
  background-color: var(--color-gray-4);
  color: var(--color-gray-12);
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-transition: background-color 0.2s, color 0.2s;
  transition: background-color 0.2s, color 0.2s;
}
.upsell-product__icon {
  display: block;
  inline-size: 1.25rem;
  block-size: 1.25rem;
}
.upsell-product__icon--added {
  display: none;
}
.upsell-product__checkbox:checked ~ .upsell-product__toggle {
  background-color: var(--color-brand);
  color: var(--color-white);
}
.upsell-product__checkbox:checked ~ .upsell-product__toggle .upsell-product__icon--add {
  display: none;
}
.upsell-product__checkbox:checked ~ .upsell-product__toggle .upsell-product__icon--added {
  display: block;
}
.upsell-product:has(.upsell-product__checkbox:focus-visible) .upsell-product__toggle {
  outline: 2px solid var(--color-brand);
  outline-offset: 2px;
}

.upsells__bundle-notice {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: var(--space-xs);
  margin-bottom: var(--space-m);
  padding: var(--space-2xs) var(--space-s);
  border: 1px solid var(--color-brand);
  border-radius: 0.5rem;
  background-color: var(--color-brand-light);
}
.upsells__bundle-notice form {
  margin: 0;
}

.upsells__bundle-notice-text {
  margin: 0;
  color: var(--color-gray-12);
}

.image-package:has(input:disabled),
.upsell-product:has(input:disabled) {
  opacity: 0.5;
  pointer-events: none;
  cursor: default;
}

.notifications {
  top: 1em;
  right: 0.5em;
}

.order-sidebar {
  position: sticky;
  top: 1rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--space-xs);
  font-size: var(--font-size--1);
  line-height: 1.4;
  color: var(--color-gray-9);
}

.order-sidebar__title {
  font-size: var(--font-size--1);
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-gray-12);
  margin: 0;
}

.order-sidebar__product {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--space-2xs-xs);
}

.order-sidebar__product-image {
  width: 100%;
  max-width: 8rem;
  aspect-ratio: 124/70;
  -o-object-fit: cover;
     object-fit: cover;
}

.order-sidebar__product-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: var(--space-xs);
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.order-sidebar__product-info {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--space-3xs);
  min-width: 0;
}

.order-sidebar__product-name {
  font-weight: 700;
  line-height: normal;
  color: var(--color-gray-12);
  margin: 0;
}

.order-sidebar__product-description {
  font-size: var(--font-size--2);
  line-height: normal;
  color: var(--color-gray-9);
  margin: 0;
}

.order-sidebar__product-price {
  line-height: normal;
  color: var(--color-gray-12);
  margin: 0;
  white-space: nowrap;
}

.order-sidebar__divider {
  border: 0;
  border-top: 1px solid rgba(50, 126, 108, 0.3);
  margin: 0;
}

.order-sidebar__details {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--space-2xs-xs);
  margin: 0;
}

.order-sidebar__detail {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: var(--space-2xs);
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  margin: 0;
}

.order-sidebar__detail-icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
}
.order-sidebar__detail-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  color: var(--color-gray-9);
}

.order-sidebar__detail-text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--space-3xs);
  line-height: normal;
}

.order-sidebar__detail-subtext {
  font-size: var(--font-size--2);
  line-height: normal;
}

.order-sidebar__packages {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--space-2xs-xs);
}

.order-sidebar__packages-title {
  font-weight: 700;
  line-height: normal;
  color: var(--color-gray-9);
  margin: 0;
}

.order-sidebar__package-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--space-2xs-xs);
  margin: 0;
  padding: 0;
  list-style: none;
}

.order-sidebar__package-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: var(--space-2xs);
  line-height: normal;
}
.order-sidebar__package-item--discount {
  color: #327e6c;
}

.order-sidebar__package-price {
  white-space: nowrap;
}

.order-sidebar__package-list:has(.order-sidebar__item-remove-form) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  -webkit-column-gap: var(--space-2xs);
     -moz-column-gap: var(--space-2xs);
          column-gap: var(--space-2xs);
}
.order-sidebar__package-list:has(.order-sidebar__item-remove-form) > .order-sidebar__package-item {
  display: grid;
  grid-template-columns: subgrid;
  grid-column: 1/-1;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}
.order-sidebar__package-list:has(.order-sidebar__item-remove-form) .order-sidebar__package-price {
  text-align: right;
}

.order-sidebar__discount-code {
  font-size: var(--font-size--2);
}

.order-sidebar__item-remove-form {
  display: contents;
}

.order-sidebar__item-remove {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  cursor: pointer;
}
.order-sidebar__item-remove svg {
  inline-size: var(--space-s);
  block-size: var(--space-s);
}
.order-sidebar__item-remove:hover svg, .order-sidebar__item-remove:focus-visible svg {
  opacity: 0.7;
}

.order-sidebar__total {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: var(--space-2xs);
}

.order-sidebar__total-label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--space-3xs);
  margin: 0;
}
.order-sidebar__total-label dt,
.order-sidebar__total-label dd {
  margin: 0;
  line-height: normal;
}
.order-sidebar__total-label dt {
  font-size: inherit;
}
.order-sidebar__total-label dd {
  font-size: var(--font-size--2);
}

.order-sidebar__total-price {
  line-height: normal;
  margin: 0;
  white-space: nowrap;
}

.payment-summary {
  margin-bottom: 20px;
}
.payment-summary__section {
  padding: var(--space-xs);
  border-bottom: 1px solid #eee;
}
.payment-summary__section h4 {
  font-size: 0.75rem;
  font-weight: bold;
  text-transform: uppercase;
  color: #666;
  margin-bottom: 8px;
}
.payment-summary__section-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: 8px;
}
.payment-summary__section-header h4 {
  margin-bottom: 0;
}
.payment-summary__section p {
  margin: 0;
  font-size: 0.875rem;
}
.payment-summary__section p.booking-form__hint {
  margin: 10px 0;
}
.payment-summary__edit-button {
  min-width: auto;
  aspect-ratio: 1;
  padding: 0.125rem;
  margin-bottom: 0;
  text-decoration: none;
}
.payment-summary__edit-button svg {
  color: #666;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
}
.payment-summary__detail {
  color: #666;
  font-size: 0.75rem !important;
}

.reco-overlay {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: var(--space-s);
  background-color: rgba(23, 23, 23, 0.55);
  overflow-y: auto;
}

.reco-overlay__dialog {
  position: relative;
  width: 100%;
  max-width: 46rem;
  max-height: calc(100dvh - var(--space-l));
  overflow-y: auto;
  background-color: var(--color-white);
  border-radius: 0.75rem;
  padding: var(--space-l);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--space-s);
}

.reco-overlay__close-form {
  position: absolute;
  top: var(--space-2xs);
  right: var(--space-2xs);
  margin: 0;
}

.reco-overlay__close {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 0.25rem;
  background: none;
  border: none;
  border-radius: 0.25rem;
  cursor: pointer;
  color: var(--color-gray-11);
}
.reco-overlay__close svg {
  width: 1.25rem;
  height: 1.25rem;
}
.reco-overlay__close:is(:hover, :focus-visible) {
  background-color: rgba(23, 23, 23, 0.06);
}

.reco-overlay__title {
  margin: 0;
  text-align: center;
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 1.2;
  color: var(--color-gray-12);
}

.reco-overlay__subtitle {
  margin: 0 auto;
  max-width: 34rem;
  text-align: center;
  color: var(--color-gray-11);
}

.reco-overlay__columns {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-s);
}
@media (min-width: 40em) {
  .reco-overlay__columns {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto auto;
    -webkit-column-gap: var(--space-s);
       -moz-column-gap: var(--space-s);
            column-gap: var(--space-s);
    row-gap: var(--space-2xs);
  }
}

.reco-overlay__column {
  display: grid;
  gap: var(--space-2xs);
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}
@media (min-width: 40em) {
  .reco-overlay__column {
    grid-row: 1/-1;
    grid-template-rows: subgrid;
  }
}

.reco-overlay__badge {
  justify-self: center;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: var(--color-brand);
  color: var(--color-white);
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.125rem 0.625rem;
  border-radius: 0.25rem;
}
.reco-overlay__badge--placeholder {
  display: none;
}
@media (min-width: 40em) {
  .reco-overlay__badge--placeholder {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    visibility: hidden;
  }
}

.reco-overlay__column-title {
  margin: 0;
  font-weight: 700;
  font-size: 1.125rem;
  text-align: center;
  color: var(--color-gray-12);
}

.reco-overlay__card {
  width: 100%;
  border: 1px solid var(--color-gray-5);
  border-radius: 0.5rem;
  overflow: hidden;
  background-color: var(--color-gray-3);
}
.reco-overlay__card--bundle {
  border-color: var(--color-brand);
  background-color: var(--color-brand-light);
}

.reco-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: var(--space-xs);
  padding: var(--space-2xs);
}
.reco-item + .reco-item {
  border-top: 1px solid rgba(23, 23, 23, 0.08);
}

.reco-item__icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
}
.reco-item__icon svg {
  display: block;
  width: 100%;
  height: 100%;
  color: var(--color-gray-12);
}

.reco-overlay__card--bundle .reco-item__icon svg {
  color: var(--color-brand);
}

.reco-item__info {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.125rem;
}

.reco-item__name {
  font-weight: 600;
  line-height: 1.2;
  color: var(--color-gray-12);
}

.reco-item__subtitle {
  font-size: var(--font-size--2);
  color: var(--color-gray-11);
}

.reco-item__image {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 3rem;
  height: 2.5rem;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 0.25rem;
}

.reco-overlay__savings {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.reco-overlay__savings strong {
  color: var(--color-gray-12);
}

.reco-overlay__savings-price {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  line-height: 1.2;
}

.reco-overlay__savings-old {
  color: var(--color-gray-11);
  text-decoration: line-through;
  font-size: var(--font-size--2);
}

.reco-overlay__savings-new {
  color: var(--color-brand);
  font-weight: 700;
}

.reco-overlay__actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: var(--space-s);
  margin-top: var(--space-2xs);
}

.reco-overlay__actions form {
  margin: 0;
}

.reco-overlay__keep {
  background: none;
  border: none;
  padding: 0;
  color: var(--color-gray-12);
  font: inherit;
  font-weight: 600;
  text-decoration: underline;
  cursor: pointer;
}

.reco-overlay__submit {
  min-width: 16rem;
}
