:root {
  --d--f--gap: 0;
  --gutter-x: 3rem;
  --brand--body-bg-color: white;
  --brand--body-text-color: #333;
  --brand--body-line-height: 1.6;
  --brand--body-font-size: 1rem;
  --brand--input-height: 3rem;
  --brand--btn-height: 3rem;
  /**
  * Easing functions
  * Source: https://easings.net/
  */
  --easeInSine: cubic-bezier(0.47, 0, 0.745, 0.715);
  --easeOutSine: cubic-bezier(0.39, 0.575, 0.565, 1);
  --easeInOutSine: cubic-bezier(0.39, 0.575, 0.565, 1);
  --easeInQuad: cubic-bezier(0.55, 0.085, 0.68, 0.53);
  --easeOutQuad: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --easeInOutQuad: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --easeInCubic: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  --easeOutCubic: cubic-bezier(0.215, 0.61, 0.355, 1);
  --easeInOutCubic: cubic-bezier(0.215, 0.61, 0.355, 1);
  --easeInQuart: cubic-bezier(0.895, 0.03, 0.685, 0.22);
  --easeOutQuart: cubic-bezier(0.165, 0.84, 0.44, 1);
  --easeInOutQuart: cubic-bezier(0.165, 0.84, 0.44, 1);
  --easeInQuint: cubic-bezier(0.755, 0.05, 0.855, 0.06);
  --easeOutQuint: cubic-bezier(0.23, 1, 0.32, 1);
  --easeInOutQuint: cubic-bezier(0.23, 1, 0.32, 1);
  --easeInExpo: cubic-bezier(0.95, 0.05, 0.795, 0.035);
  --easeOutExpo: cubic-bezier(0.19, 1, 0.22, 1);
  --easeInOutExpo: cubic-bezier(0.19, 1, 0.22, 1);
  --easeInCirc: cubic-bezier(0.6, 0.04, 0.98, 0.335);
  --easeOutCirc: cubic-bezier(0.075, 0.82, 0.165, 1);
  --easeInOutCirc: cubic-bezier(0.075, 0.82, 0.165, 1);
  --easeInBack: cubic-bezier(0.6, -0.28, 0.735, 0.045);
  --easeOutBack: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  --easeInOutBack: cubic-bezier(0.68, -0.55, 0.265, 1.55);
  --easeInOutFast: cubic-bezier(1,0,0,1);
  --authenticMotion: cubic-bezier(.4,0,.2,1);
}

@media (min-width: 640px) {
  :root {
    --gutter-x: 4rem;
  }
}
/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Prevent font size inflation */
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
  scroll-behavior: smooth;
}

* {
  margin: 0;
  outline: none;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role=list],
ol[role=list] {
  list-style: none;
}

/* Navigation lists should not be indented by default */
nav ul,
ul[role=navigation] {
  padding-inline-start: 0;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  font-optical-sizing: auto;
}

/* Set shorter line heights on headings and interactive elements */
h1,
h2,
h3,
h4,
button,
input,
label {
  line-height: 1.1;
}

/* Balance text wrapping on headings */
h1,
h2,
h3,
h4 {
  text-wrap: balance;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
  color: currentColor;
}

/* Make images easier to work with */
img,
picture,
video,
canvas,
svg {
  max-width: 100%;
  display: block;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}

/* Make sure textareas without a rows attribute are not tiny */
textarea:not([rows]) {
  min-height: 10em;
}

/* Anything that has been anchored to should have extra scroll margin */
:target {
  scroll-margin-block: 5ex;
}

/* Avoid text overflows */
p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word;
}

html {
  scroll-behavior: smooth;
}

img,
svg,
iframe,
embed {
  vertical-align: bottom;
}

address {
  font-style: normal;
}

a {
  color: inherit;
  text-underline-offset: 2px;
}

a:has(> i.icon),
span:has(> i.icon) {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.site-wrapper {
  overflow: hidden;
  width: 100%;
  position: relative;
  z-index: 1;
}

.flickity-viewport {
  overflow: visible;
}

.logo img {
  width: 100%;
  height: auto;
}

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

i.icon {
  font-style: normal;
}

body {
  background-color: var(--brand--body-bg-color);
  color: var(--brand--body-text-color);
  font-family: var(--brand--body-font);
  font-size: var(--brand--body-font-size);
  line-height: var(--brand--body-line-height);
}

h1, h2, h3, h4, h5, h6 {
  font-weight: bold;
}

h1, h2, h3, h4, h5, h6,
[class*=__heading],
[class*=-heading],
[class*=heading] {
  line-height: 1.1;
}

a:hover {
  text-decoration: none;
}

.entry-content ol, .entry-content ul:not(.list--contact-links):not(.list--social-links):not(.list--reset):not(.woocommerce-error) {
  display: flex;
  gap: 0.5rem;
  flex-direction: column;
  list-style-type: decimal;
  padding-left: 1rem;
  margin-left: 1rem;
}
.entry-content ol ol {
  list-style-type: lower-alpha;
}
.entry-content ul:not(.list--contact-links):not(.list--social-links):not(.list--reset):not(.woocommerce-error) {
  list-style-type: disc;
}
.entry-content li::marker {
  font-weight: 400;
}
.entry-content > *:not(:last-child):not(blockquote),
.entry-content > blockquote > *:not(:last-child) {
  margin-bottom: 1.2rem;
}
.entry-content strong {
  font-weight: bold;
}
.entry-content a:not(.btn):not([href^="tel:"]):not([href^="mailto:"]):not(.btn):not(.button) {
  text-decoration: underline;
}
.entry-content a:not(.btn):not([href^="tel:"]):not([href^="mailto:"]):not(.btn):not(.button):hover {
  text-decoration: none;
}
.entry-content ul.list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.wrapper {
  position: relative;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: calc(var(--gutter-x) * 0.5);
  padding-right: calc(var(--gutter-x) * 0.5);
  max-width: 100%;
}
@media (min-width: 640px) {
  .wrapper {
    max-width: 600px;
  }
}
@media (min-width: 768px) {
  .wrapper {
    max-width: 720px;
  }
}
@media (min-width: 1024px) {
  .wrapper {
    max-width: 960px;
  }
}
@media (min-width: 1280px) {
  .wrapper {
    max-width: 1200px;
  }
}
@media (min-width: 1536px) {
  .wrapper {
    max-width: 1440px;
  }
}
@media (min-width: calc(1600px + 6rem)) {
  .wrapper {
    max-width: 1600px;
  }
}

.wrapper--fluid {
  position: relative;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: calc(var(--gutter-x) * 0.5);
  padding-right: calc(var(--gutter-x) * 0.5);
  max-width: 1600px;
}

.wrapper--full-width {
  max-width: 100%;
}

.section {
  margin-top: 3rem;
  margin-bottom: 3rem;
}
@media (min-width: 768px) {
  .section {
    margin-top: 6rem;
    margin-bottom: 6rem;
  }
}
.section.inset, .section--inner {
  margin: 0;
  padding-top: 3rem;
  padding-bottom: 3rem;
}
@media (min-width: 768px) {
  .section.inset, .section--inner {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
}

._gutter {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
@media (min-width: 640px) {
  ._gutter {
    padding-left: 1.75rem;
    padding-right: 1.75rem;
  }
}
@media (min-width: 768px) {
  ._gutter {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

.gform_wrapper {
  --gform_fields-gap: 1rem;
}

.gform_wrapper form,
.gform_body,
.gform_fields {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.gform_fields {
  flex-direction: row;
  flex-wrap: wrap;
}

.gfield_label {
  font-weight: bold;
  display: block;
  margin-bottom: 1rem;
  line-height: 1.1;
}

.gfield.gfield_error {
  border-left: 2px solid red;
  padding-left: 1rem;
}

.gfield_validation_message {
  color: red;
  margin-top: 0.5rem;
  font-size: 1.1rem;
}

.hidden_label .gfield_label,
.hide_summary,
.gform_hidden,
.gfield--type-honeypot,
.gfield_visibility_hidden {
  display: none;
}

.gform_drop_area {
  text-align: center;
  background-image: repeating-linear-gradient(45deg, #f9f9f9, #f9f9f9 10px, #fff 10px, #fff 20px);
  border: 1px dashed #ccc;
  padding: 1.5rem;
}
.gform_drop_area path {
  fill: #efefef;
}

.gform_fileupload_rules {
  margin-top: 0.5rem;
  display: block;
  font-size: 0.9rem;
}

.gfield_required_asterisk {
  color: red;
  margin-left: 0.5rem;
}

fieldset.gfield {
  margin: 0;
  padding: 0;
  border: none;
}

select,
input[type=text],
input[type=email],
input[type=number],
input[type=tel],
input[type=password],
textarea {
  height: var(--brand--input-height);
  background-color: #fff;
  border: 1px solid black;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding-left: 1rem;
  padding-right: 1rem;
  font-size: 1.1rem;
  font-weight: normal;
  font-family: var(--brand--body-font);
  width: 100%;
}
select::-moz-placeholder, input[type=text]::-moz-placeholder, input[type=email]::-moz-placeholder, input[type=number]::-moz-placeholder, input[type=tel]::-moz-placeholder, input[type=password]::-moz-placeholder, textarea::-moz-placeholder {
  font-weight: normal;
  color: black;
  opacity: 0.5;
  font-size: 1.1rem;
}
select::placeholder,
input[type=text]::placeholder,
input[type=email]::placeholder,
input[type=number]::placeholder,
input[type=tel]::placeholder,
input[type=password]::placeholder,
textarea::placeholder {
  font-weight: normal;
  color: black;
  opacity: 0.5;
  font-size: 1.1rem;
}

textarea {
  height: auto;
  width: 100%;
  padding-top: 1rem;
  padding-bottom: 1rem;
}

select,
.select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='16'%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='none' d='M-2-1h26v16H-2z' data-name='Rectangle 51'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg clip-path='url(%23a)' data-name='Group 35' transform='translate(2 1)'%3E%3Cpath d='M11.2 14a1.4 1.4 0 0 1-1-.5L.2 2.3A1.4 1.4 0 0 1 2.5.5l8.7 10 8.7-10a1.4 1.4 0 1 1 2.2 1.8l-9.8 11.2a1.4 1.4 0 0 1-1.1.5Z' data-name='Path 136'/%3E%3C/g%3E%3C/svg%3E ");
  background-size: 26px 16px;
  background-position: right 0.8rem center;
  background-repeat: no-repeat;
}

.select {
  cursor: pointer;
}
.select:hover {
  opacity: 0.5;
}

button {
  cursor: pointer;
}

.gpfup__droparea > div {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.gpfup__droparea > div:before {
  content: "";
  display: block;
  width: 73px;
  height: auto;
  aspect-ratio: 73/66;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='73.67' height='66.34'%3E%3Cg fill='%239a55bc'%3E%3Cpath data-name='Path 317' d='M64.4 23.16v-.72A23.02 23.02 0 0 0 40.97 0 23.49 23.49 0 0 0 19.44 13.7 21.85 21.85 0 0 0 0 35.27a21.58 21.58 0 0 0 21.65 21.54h8.41v-4.48h-8.41a17.16 17.16 0 0 1-.56-34.24h1.5l.51-1.41A18.91 18.91 0 0 1 41.05 4.56 18.53 18.53 0 0 1 60.02 22.5a17.39 17.39 0 0 1 0 1.8l-.18 1.6 1.46.68a13.46 13.46 0 0 1-5.7 25.74H43.52v4.48H55.6a17.95 17.95 0 0 0 8.82-33.65Z'/%3E%3Cpath data-name='Path 318' d='M46.4 43.01a2.24 2.24 0 0 0 1.6-3.83L36.8 27.96 25.57 39.17a2.24 2.24 0 0 0 3.16 3.17l5.8-5.72V64.1a2.24 2.24 0 1 0 4.5 0V36.62l5.76 5.76a2.24 2.24 0 0 0 1.6.63Z'/%3E%3C/g%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1rem;
}

.gf-options-inline .gfield_radio {
  display: flex;
  gap: 1rem;
}

.gfield,
.gfield--width-full {
  width: 100%;
}

.gfield--width-half {
  width: 100%;
}
@media (min-width: 640px) {
  .gfield--width-half {
    width: calc(50% - var(--gform_fields-gap) / 2);
  }
}

.gfield--width-third {
  width: 100%;
}
@media (min-width: 640px) {
  .gfield--width-third {
    width: calc(33.333% - var(--gform_fields-gap) * 2 / 3);
  }
}

.gform_required_legend {
  display: none;
}

.gfield--type-date .ginput_complex {
  display: flex;
  gap: 0.5rem;
}
.gfield--type-date .ginput_complex > * {
  flex: 1;
}

.gfield--type-date .ginput_complex {
  display: flex;
  gap: 0.5rem;
}
.gfield--type-date .ginput_complex > * {
  flex: 1;
}
.gfield--type-date .ginput_complex > * > input {
  width: 100%;
}

div#ui-datepicker-div {
  background-color: #e6263b;
  background-color: #011527;
  color: white;
  text-align: center;
  border-color: #011527;
  padding: 0.5rem;
  box-shadow: 1px 3px 0.3rem rgba(0, 0, 0, 0.3);
}

table.ui-datepicker-calendar {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

.ui-datepicker-title {
  display: flex;
  width: 100%;
  gap: 0.5rem;
  justify-content: center;
}

.ui-datepicker-header.ui-widget-header.ui-helper-clearfix.ui-corner-all {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
}

select.ui-datepicker-month,
select.ui-datepicker-year {
  font-size: 0.9rem;
  padding: 0.5rem;
  height: auto;
  width: auto;
  background-size: 0.8rem;
  background-position: 95% center;
  padding-right: 1.5rem;
  flex: 1;
  text-align: center;
}

.ginput_container_date {
  position: relative;
}

img.ui-datepicker-trigger {
  position: absolute;
  top: 50%;
  right: 1rem;
  transform: translateY(-50%);
}

a.ui-datepicker-next,
a.ui-datepicker-prev {
  cursor: pointer;
}

.ui-state-disabled {
  opacity: 0.3;
}

.btn {
  height: var(--brand--btn-height);
  border-color: black;
  border: none;
  background-color: black;
  color: white;
  display: inline-flex;
  align-items: center;
  padding-left: 0.9rem;
  padding-right: 0.9rem;
}
@media (min-width: 640px) {
  .btn {
    padding-left: 1.2rem;
    padding-right: 1.2rem;
  }
}
.btn {
  text-decoration: none;
}
.btn span,
.btn i {
  z-index: 1;
  position: relative;
}
.btn .loading-dots {
  visibility: hidden;
}
.btn .loading-dots i {
  display: inline-block;
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 15px;
  height: 15px;
  background-color: var(--brand--primary-color);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: loadingDots 1.2s ease-in;
  animation-iteration-count: 999;
  animation-direction: normal;
  animation-fill-mode: forwards;
  transform: translate(-50%, -50%) scale(0.5);
  opacity: 0.4;
}
.btn .loading-dots i:nth-child(1) {
  left: calc(50% - 1.3em);
}
.btn .loading-dots i:nth-child(2) {
  animation-delay: 80ms;
}
.btn .loading-dots i:nth-child(3) {
  left: calc(50% + 1.3em);
  animation-delay: 160ms;
}
.btn.loading {
  pointer-events: none;
  background-color: white;
}
.btn.loading:before {
  background-color: transparent;
}
.btn.loading span {
  visibility: hidden;
}
.btn.loading .loading-dots {
  visibility: visible;
}
@keyframes loadingDots {
  0% {
    transform: translate(-50%, -50%) scale(0.5);
    opacity: 0.4;
  }
  20% {
    transform: translate(-50%, -50%) scale(1.2);
    opacity: 1;
  }
  60% {
    transform: translate(-50%, -50%) scale(0.5);
    opacity: 0.4;
  }
  100% {
    transform: translate(-50%, -50%) scale(0.5);
    opacity: 0.4;
  }
}

.nav-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
}

.nav-menu--v {
  flex-direction: column;
}

.d--b {
  display: block;
}

.d-flex,
.d--f {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--d--f--gap);
}

.fd-c,
.fd--c {
  flex-direction: column;
  align-items: flex-start;
}

.ai-fs,
.ai--fs {
  align-items: flex-start;
}

.ai-fe,
.ai--fe {
  align-items: flex-end;
}

.ai-c,
.ai--c {
  align-items: center;
}

.jc-fs,
.jc--fs {
  justify-content: flex-start;
}

.jc-c,
.jc--c {
  justify-content: center;
}

.jc-fe,
.jc--fe {
  justify-content: flex-end;
}

.fg {
  position: relative;
  z-index: 9;
}

.hide,
.d-none {
  display: none;
}

.zoom-hover {
  transition: transform var(--zoom-hover-duration, 180ms) var(--zoom-hover-easing, var(--brand--transition-easing)), opacity var(--zoom-hover-duration, 180ms) var(--zoom-hover-easing, var(--brand--transition-easing));
  will-change: transform, opacity;
}
.zoom-hover [class*=-image],
.zoom-hover .image, .zoom-hover.image {
  overflow: hidden;
}
.zoom-hover [class*=-image] img,
.zoom-hover .image img, .zoom-hover.image img {
  transition: transform var(--zoom-hover-duration, 180ms) var(--zoom-hover-easing, var(--brand--transition-easing)), opacity var(--zoom-hover-duration, 180ms) var(--zoom-hover-easing, var(--brand--transition-easing));
  will-change: transform, opacity;
  transform: scale(1);
}
.zoom-hover:hover [class*=-image] img,
.zoom-hover:hover .image img, .zoom-hover:hover.image img, .zoom-hover:focus-within [class*=-image] img,
.zoom-hover:focus-within .image img, .zoom-hover:focus-within.image img {
  transform: scale(var(--zoom-hover-scale, 1.06));
}

@media (prefers-reduced-motion: reduce) {
  .zoom-hover,
  .zoom-hover [class*=-image] img,
  .zoom-hover .image img,
  .zoom-hover.image img {
    transition: none;
  }
  .zoom-hover:hover [class*=-image] img,
  .zoom-hover:hover .image img,
  .zoom-hover:hover.image img,
  .zoom-hover:focus-within [class*=-image] img,
  .zoom-hover:focus-within .image img,
  .zoom-hover:focus-within.image img {
    transform: none;
  }
}
.arrow-link i {
  transition: transform 150ms var(--brand--transition-easing), opacity 150ms var(--brand--transition-easing);
  will-change: transform, opacity;
}
.arrow-link:hover i {
  transform: translateX(1rem);
}

body.resizing .zoom-hover {
  transition: none;
}

body.resizing .zoom-hover [class*=-image] img,
body.resizing .zoom-hover .image img,
body.resizing .zoom-hover.image img {
  transition: none;
}

.l-clamp {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
}

.l-clamp--2 {
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

.l-clamp--3 {
  -webkit-line-clamp: 3;
  line-clamp: 3;
}

.pos-a {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.img--cover,
.img-cover,
.img-fit {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.t-l,
.t--l,
.text-left,
.text--left {
  text-align: left;
}

.t-c,
.t--c,
.text-center,
.text--center {
  text-align: center;
}

.t-r,
.t--r,
.text-right,
.text--right {
  text-align: right;
}

.list--inline {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 1rem;
}
.list--inline li {
  margin: 0;
  padding: 0;
}

.list--reset {
  list-style: none;
  margin: 0;
  padding: 0;
}
.list--reset li {
  margin: 0;
  padding: 0;
}

.list--contact-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.list--contact-links li {
  margin: 0;
  padding: 0;
}
.list--contact-links li a {
  gap: 0.5rem;
  text-decoration: none;
}

.list--social-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: row;
  gap: 0.5rem;
}
.list--social-links li {
  margin: 0;
  padding: 0;
}
.list--social-links li a {
  gap: 0.5rem;
}
.list--social-links li a[href=""] {
  display: none;
}

.image-transition {
  clip-path: inset(100% 0 0 0);
  transition: clip-path 0.5s ease, opacity 0.5s ease;
  transition-delay: 0.1s;
  opacity: 1;
}
.image-transition:after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--brand--red);
  transition: transform 0.5s ease;
  transition-delay: 1s;
  transform: scaleY(1);
  transform-origin: 50% 0;
  opacity: 1;
}
.image-transition.animate-in {
  clip-path: inset(0 0 0 0);
  opacity: 1;
}
.image-transition.animate-in:after {
  transform: scaleY(0);
}

.fw {
  position: relative;
  transform: translateX(-50%);
  left: 50%;
  width: 100vw;
}

/* Reveal element (single)
   Used by assets/js/core/reveal-element.js */
.reveal,
.js-reveal,
[data-reveal] {
  --reveal-delay: 0ms;
  --reveal-duration: 2500ms;
  --reveal-scale: 1.03;
  --reveal-y: 10px;
  opacity: 0;
  transform: translate3d(0, var(--reveal-y), 0) scale(var(--reveal-scale));
  transition-property: opacity, transform;
  transition-duration: var(--reveal-duration);
  transition-timing-function: cubic-bezier(0.2, 0.7, 0.2, 1);
  transition-delay: var(--reveal-delay);
  will-change: opacity, transform;
}

.reveal.is-revealed,
.js-reveal.is-revealed,
[data-reveal].is-revealed {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

@media (prefers-reduced-motion: reduce) {
  .reveal,
  .js-reveal,
  [data-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
/* Reveal stagger (children)
   Used by assets/js/core/reveal-stagger.js */
.reveal-stagger,
.js-reveal-stagger,
[data-reveal-stagger] {
  --reveal-stagger: 90ms;
  --reveal-duration: 2500ms;
  --reveal-scale: 1.03;
  --reveal-y: 10px;
}

.reveal-stagger__item {
  display: block;
  opacity: 0;
  transform: translate3d(0, var(--reveal-y), 0) scale(var(--reveal-scale));
  transition-property: opacity, transform;
  transition-duration: var(--reveal-duration);
  transition-timing-function: cubic-bezier(0.2, 0.7, 0.2, 1);
  transition-delay: calc(var(--reveal-i, 0) * var(--reveal-stagger));
  will-change: opacity, transform;
}

[data-reveal-item] {
  opacity: 0;
  transform: translate3d(0, var(--reveal-y), 0) scale(var(--reveal-scale));
  transition-property: opacity, transform;
  transition-duration: var(--reveal-duration);
  transition-timing-function: cubic-bezier(0.2, 0.7, 0.2, 1);
  transition-delay: calc(var(--reveal-i, 0) * var(--reveal-stagger));
  will-change: opacity, transform;
}

.reveal-stagger.is-revealed .reveal-stagger__item,
.reveal-stagger.is-revealed [data-reveal-item],
.js-reveal-stagger.is-revealed .reveal-stagger__item,
.js-reveal-stagger.is-revealed [data-reveal-item],
[data-reveal-stagger].is-revealed .reveal-stagger__item,
[data-reveal-stagger].is-revealed [data-reveal-item] {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

@media (prefers-reduced-motion: reduce) {
  .reveal-stagger__item,
  [data-reveal-item] {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
/* Reveal text (word-by-word)
   Used by assets/js/core/reveal-text.js */
.reveal-text {
  --reveal-delay: 0ms;
  --reveal-stagger: 60ms;
  --reveal-duration: 1520ms;
  --reveal-scale: 1.04;
  --reveal-y: 8px;
}

.reveal-text__word {
  display: inline-block;
  opacity: 0;
  transform: translate3d(0, var(--reveal-y), 0) scale(var(--reveal-scale));
  filter: blur(0px);
  transition-property: opacity, transform;
  transition-duration: var(--reveal-duration);
  transition-timing-function: cubic-bezier(0.2, 0.7, 0.2, 1);
  transition-delay: calc(var(--reveal-delay) + var(--reveal-i, 0) * var(--reveal-stagger));
  will-change: opacity, transform;
}

.reveal-text.is-revealed .reveal-text__word {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

@media (prefers-reduced-motion: reduce) {
  .reveal-text__word {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
:root {
  --brand--body-line-height: 1.6;
  --brand--body-line-height: 1.7;
  --brand--body-font-size: 1.2rem;
  --brand--heading-font: 'industry-inc-base', sans-serif;
  --brand--body-font: 'area-normal', sans-serif;
  --brand--sub-brand-font: 'HudsonNY', sans-serif;
  --brand--green: #009966;
  --brand--red-orange: #C5653D;
  --brand--light-green: #99CC61;
  /* sub-brand colors */
  --brand--black: #181818;
  --brand--white: #FFFFFF;
  --brand--bar-grill: #c5653d;
  --brand--driving-range: #99ff66;
  --brand--golf-academy: #e26699;
  --brand--golf-course: #009966;
  --brand--junior-academy: #663399;
  --brand--pro-shop: #4d8c9c;
  --brand--whats-on: #61CCB7;
  --brand--pirate-bay: #C70D0D;
  /* end sub-brand colors */
  --hero--overlay-inset: 10px;
  --hero--border-width: 30px;
  --hero--border-width: 25px;
  --hero--overlay-max-width: 1600px;
  --site-header--height: 60px;
  --site-header--height: 75px;
}
@media (min-width: 992px) {
  :root {
    --hero--overlay-inset: 20px;
    --site-header--height: 130px;
  }
}
:root {
  --site-header--logo-width: 106px;
  --site-header--spacer: 4.5rem;
  --site-header--gap: 1.5rem;
  --brand--transition-easing: cubic-bezier(0.25, 1.25, 0.5, 1);
  --zoom-hover-duration: 750ms;
  --zoom-hover-easing: var(--brand--transition-easing);
  --zoom-hover-scale: 1.1;
}

.site-wrapper {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}

.site-main {
  flex: 1 0 auto;
}

.--site-header .wrapper--nineteen {
  max-width: calc(1640px + var(--hero--overlay-inset) * 2);
  padding-left: calc(var(--hero--overlay-inset) + var(--hero--border-width) + 29px);
  padding-right: calc(var(--hero--overlay-inset) + var(--hero--border-width) + 29px);
  padding-left: calc(25px + 1rem);
  padding-right: calc(25px + 1rem);
}
@media (min-width: 992px) {
  .--site-header .wrapper--nineteen {
    max-width: calc(1640px + var(--hero--overlay-inset) * 2);
    padding-left: calc(var(--hero--overlay-inset) + var(--hero--border-width) + 29px);
    padding-right: calc(var(--hero--overlay-inset) + var(--hero--border-width) + 29px);
  }
}

.btn {
  padding: 1rem 2rem;
  padding: 1rem 1.6rem;
  font-weight: 1000;
  color: white;
  font-size: 0.9rem;
}
.btn:hover {
  filter: saturate(150%);
}
.btn .icon--arrow-down {
  transition: transform 0.2s ease;
}
.btn:hover .icon--arrow-down, .btn:focus-visible .icon--arrow-down {
  transform: translateY(3px);
}
.btn--book, .btn--green {
  background-color: var(--brand--green);
}
.btn--light-green {
  background-color: var(--brand--light-green);
  color: black;
}
.btn--book-table, .btn--red-orange {
  background-color: var(--brand--red-orange);
}
.btn--solid {
  background-color: white;
  border-color: white;
  border-width: 1px;
  border-style: solid;
}
.btn--solid.btn--diamond-cta {
  color: var(--brand--red-orange);
}
.btn--solid.btn--diamond-cta .icon svg path {
  fill: var(--brand--red-orange);
}
.btn--solid.btn--diamond-cta:hover {
  filter: none;
}
.btn--outline {
  border-color: white;
  background-color: transparent;
  color: white;
  border-width: 1px;
  border-style: solid;
}
.btn--outline:hover {
  background-color: white;
  color: var(--brand--red-orange);
  filter: none;
}

@font-face {
  font-family: "HudsonNY";
  src: url("../fonts/HudsonNY.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
h1, h2, h3, h4, h5, h6 {
  font-weight: 400;
}

.heading {
  font-family: var(--brand--heading-font);
  font-weight: 400;
  font-size: clamp(2.5rem, 4.65cqw, 4rem);
}

.heading--xl {
  font-size: 7.5rem;
}

.heading--small {
  font-family: var(--brand--heading-font);
  font-size: 1.6rem;
  line-height: 1;
}

.heading--hero-group {
  font-size: 2.5rem;
  line-height: 1;
  font-family: var(--brand--heading-font);
  text-transform: uppercase;
  font-weight: 400;
}

.heading--hero-heading {
  font-size: 3.9rem;
  line-height: 1;
  font-family: var(--brand--heading-font);
  text-transform: uppercase;
  font-weight: 400;
}
@media (min-width: 992px) {
  .heading--hero-heading {
    font-size: 5.5rem;
  }
}

.heading__word {
  line-height: 0.8;
}

.heading__variation {
  font-style: italic;
  font-weight: 700;
}

.heading__variation--in-n-out {
  font-style: normal;
  font-weight: 1000;
  font-family: "industry-inc-in-n-out", sans-serif;
}

.heading__variation--inline {
  font-style: normal;
  font-weight: 1000;
  font-family: "industry-inc-inline", sans-serif;
}

.heading__variation--stencil {
  font-style: normal;
  font-weight: 1000;
  font-family: "industry-inc-stencil", sans-serif;
}

.heading__variation--cutline {
  font-style: normal;
  font-weight: 1000;
  font-family: "industry-inc-cutline", sans-serif;
}

.heading {
  letter-spacing: -0.05em;
  line-height: 0.6;
}

.heading--banner-cta {
  font-size: clamp(2.5rem, 4.65cqw, 4.4rem);
}

.entry-content {
  line-height: var(--brand--body-line-height);
}
.entry-content h3 {
  font-family: var(--brand--heading-font);
  font-size: 2rem;
}

.site-header {
  height: var(--site-header--height);
  background-color: #1E1E1E;
  color: white;
  position: relative;
  z-index: 10;
}
.site-header .wrapper {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.site-header__left, .site-header__right {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}
.site-header__left {
  gap: 1rem;
}
.site-header__right {
  gap: 0.5rem;
}
@media (min-width: 992px) {
  .site-header__right {
    gap: 1.5rem;
  }
}
.site-header .logo {
  width: auto;
  height: 60px;
  aspect-ratio: 106/74;
}
@media (min-width: 992px) {
  .site-header .logo {
    width: var(--site-header--logo-width);
    height: auto;
  }
}
.site-header .nineteen-nav ul,
.site-header .pages-nav ul {
  display: flex;
  align-items: center;
  gap: 1rem;
  display: none;
}
@media (min-width: 992px) {
  .site-header .nineteen-nav ul,
  .site-header .pages-nav ul {
    display: flex;
  }
}
.site-header .nineteen-nav {
  font-size: 1.3rem;
}
.site-header .pages-nav {
  position: relative;
  gap: 1.3rem;
  font-size: 0.9rem;
}
.site-header .pages-nav a {
  color: inherit;
  text-decoration: none;
}
.site-header .pages-nav a:hover {
  text-decoration: underline;
}
.site-header .pages-nav--dropdown {
  display: none;
}
@media (min-width: 992px) and (max-width: 1199px) {
  .site-header .pages-nav--dropdown {
    display: block;
  }
}
.site-header .pages-nav--desktop {
  display: none;
}
@media (min-width: 1200px) {
  .site-header .pages-nav--desktop {
    display: block;
  }
}
.site-header .pages-nav__dropdown ul {
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}
.site-header .pages-nav__dropdown summary {
  list-style: none;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
}
.site-header .pages-nav__dropdown summary::-webkit-details-marker {
  display: none;
}
.site-header .pages-nav__dropdown[open] summary .icon--plus {
  transform: rotate(45deg);
}
.site-header .pages-nav__dropdown:not([open]) summary:hover .icon--plus {
  transform: rotate(0deg);
}
.site-header .pages-nav__dropdown .icon {
  transition: transform 0.2s ease;
}
.site-header .pages-nav__dropdown .icon--plus {
  display: inline-block;
  font-size: 1.35rem;
  line-height: 1;
}
.site-header .pages-nav__dropdown ul {
  position: absolute;
  top: calc(100% + (var(--site-header--height) - 100%) / 2);
  top: calc(100% + 1rem);
  left: 50%;
  transform: translateX(-50%);
  background-color: #ffffff;
  background-color: transparent;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border: none;
  box-shadow: 0 1.5rem 3rem rgba(0, 0, 0, 0.24);
  box-shadow: none;
  overflow: hidden;
  white-space: nowrap;
  padding: 1rem;
  padding: 0;
  display: flex;
  gap: 0.5rem;
  flex-direction: column;
  text-align: center;
}
.site-header .pages-nav__dropdown a {
  display: block;
  padding: 0.75rem 1.25rem;
  padding: 0;
  color: black;
  color: white;
}
.site-header .pages-nav__dropdown a:hover,
.site-header .pages-nav__dropdown a:focus-visible {
  background-color: rgba(255, 255, 255, 0.08);
  background-color: transparent;
}
.site-header .nineteen-nav button {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  background: none;
  border: 0;
  padding: 0;
  color: inherit;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  text-transform: uppercase;
  font-family: var(--brand--heading-font);
  font-family: var(--brand--heading-font);
}
.site-header .nineteen-nav .icon {
  transition: transform 0.2s ease;
}
.site-header .nineteen-nav button[aria-expanded=true] .icon {
  transform: rotate(180deg);
}
.site-header .nineteen-nav button:not([aria-expanded=true]):hover .icon {
  transform: translateY(3px);
}
.site-header .cta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  display: none;
}
@media (min-width: 640px) {
  .site-header .cta {
    display: flex;
  }
}
.site-header .hamburger {
  display: none;
  width: 3rem;
  text-align: center;
}
.site-header .hamburger button {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.site-header .hamburger .icon--hamburger {
  display: block;
  line-height: 0;
}
.site-header .hamburger .icon--hamburger svg {
  display: block;
  width: 18px;
  height: 12px;
}
.site-header .hamburger .icon--hamburger rect {
  fill: #fff;
}
.site-header .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 120;
  pointer-events: none;
}
.mobile-menu__backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(0, 0, 0, 0.35);
  opacity: 0;
  transition: opacity 0.25s ease;
  cursor: pointer;
}
.mobile-menu__panel {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  width: min(100%, 26rem);
  display: flex;
  flex-direction: column;
  background: #1e1e1e;
  color: #fff;
  transform: translateX(100%);
  transition: transform 0.25s ease;
  overflow: hidden;
  box-shadow: -1.5rem 0 3rem rgba(0, 0, 0, 0.3);
}
.mobile-menu__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.25rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}
.mobile-menu__logo {
  display: inline-flex;
  align-items: center;
  width: 6.25rem;
  color: inherit;
  text-decoration: none;
}
.mobile-menu__close {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: 0;
  color: #fff;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
}
.mobile-menu__content {
  flex: 1 1 auto;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding: 1rem 1.25rem 1.5rem;
}
.mobile-menu__nav + .mobile-menu__nav {
  margin-top: 1.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
}
.mobile-menu__list {
  display: grid;
  gap: 0.4rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.mobile-menu__list a, .mobile-menu__submenu-label {
  color: inherit;
  text-decoration: none;
  font-size: 1rem;
  line-height: 1.35;
}
.mobile-menu__submenu-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.45rem 0;
}
.mobile-menu__submenu-head > a {
  flex: 1;
}
.mobile-menu__submenu-toggle {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: 0;
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
}
.mobile-menu__submenu-icon {
  font-size: 1.4rem;
  line-height: 1;
  transition: transform 0.2s ease;
}
.mobile-menu__submenu-toggle[aria-expanded=true] .mobile-menu__submenu-icon {
  transform: rotate(45deg);
}
.mobile-menu__submenu {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height 0.25s ease, opacity 0.2s ease;
  list-style: none;
  margin: 0;
  padding: 0;
  border-left: 0;
}
.mobile-menu__submenu[data-open=true] {
  opacity: 1;
}
.mobile-menu__submenu li {
  padding: 0.35rem 0;
}
.mobile-menu__footer {
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  padding: 1.25rem;
  display: grid;
  gap: 0.5rem;
  flex: 0 0 auto;
}
.mobile-menu__contact-link {
  color: inherit;
  text-decoration: none;
  font-size: 0.95rem;
}
.mobile-menu__contact-link:hover, .mobile-menu__contact-link:focus-visible {
  text-decoration: underline;
}
.mobile-menu__contact-address {
  font-size: 0.95rem;
  opacity: 0.85;
}
.mobile-menu.is-open {
  pointer-events: auto;
}
.mobile-menu.is-open .mobile-menu__backdrop {
  opacity: 1;
}
.mobile-menu.is-open .mobile-menu__panel {
  transform: translateX(0);
}
@media (min-width: 992px) {
  .mobile-menu {
    display: none;
  }
}

html.mobile-menu-open,
body.mobile-menu-open {
  overflow: hidden;
}

@media (max-width: 991px) {
  .site-header .hamburger {
    display: block;
  }
}
.site-header .wrapper--nineteen {
  padding-left: 20px;
  padding-right: 20px;
  max-width: 1600px;
  padding-left: 0;
  padding-right: 0;
  max-width: calc(100vw - 56px);
}
@media (min-width: 1591px) {
  .site-header .wrapper--nineteen {
    padding-left: 0;
    padding-right: 0;
    max-width: 1532px;
  }
}

.has-home-hero .site-header {
  background-color: transparent;
  z-index: 20;
  margin-top: calc(var(--hero--overlay-inset) + var(--hero--border-width)); /* 20px is the inset of the hero overlay, 30px is the gap between the hero overlay and the site header */
}
.has-home-hero .site-header .wrapper--nineteen {
  max-width: calc(1640px + var(--hero--overlay-inset) * 2);
  padding-left: calc(25px + 1rem);
  padding-right: calc(25px + 1rem);
}
@media (min-width: 992px) {
  .has-home-hero .site-header .wrapper--nineteen {
    max-width: calc(1640px + var(--hero--overlay-inset) * 2);
    padding-left: calc(var(--hero--overlay-inset) + var(--hero--border-width) + 29px);
    padding-right: calc(var(--hero--overlay-inset) + var(--hero--border-width) + 29px);
  }
}
.has-home-hero .site-header .hamburger {
  width: auto;
}
.has-home-hero .site-header__right {
  gap: 1rem;
}
@media (min-width: 992px) {
  .has-home-hero .site-header__right {
    gap: 1.5rem;
  }
}

.mobile-book-cta {
  background-color: black;
  padding-top: 1rem;
  padding-bottom: 1rem;
  display: none;
}
.mobile-book-cta .wrapper {
  display: flex;
  gap: 1rem;
}
.mobile-book-cta .wrapper > * {
  flex: 1 1 0;
  min-width: 0;
  justify-content: center;
}

.mega-menu {
  position: absolute;
  left: 0;
  right: 0;
  top: var(--site-header--height);
  z-index: 15;
  pointer-events: none;
}
.mega-menu__panel {
  padding: 1rem 1.25em;
  background-color: white;
  pointer-events: auto;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}
.mega-menu__panel.wrapper {
  max-width: calc(100vw - 160px);
  max-width: calc(100vw - 56px);
}
@media (min-width: 1591px) {
  .mega-menu__panel.wrapper {
    max-width: 1532px;
  }
}
@media (min-width: 1696px) {
  .mega-menu__panel.wrapper {
    max-width: 1532px;
  }
}
.mega-menu__columns {
  justify-content: flex-start;
  gap: 2rem;
  display: flex;
  gap: 2rem;
}
.mega-menu__column {
  flex: 1 1 0;
  min-width: 0;
  align-self: stretch;
  display: flex;
  flex-direction: column;
}
.mega-menu__column ul {
  margin-bottom: auto;
}
.mega-menu__column li {
  font-size: 0.9rem;
  border-top: 1px solid rgba(0, 0, 0, 0.2);
}
.mega-menu__column li:last-child {
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
.mega-menu__column li a {
  text-decoration: none;
  display: flex;
  width: 100%;
  justify-content: flex-start;
  align-items: center;
  gap: 0.2rem;
  padding-block: 0.75rem;
}
.mega-menu__column li a::after {
  content: "";
  width: 16px;
  height: auto;
  aspect-ratio: 21/15;
  transform: translateX(0);
  transition: transform 95ms ease;
  background-image: url("data:image/svg+xml,%3Csvg width='21' height='15' viewBox='0 0 21 15' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20.7071 8.07112C21.0976 7.6806 21.0976 7.04743 20.7071 6.65691L14.3431 0.292947C13.9526 -0.0975773 13.3195 -0.0975774 12.9289 0.292947C12.5384 0.683471 12.5384 1.31664 12.9289 1.70716L18.5858 7.36402L12.9289 13.0209C12.5384 13.4114 12.5384 14.0446 12.9289 14.4351C13.3195 14.8256 13.9526 14.8256 14.3431 14.4351L20.7071 8.07112ZM0 7.36401L-8.74228e-08 8.36401L20 8.36402L20 7.36402L20 6.36402L8.74228e-08 6.36401L0 7.36401Z' fill='black' fill-opacity='0.33'/%3E%3C/svg%3E%0A");
  background-size: contain;
  margin-left: auto;
  background-repeat: no-repeat;
}
.mega-menu__column li a:hover::after, .mega-menu__column li a:focus-visible::after {
  transform: translateX(4px);
}
.mega-menu__column li:not(.col-heading) a:hover, .mega-menu__column li:not(.col-heading) a:focus-visible {
  font-weight: 700;
}
.mega-menu__column .col-heading {
  text-transform: uppercase;
  font-family: var(--brand--heading-font);
  font-size: 1.5rem;
  line-height: 1;
  font-weight: 400;
  font-family: var(--brand--sub-brand-font);
  font-size: 1.8rem;
  line-height: 0.8;
}
.mega-menu__column .col-heading svg {
  aspect-ratio: 451/1290;
  width: auto;
  height: 45px;
}
.mega-menu__column .col-heading span {
  transform: translateY(0.1rem);
  max-width: 7.5rem;
}
.mega-menu__column .cta {
  margin-top: 1rem;
}
.mega-menu__column .cta .btn {
  width: 100%;
  justify-content: center;
  font-size: 0.9rem;
}
.mega-menu__heading {
  text-transform: uppercase;
  font-family: var(--brand--heading-font);
  font-size: 2.5rem;
  margin-bottom: 1rem;
}

.has-home-hero .mega-menu {
  top: calc(var(--site-header--height) + var(--hero--border-width) + var(--hero--overlay-inset));
}
.has-home-hero .mega-menu__panel.wrapper {
  max-width: calc(100vw - 160px);
}
@media (min-width: 1696px) {
  .has-home-hero .mega-menu__panel.wrapper {
    max-width: 1530px;
  }
}

.site-footer {
  padding-top: 3rem;
  padding-bottom: 2rem;
  background-color: black;
  color: white;
}
.site-footer nav {
  font-size: 1rem;
  font-weight: 800;
}
.site-footer nav li {
  margin-bottom: 0.5rem;
}
.site-footer nav a {
  text-decoration: none;
}
.site-footer nav a:hover, .site-footer nav a:focus-visible {
  text-decoration: underline;
}

.site-footer__upper {
  display: grid;
  gap: 2.5rem;
}
@media (min-width: 1024px) {
  .site-footer__upper {
    grid-template-columns: 1fr 2fr 1.5fr 1fr;
    align-items: start;
  }
}

.site-footer__heading {
  margin-bottom: 2rem;
}

@media (min-width: 768px) {
  .site-footer__nav--explore {
    -moz-columns: 2;
         columns: 2;
    -moz-column-gap: 2rem;
         column-gap: 2rem;
    display: block;
  }
}
.site-footer__nav--explore li {
  -moz-column-break-inside: avoid;
       break-inside: avoid;
}

.site-footer__social {
  margin-top: 1.5rem;
}
.site-footer__social ul {
  display: flex;
  gap: 1rem;
}

.site-footer__cta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
}
@media (min-width: 1024px) {
  .site-footer__cta {
    justify-content: end;
  }
}
.site-footer__cta a {
  flex: 0 0 auto;
  width: auto;
}
@media (min-width: 1024px) {
  .site-footer__cta {
    align-items: flex-end;
  }
}

.site-footer__lower {
  margin-top: 2.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid currentColor;
}

.site-footer__lower-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: space-between;
  align-items: center;
}

.site-footer__copyright {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  font-size: 1rem;
}

.site-footer__nav--legal {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

@media (min-width: 1024px) {
  .site-footer__credit {
    text-align: right;
  }
}

@media (min-width: 992px) {
  .site-footer .wrapper--nineteen {
    max-width: calc(1640px + var(--hero--overlay-inset) * 2);
    padding-left: calc(var(--hero--overlay-inset) + var(--hero--border-width) + 29px);
    padding-right: calc(var(--hero--overlay-inset) + var(--hero--border-width) + 29px);
  }
}

.hero {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1920/1000;
  min-height: 420px;
  background-color: #0f1114;
  height: 100vh;
  height: calc(100vh - var(--site-header--height));
  aspect-ratio: auto;
  min-height: 660px;
}
.hero__media {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.24) 28%, rgba(0, 0, 0, 0) 62%);
}
.hero__image, .hero__video, .hero__slide {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.hero__slides {
  position: relative;
  width: 100%;
  height: 100%;
}
.hero__slide {
  position: absolute;
  inset: 0;
}
.hero__slide:not(:first-child) {
  opacity: 0;
  pointer-events: none;
}
.hero__overlay {
  position: absolute;
  inset: clamp(16px, 2.5vw, 44px);
  border: 15px solid #ffffff;
  background: transparent;
  z-index: 2;
  border-color: var(--hero-accent, var(--brand--light-green));
  margin-left: auto;
  margin-right: auto;
  max-width: calc(1629.5px + var(--hero--border-width) * 2 - var(--hero--overlay-inset) * 2);
  inset: 10px;
  inset: 16px;
}
@media (min-width: 992px) {
  .hero__overlay {
    border: 25px solid #ffffff;
    border-color: var(--hero-accent, var(--brand--light-green));
    inset: 20px;
  }
}
.hero__text {
  position: absolute;
  top: 0;
  left: 0;
  width: min(650px, 100% - 36px);
  min-height: min(630px, 100% - 36px);
  padding: clamp(20px, 2vw, 34px);
  padding: 0;
  background: #ffffff;
  color: white;
  display: inline-flex;
  flex-direction: column;
  justify-content: flex-start;
  justify-content: space-between;
  background-color: var(--hero-accent, var(--brand--light-green));
  padding-bottom: 1rem;
}
.hero__text .group {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5rem;
}
.hero__text .group .shim {
  width: 1.6rem;
  transform: translateY(-2px);
}
.hero__text .group .shim img {
  display: block;
  width: 100%;
  height: auto;
}
.hero__text .group .text {
  width: 16rem;
}
.hero__text .sub-brand {
  display: flex;
  width: 100%;
  justify-content: flex-start;
  align-items: center;
  gap: 0.2rem;
  font-family: var(--brand--sub-brand-font);
  align-items: stretch;
  font-size: 2.8rem;
}
.hero__text .sub-brand svg {
  aspect-ratio: 451/1290;
  width: auto;
  height: 1em;
  display: block;
  height: 1.55em;
  width: auto;
  display: block;
}
.hero__text .sub-brand span {
  transform: translateY(0rem);
  max-width: 7.5rem;
  line-height: 0.8;
}
.hero__heading {
  margin: 0;
  margin-top: auto;
}
.hero__group {
  margin: 0 0 0.75rem;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.hero--home .hero__overlay {
  inset: clamp(10px, 1.6vw, 30px);
  inset: 10px;
  inset: 16px;
}
@media (min-width: 992px) {
  .hero--home .hero__overlay {
    inset: 20px;
  }
}
.hero--home .hero__text {
  top: auto;
  bottom: 0;
  left: 0;
  width: min(700px, 100% - 28px);
  width: min(570px, 100% - 28px);
  height: auto;
  min-height: 0;
  aspect-ratio: unset;
  padding-top: 1rem;
  padding-top: 2rem;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-bottom: 0;
}

.has-home-hero .site-main > .hero--home:first-child {
  margin-top: -200px; /* 20px is the inset of the hero overlay, 30px is the gap between the hero overlay and the site header */
  margin-top: calc(var(--site-header--height) * -1 - var(--hero--overlay-inset) - var(--hero--border-width));
}
.has-home-hero .hero {
  height: 100vh;
}
.has-home-hero .hero__text {
  background-color: transparent;
  padding-bottom: 0.7rem;
}

.basic-text {
  --basic-text-bg: #1E1E1E;
  --basic-text-fg: #ffffff;
  --basic-text-stripe: rgba(0, 0, 0, 0.7);
  background-color: var(--basic-text-bg);
  background-image: repeating-linear-gradient(-45deg, transparent, transparent 7px, var(--basic-text-stripe) 7px, var(--basic-text-stripe) 9px);
  color: var(--basic-text-fg);
}
.basic-text.basic-text--light {
  --basic-text-bg: #f4f2ed;
  --basic-text-fg: #1f1f1f;
  --basic-text-stripe: rgba(30, 30, 30, 0.08);
}
.basic-text.basic-text--dark {
  --basic-text-bg: #1E1E1E;
  --basic-text-fg: #ffffff;
  --basic-text-stripe: rgba(0, 0, 0, 0.7);
}
.basic-text .text {
  max-width: 1360px;
  max-width: 64rem;
  margin: 0 auto;
  font-weight: 600;
}
.basic-text .cta {
  margin-top: 2rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
}
.basic-text .items {
  display: block;
  margin-top: 4.5rem;
}
@media (min-width: 1280px) {
  .basic-text .items {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.25rem;
  }
}
.basic-text .items.flickity-enabled {
  display: block;
  gap: 0;
}
.basic-text .item {
  --basic-text-item-accent: var(--brand--light-green);
  --basic-text-item-text: #ffffff;
  aspect-ratio: 345/440;
  background-color: #333;
  position: relative;
  width: min(78vw, 360px);
  width: 268px;
  margin-right: 1rem;
}
@media (min-width: 1280px) {
  .basic-text .item {
    width: auto;
    margin-right: 0;
  }
}
.basic-text .item .inset {
  position: absolute;
  inset: 1rem;
  border: 10px solid var(--basic-text-item-accent);
  background: transparent;
  z-index: 2;
}
.basic-text .item .inset > .text {
  background-color: var(--basic-text-item-accent);
  color: var(--basic-text-item-text);
  position: absolute;
  left: 0;
  bottom: 0;
  padding: 1rem;
  padding-left: 0.5rem;
  width: calc(100% - 3rem);
  font-size: 2rem;
  min-height: 10rem;
  min-height: 8rem;
}
@media (min-width: 1536px) {
  .basic-text .item .inset > .text {
    width: calc(100% - 4rem);
    min-height: 9rem;
  }
}
.basic-text .item .inset > .text .heading {
  font-size: 1.6rem;
  line-height: 0.9;
}
@media (min-width: 1536px) {
  .basic-text .item .inset > .text .heading {
    font-size: 2rem;
  }
}
.basic-text .flickity-viewport {
  overflow: hidden;
  overflow: visible;
}
@media (min-width: 1280px) {
  .basic-text .flickity-viewport {
    overflow: visible;
  }
}
.basic-text .flickity-page-dots {
  bottom: -2rem;
}
@media (min-width: 1280px) {
  .basic-text .flickity-page-dots {
    bottom: 0;
  }
}

.link-carousel {
  overflow: visible;
}
.link-carousel.link-carousel--light {
  background-color: #f4f2ed;
  background-color: white;
  background-image: url("../img/bg--contours.png");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  color: #1f1f1f;
  background-attachment: fixed;
}
.link-carousel.link-carousel--dark {
  background-color: #1E1E1E;
  background-image: repeating-linear-gradient(-45deg, transparent, transparent 7px, rgba(0, 0, 0, 0.7) 7px, rgba(0, 0, 0, 0.7) 9px);
  color: #ffffff;
}
.link-carousel .link-carousel__top {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.link-carousel .link-carousel__heading .heading {
  margin: 0;
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 1.05;
}
.link-carousel .link-carousel__nav {
  display: flex;
  align-items: center;
  gap: 0;
}
.link-carousel .link-carousel__nav-btn {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid currentColor;
  background: transparent;
  color: inherit;
  width: 3rem;
  height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
  border: none;
  width: auto;
  height: auto;
}
.link-carousel .link-carousel__nav-btn svg {
  transition: transform 0.2s ease;
}
.link-carousel.link-carousel--dark .link-carousel__nav-btn svg path {
  fill: #fff;
}
.link-carousel .js-link-carousel-prev:hover svg,
.link-carousel .js-link-carousel-prev:focus-visible svg {
  transform: translateX(-4px);
}
.link-carousel .js-link-carousel-next:hover svg,
.link-carousel .js-link-carousel-next:focus-visible svg {
  transform: translateX(4px);
}
.link-carousel .js-link-carousel-prev:disabled svg,
.link-carousel .js-link-carousel-next:disabled svg {
  transform: none;
}
.link-carousel .link-carousel__nav-btn:disabled {
  opacity: 0.35;
  cursor: default;
}
@media (prefers-reduced-motion: reduce) {
  .link-carousel .link-carousel__nav-btn svg {
    transition: none;
  }
  .link-carousel .js-link-carousel-prev:hover svg,
  .link-carousel .js-link-carousel-prev:focus-visible svg,
  .link-carousel .js-link-carousel-next:hover svg,
  .link-carousel .js-link-carousel-next:focus-visible svg {
    transform: none;
  }
}
.link-carousel .link-carousel__items-layer {
  overflow: visible;
  margin-top: 2.25rem;
  margin-top: 1.5rem;
}
.link-carousel .items {
  display: block;
  overflow: visible;
}
.link-carousel .item {
  aspect-ratio: 345/440;
  background-color: #333;
  position: relative;
  --link-carousel-item-accent: var(--brand--golf-course);
  width: min(76vw, 300px);
  margin-right: 1rem;
}
@media (min-width: 1280px) {
  .link-carousel .item {
    width: 315px;
    margin-right: 1.25rem;
  }
}
@media (min-width: 1280px) {
  .link-carousel.link-carousel--few-items .link-carousel__nav {
    display: none;
  }
  .link-carousel.link-carousel--few-items .items {
    display: flex;
    gap: 1.25rem;
  }
  .link-carousel.link-carousel--few-items .item {
    width: calc((100% - 3.75rem) / 4);
    margin-right: 0;
  }
}
.link-carousel .item__link {
  display: block;
  height: 100%;
  color: inherit;
  text-decoration: none;
}
.link-carousel .item .image,
.link-carousel .item .image img {
  width: 100%;
  height: 100%;
}
.link-carousel .item .image img {
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
}
.link-carousel .item .inset {
  position: absolute;
  inset: 1rem;
  border: 10px solid var(--link-carousel-item-accent);
  z-index: 2;
}
.link-carousel .item .inset > .text {
  background-color: var(--link-carousel-item-accent);
  color: #fff;
  position: absolute;
  left: 0;
  bottom: 0;
  padding: 1rem 1rem 1rem 0.5rem;
  width: calc(100% - 4rem);
  min-height: 8rem;
  display: flex;
  align-items: center;
}
.link-carousel .item .heading {
  font-size: clamp(1.5rem, 2.7vw, 2rem);
  line-height: 1.1;
}
.link-carousel .item .inset > .text {
  min-height: 11rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0;
  padding-top: 2rem;
  padding-right: 3rem;
  padding-bottom: 0.5rem;
}
.link-carousel .item .inset > .text .heading {
  font-size: 2.4rem;
  font-size: 2.2rem;
  line-height: 0.9;
}
.link-carousel .item .inset > .text .subheading {
  font-size: 1.1rem;
  line-height: 0.9;
  margin-top: 0.5rem;
}
.link-carousel .item .inset > .text .cta {
  margin-top: auto;
  font-size: 0.9rem;
  font-weight: 1000;
}
.link-carousel .item .inset > .text .cta > * {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.link-carousel .item .inset > .text .cta > * span {
  transform: translateY(-2px);
}
.link-carousel .item .inset > .text .cta i {
  transition: transform 0.2s ease;
}
.link-carousel .item__link:hover .cta i {
  transform: translateX(3px);
}
.link-carousel .item.item--sub-brand .text {
  padding: 0;
  min-height: 0;
  padding-top: 1.5rem;
  color: unset;
  width: auto;
  width: 65%;
  padding-right: 0.5rem;
}
.link-carousel .item.item--sub-brand .heading {
  display: flex;
  width: 100%;
  justify-content: flex-start;
  align-items: center;
  gap: 0.2rem;
  font-family: var(--brand--sub-brand-font);
  align-items: stretch;
  font-size: 2.8rem;
}
.link-carousel .item.item--sub-brand .heading svg {
  aspect-ratio: 451/1290;
  width: auto;
  height: 1em;
  display: block;
  height: 1.55em;
  width: auto;
  display: block;
}
.link-carousel .item.item--sub-brand .heading span {
  transform: translateY(0rem);
  max-width: 7.5rem;
  max-width: 9rem;
  line-height: 0.8;
}
.link-carousel .flickity-viewport {
  overflow: visible;
}

.link-grid {
  background-color: #1E1E1E;
  background-image: repeating-linear-gradient(-45deg, transparent, transparent 7px, rgba(0, 0, 0, 0.7) 7px, rgba(0, 0, 0, 0.7) 9px);
  color: #fff;
}
.link-grid .link-grid__header {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 960px) {
  .link-grid .link-grid__header {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 2.5rem;
    align-items: start;
  }
}
.link-grid .link-grid__heading h2 {
  margin: 0;
  font-size: clamp(2rem, 4vw, 3.5rem);
  line-height: 1.05;
}
.link-grid .link-grid__content {
  max-width: 42rem;
}
.link-grid .link-grid__items {
  margin-top: 3rem;
  display: block;
  overflow: visible;
}
@media (min-width: 720px) {
  .link-grid .link-grid__items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
  }
}
@media (min-width: 1180px) {
  .link-grid .link-grid__items {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
  }
}
.link-grid .link-grid__items.flickity-enabled {
  display: block;
  gap: 0;
}
.link-grid .flickity-viewport {
  overflow: visible;
}
@media (min-width: 1180px) {
  .link-grid .flickity-viewport {
    overflow: visible;
  }
}
.link-grid .flickity-page-dots {
  bottom: -2rem;
}
@media (min-width: 1180px) {
  .link-grid .flickity-page-dots {
    display: none;
  }
}
.link-grid .link-grid__item {
  aspect-ratio: 345/440;
  background-color: #333;
  position: relative;
  --link-grid-item-accent: var(--brand--light-green);
  --link-grid-item-text: #ffffff;
  width: min(78vw, 360px);
  margin-right: 1rem;
}
@media (min-width: 720px) {
  .link-grid .link-grid__item {
    width: min(42vw, 360px);
  }
}
@media (min-width: 1180px) {
  .link-grid .link-grid__item {
    width: auto;
    margin-right: 0;
  }
}
.link-grid .link-grid__item-link {
  display: block;
  height: 100%;
  color: inherit;
  text-decoration: none;
}
.link-grid .link-grid__item-image,
.link-grid .link-grid__item-image img {
  width: 100%;
  height: 100%;
}
.link-grid .link-grid__item-image img {
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
}
.link-grid .link-grid__item-inset {
  position: absolute;
  inset: 1rem;
  border: 10px solid var(--link-grid-item-accent);
  z-index: 2;
}
.link-grid .link-grid__item-text {
  background-color: var(--link-grid-item-accent);
  color: var(--link-grid-item-text);
  position: absolute;
  left: 0;
  bottom: 0;
  padding: 1rem 1rem 1rem 0.5rem;
  width: calc(100% - 4rem);
  min-height: 11rem;
  display: flex;
  align-items: center;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0;
  padding-top: 2rem;
  padding-right: 3rem;
  padding-bottom: 0.5rem;
}
.link-grid .link-grid__item-text .heading {
  font-size: 2.4rem;
  line-height: 0.9;
}
.link-grid .link-grid__item-text .cta {
  margin-top: auto;
  font-size: 1rem;
  font-weight: 800;
}
.link-grid .link-grid__item-text .cta > * {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.link-grid .link-grid__item-text .cta > * span {
  transform: translateY(-1px);
}
.link-grid .link-grid__item-text .cta i {
  transition: transform 0.2s ease;
}
.link-grid .link-grid__item:hover .cta i {
  transform: translateX(3px);
}
.link-grid .link-grid__item-heading {
  margin: 0;
  font-size: clamp(1.5rem, 2.7vw, 2rem);
  line-height: 1.1;
}

.text-image-mosaic {
  background-color: #1E1E1E;
  background-image: repeating-linear-gradient(-45deg, transparent, transparent 7px, rgba(0, 0, 0, 0.7) 7px, rgba(0, 0, 0, 0.7) 9px);
  color: white;
}
.text-image-mosaic .text-image-mosaic__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}
@media (min-width: 1024px) {
  .text-image-mosaic .text-image-mosaic__inner {
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
    min-height: 80vh;
    min-height: 0;
  }
}
.text-image-mosaic .text-image-mosaic__text {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  padding: 4rem 0;
}
@media (min-width: 1024px) {
  .text-image-mosaic .text-image-mosaic__text {
    padding: 6rem 0;
  }
}
.text-image-mosaic .text-image-mosaic__heading .heading {
  font-family: var(--brand--heading-font);
  font-size: clamp(2rem, 4vw, 3.5rem);
  line-height: 1.1;
  margin: 0;
}
.text-image-mosaic .text-image-mosaic__content {
  max-width: 55ch;
}
.text-image-mosaic .text-image-mosaic__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}
.text-image-mosaic .btn--primary {
  background-color: var(--brand--green);
  color: white;
}
.text-image-mosaic .btn--secondary {
  background-color: var(--brand--red-orange);
  color: white;
}
.text-image-mosaic .btn--outline {
  background-color: transparent;
  border: 2px solid currentColor;
}
.text-image-mosaic .text-image-mosaic__mosaic {
  overflow: hidden;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
  align-self: stretch;
}
@media (min-width: 1024px) {
  .text-image-mosaic .text-image-mosaic__mosaic {
    gap: 0.75rem;
  }
}
.text-image-mosaic .text-image-mosaic__col {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  will-change: transform;
  transform: translateY(var(--text-image-mosaic-offset, 0px));
}
.text-image-mosaic .text-image-mosaic__col--1 {
  margin-top: -8%;
}
.text-image-mosaic .text-image-mosaic__col--2 {
  margin-top: 4%;
}
.text-image-mosaic .text-image-mosaic__col--3 {
  margin-top: -14%;
}
@media (min-width: 1024px) {
  .text-image-mosaic .text-image-mosaic__col {
    gap: 0.75rem;
  }
}
.text-image-mosaic .text-image-mosaic__img-wrap {
  flex-shrink: 0;
  opacity: 0.6;
  transition: opacity 0.7s ease;
}
.text-image-mosaic .text-image-mosaic__img-wrap.is-visible {
  opacity: 1;
}
.text-image-mosaic .text-image-mosaic__img-wrap img {
  width: 100%;
  height: auto;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (prefers-reduced-motion: reduce) {
  .text-image-mosaic .text-image-mosaic__img-wrap {
    transition: none;
    opacity: 1;
  }
}

.diamond-cta {
  position: relative;
  min-height: 55vh;
  overflow: hidden;
  background-color: var(--brand--red-orange);
  color: white;
}
.diamond-cta .diamond-cta__bg {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  aspect-ratio: 1;
  height: 100%;
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  pointer-events: none;
  z-index: 0;
}
.diamond-cta .diamond-cta__bg-img,
.diamond-cta .diamond-cta__bg-video {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.diamond-cta .wrapper {
  position: relative;
  z-index: 1;
}
.diamond-cta .diamond-cta__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  padding: 5rem 0;
  padding: 7rem 0;
}
@media (min-width: 1024px) {
  .diamond-cta .diamond-cta__inner {
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
    min-height: 55vh;
    padding: 0;
    min-height: 38rem;
    padding: 7rem 0;
  }
}
.diamond-cta .diamond-cta__heading-col {
  display: flex;
  align-items: center;
}
@media (min-width: 1024px) {
  .diamond-cta .diamond-cta__heading-col {
    padding: 6rem 0;
  }
}
.diamond-cta .diamond-cta__heading-inner {
  width: 100%;
  max-width: 860px;
}
.diamond-cta .diamond-cta__content-col {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
@media (min-width: 1024px) {
  .diamond-cta .diamond-cta__content-col {
    padding: 6rem 0;
  }
}
.diamond-cta .diamond-cta__content-inner {
  width: 100%;
  max-width: 450px;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.diamond-cta .diamond-cta__content {
  max-width: 55ch;
}
.diamond-cta .diamond-cta__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

.triangle-cta {
  --triangle-cta-bg: var(--brand--golf-course);
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background-color: var(--triangle-cta-bg);
  color: white;
}
.triangle-cta .triangle-cta__media {
  position: relative;
  z-index: 0;
  aspect-ratio: 16/10;
}
.triangle-cta .triangle-cta__media-img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.triangle-cta .triangle-cta__bg {
  display: none;
}
.triangle-cta .wrapper {
  position: relative;
  z-index: 1;
}
.triangle-cta .triangle-cta__inner {
  display: grid;
  grid-template-columns: 1fr;
  padding: 2.5rem 0;
  min-height: 38rem;
  padding: 7rem 0;
}
.triangle-cta .triangle-cta__text {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.triangle-cta .triangle-cta__content {
  max-width: 55ch;
}
.triangle-cta .triangle-cta__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}
.triangle-cta .triangle-cta__ctas .btn--solid.btn--triangle-cta {
  color: var(--triangle-cta-bg);
}
.triangle-cta .triangle-cta__ctas .btn--solid.btn--triangle-cta .icon svg path {
  fill: var(--triangle-cta-bg);
}
.triangle-cta .triangle-cta__ctas .btn--solid.btn--triangle-cta:hover {
  filter: none;
}
.triangle-cta .triangle-cta__ctas .btn--outline.btn--triangle-cta:hover {
  color: var(--triangle-cta-bg);
}
@media (min-width: 1024px) {
  .triangle-cta {
    background-color: transparent;
  }
  .triangle-cta .triangle-cta__media {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 50%;
    width: 50vw;
    aspect-ratio: auto;
  }
  .triangle-cta .triangle-cta__media::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    aspect-ratio: 1/1;
    width: auto;
    background: color-mix(in srgb, var(--triangle-cta-bg) 68%, transparent);
    clip-path: polygon(100% 0, 100% 100%, 0 100%);
    pointer-events: none;
  }
  .triangle-cta .triangle-cta__bg {
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 50vw;
    background-color: var(--triangle-cta-bg);
    z-index: 0;
  }
  .triangle-cta .triangle-cta__inner {
    grid-template-columns: 1fr 1fr;
    align-items: center;
    padding: 4rem 0;
    padding: 7rem 0;
  }
  .triangle-cta .triangle-cta__text {
    grid-column: 2;
    padding-left: clamp(1.5rem, 3.5vw, 4.5rem);
    max-width: 50rem;
  }
}

.banner-cta {
  --banner-cta-accent: var(--brand--light-green);
  --banner-cta-button-text: white;
  --banner-cta-stripe: rgba(0, 0, 0, 0.7);
  --banner-cta-inner-bg: #1E1E1E;
  color: white;
  font-weight: 600;
}
.banner-cta.banner-cta--style-light {
  background-color: #f4f2ed;
  background-color: white;
  background-image: url("../img/bg--contours.png");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  color: #1f1f1f;
  color: #ffffff;
  background-attachment: fixed;
}
.banner-cta.banner-cta--style-dark {
  background-color: #1E1E1E;
  background-image: repeating-linear-gradient(-45deg, transparent, transparent 7px, rgba(0, 0, 0, 0.7) 7px, rgba(0, 0, 0, 0.7) 9px);
  color: #ffffff;
}
.banner-cta .wrapper {
  container-type: inline-size;
}
.banner-cta .banner-cta__inner {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  align-items: stretch;
  border: 1px solid color-mix(in srgb, var(--banner-cta-accent) 20%, transparent);
  background-color: color-mix(in srgb, white 94%, var(--banner-cta-accent));
  background-color: var(--banner-cta-inner-bg);
  background-image: repeating-linear-gradient(-45deg, transparent, transparent 7px, var(--banner-cta-stripe) 7px, var(--banner-cta-stripe) 9px);
}
@media (min-width: 1024px) {
  .banner-cta .banner-cta__inner {
    grid-template-columns: minmax(0, 20%) minmax(0, 60%) minmax(0, 20%);
    align-items: stretch;
    min-height: clamp(140px, 12vw, 190px);
    min-height: 16rem;
  }
}
.banner-cta .banner-cta__inner::before {
  content: "";
  position: absolute;
  inset: 1rem;
  border: 10px solid var(--banner-cta-accent);
  pointer-events: none;
  z-index: 1;
}
.banner-cta .banner-cta__media {
  position: relative;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  overflow: hidden;
  z-index: 0;
  min-height: 100px;
  background-color: color-mix(in srgb, var(--banner-cta-accent) 14%, white);
}
@media (min-width: 1024px) {
  .banner-cta .banner-cta__media {
    min-height: 100%;
  }
}
.banner-cta .banner-cta__media,
.banner-cta .banner-cta__text,
.banner-cta .banner-cta__action {
  position: relative;
}
.banner-cta .banner-cta__text,
.banner-cta .banner-cta__action {
  z-index: 2;
}
.banner-cta .banner-cta__inner::before {
  z-index: 1;
}
.banner-cta .banner-cta__image {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.banner-cta .banner-cta__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.5rem;
  min-width: 0;
  padding: 1.25rem;
  padding-left: 3rem;
  padding-right: 3rem;
  padding-top: 2rem;
  padding-bottom: 2rem;
  color: white;
}
@media (min-width: 1024px) {
  .banner-cta .banner-cta__text {
    padding: 1.5rem;
  }
}
.banner-cta .banner-cta__text .heading {
  color: var(--banner-cta-accent);
  line-height: 0.85;
}
@media (min-width: 1024px) {
  .banner-cta .banner-cta__text .heading {
    white-space: nowrap;
  }
}
.banner-cta .banner-cta__heading {
  margin: 0;
  font-family: var(--brand--heading-font);
  font-size: clamp(1.4rem, 2.2vw, 2.2rem);
  line-height: 1.1;
  color: var(--banner-cta-accent);
}
.banner-cta .banner-cta__content {
  margin: 0;
  font-size: clamp(0.95rem, 1.3vw, 1.1rem);
  line-height: 1.45;
}
.banner-cta .banner-cta__action {
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  padding: 0 1.25rem 1.25rem;
}
@media (min-width: 1024px) {
  .banner-cta .banner-cta__action {
    justify-content: flex-end;
    padding: 1.5rem;
  }
}
.banner-cta.banner-cta--layout-b .banner-cta__text .heading {
  white-space: normal;
}
@media (min-width: 1024px) {
  .banner-cta.banner-cta--layout-b .banner-cta__action {
    align-items: center;
    justify-content: center;
  }
}
.banner-cta.banner-cta--style-light {
  color: var(--brand--body-color);
}
.banner-cta .btn--primary {
  background-color: var(--banner-cta-accent);
  color: var(--banner-cta-button-text);
}
.banner-cta .btn--secondary {
  background-color: var(--brand--red-orange);
  color: white;
}
.banner-cta .btn--outline {
  background-color: transparent;
  border: 2px solid currentColor;
  color: var(--banner-cta-accent);
}
.banner-cta.banner-cta--style-dark .banner-cta__inner {
  background-color: color-mix(in srgb, black 90%, transparent);
  border: none;
}

.banner-cta.banner-cta--golf-course .banner-cta__text .heading {
  color: white;
}

.reviews-carousel + .banner-cta.section.inset,
.faqs + .banner-cta.section.inset,
.split-text + .banner-cta.section.inset,
.heading-text + .banner-cta.section.inset {
  margin-top: -5rem;
}

.split-text {
  --split-text-gap: 72px;
  --split-text-separator-color: color-mix(in srgb, var(--brand--green) 72%, black 28%);
  --split-text-separator-color: rgba(0,0,0,0.2);
}
.split-text .split-text__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2rem;
  gap: 4rem;
}
.split-text .split-text__column {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.split-text .split-text__heading {
  margin: 0;
  font-family: var(--brand--heading-font);
  font-size: clamp(1.8rem, 3vw, 3.1rem);
  line-height: 1.08;
}
.split-text .split-text__content {
  max-width: 58ch;
}
.split-text .split-text__cta-wrap {
  padding-top: 0.25rem;
}
.split-text .split-text__separator {
  display: none;
}
@media (min-width: 1024px) {
  .split-text:not(.split-text--has-separator) .split-text__inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    -moz-column-gap: var(--split-text-gap);
         column-gap: var(--split-text-gap);
    align-items: start;
  }
  .split-text.split-text--has-separator .split-text__inner {
    grid-template-columns: minmax(0, 0.92fr) auto minmax(0, 0.92fr);
    -moz-column-gap: clamp(1rem, 2.2vw, 2.25rem);
         column-gap: clamp(1rem, 2.2vw, 2.25rem);
    -moz-column-gap: 7rem;
         column-gap: 7rem;
    align-items: start;
  }
  .split-text.split-text--has-separator .split-text__separator {
    display: block;
    justify-self: center;
    align-self: center;
    width: 1px;
    height: clamp(220px, 28vw, 420px);
    background-color: var(--split-text-separator-color);
    transform: rotate(198deg);
    transform-origin: center;
    opacity: 0.8;
  }
}

.heading-text {
  --heading-text-bg: #fff;
  --heading-text-fg: #1f1f1f;
  background-color: var(--heading-text-bg);
  color: var(--heading-text-fg);
}
.heading-text .heading-text__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1.25rem, 3vw, 2.5rem);
  align-items: start;
}
.heading-text .heading-text__heading {
  margin: 0;
  font-family: var(--brand--heading-font);
  font-size: clamp(2rem, 4vw, 3.6rem);
  line-height: 1.05;
}
.heading-text .heading-text__content {
  max-width: 62ch;
}
.heading-text.heading-text--dark {
  --heading-text-bg: #1e1e1e;
  --heading-text-fg: #f7f7f7;
  background-image: repeating-linear-gradient(-45deg, transparent, transparent 7px, rgba(0, 0, 0, 0.7) 7px, rgba(0, 0, 0, 0.7) 9px);
}
@media (min-width: 1024px) {
  .heading-text .heading-text__inner {
    grid-template-columns: minmax(0, 0.45fr) minmax(0, 0.55fr);
    -moz-column-gap: clamp(2rem, 4vw, 5rem);
         column-gap: clamp(2rem, 4vw, 5rem);
  }
}

.shortcode-cols {
  --shortcode-cols-gap: clamp(1rem, 2vw, 2rem);
  -moz-column-count: 1;
       column-count: 1;
  -moz-column-gap: var(--shortcode-cols-gap);
       column-gap: var(--shortcode-cols-gap);
}
@media (min-width: 768px) {
  .shortcode-cols {
    -moz-column-count: var(--shortcode-cols-count, 1);
         column-count: var(--shortcode-cols-count, 1);
  }
}
.shortcode-cols__col {
  -moz-column-break-inside: avoid;
       break-inside: avoid;
  -webkit-column-break-inside: avoid;
  margin-bottom: var(--shortcode-cols-gap);
}

.scroll-shapes {
  --scroll-shapes-size: clamp(10.5rem, 15vw, 15rem);
  --scroll-shapes-gap: 0;
  --scroll-shapes-text: var(--brand--white);
  --scroll-shapes-fallback-bg: var(--brand--light-green);
  --scroll-shapes-row-offset: calc(var(--scroll-shapes-size) * 0.28);
  overflow: hidden;
  display: grid;
  gap: var(--scroll-shapes-gap);
}

.scroll-shapes__row {
  overflow: hidden;
}

.scroll-shapes__row--bottom {
  margin-left: calc(var(--scroll-shapes-size) * -0.5);
}

.scroll-shapes__track {
  display: flex;
  width: -moz-max-content;
  width: max-content;
  will-change: transform;
  transform: translate3d(0, 0, 0);
}

.scroll-shapes__set {
  display: flex;
  align-items: center;
  gap: var(--scroll-shapes-gap);
  padding-right: var(--scroll-shapes-gap);
}

.scroll-shapes__tile {
  width: var(--scroll-shapes-size);
  height: var(--scroll-shapes-size);
  flex: 0 0 var(--scroll-shapes-size);
}

.scroll-shapes__tile--text {
  background-color: var(--scroll-shapes-tile-bg, var(--scroll-shapes-fallback-bg));
  color: var(--scroll-shapes-text);
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  text-align: left;
  padding: clamp(0.5rem, 1vw, 0.9rem);
}

.scroll-shapes__tile--text.scroll-shapes__tile--driving-range {
  color: var(--brand--black);
}

.scroll-shapes__label {
  font-family: var(--brand--heading-font);
  font-size: clamp(1.16rem, 1.62vw, 1.52rem);
  line-height: 0.9;
  text-transform: uppercase;
  margin: 0;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: normal;
  overflow: unset;
  text-overflow: clip;
}

.scroll-shapes__tile--diamond {
  clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
  overflow: hidden;
  background-color: color-mix(in srgb, var(--brand--dark-green) 28%, white);
}

.scroll-shapes__diamond-image {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

@media (max-width: 767px) {
  .scroll-shapes {
    --scroll-shapes-size: clamp(8rem, 33vw, 10rem);
  }
  .scroll-shapes__row--bottom {
    margin-left: calc(var(--scroll-shapes-size) * -0.24);
  }
}
@media (prefers-reduced-motion: reduce) {
  .scroll-shapes__track {
    transform: none !important;
  }
}
.text-image-grid-cta {
  --text-image-grid-cta-left: transparent;
  --text-image-grid-cta-right: var(--brand--light-green);
  --banner-cta-stripe: rgba(0, 0, 0, 0.7);
  --banner-cta-inner-bg: #1E1E1E;
  background-color: var(--banner-cta-inner-bg);
  background-image: repeating-linear-gradient(-45deg, transparent, transparent 7px, var(--banner-cta-stripe) 7px, var(--banner-cta-stripe) 9px);
  position: relative;
  padding: clamp(2rem, 5vw, 5rem) 0;
  overflow: hidden;
}
.text-image-grid-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: var(--text-image-grid-cta-right);
  clip-path: polygon(0 100%, 100% 100%, 100% 0);
  z-index: 0;
  pointer-events: none;
}
.text-image-grid-cta .wrapper {
  position: relative;
  z-index: 1;
}
.text-image-grid-cta .text-image-grid-cta__callout {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1.25rem, 2.2vw, 2rem);
  gap: 0;
  padding: clamp(1.25rem, 2.5vw, 2rem);
  background-color: white;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.14);
  padding: 0;
}
.text-image-grid-cta .text-image-grid-cta__text {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 2rem;
}
.text-image-grid-cta .text-image-grid-cta__heading {
  font-family: var(--brand--heading-font);
  font-size: clamp(1.9rem, 4vw, 3.4rem);
  line-height: 1.08;
  margin: 0;
}
.text-image-grid-cta .text-image-grid-cta__content {
  max-width: 60ch;
}
.text-image-grid-cta .text-image-grid-cta__cta-wrap {
  padding-top: 0.25rem;
  margin-top: auto;
}
.text-image-grid-cta .text-image-grid-cta__media {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  --text-image-grid-cta-media-gap: 5px;
  gap: var(--text-image-grid-cta-media-gap);
  background-color: white;
  border: 5px solid white;
}
.text-image-grid-cta .text-image-grid-cta__media-item {
  margin: 0;
  aspect-ratio: 605/390;
  position: relative;
  overflow: hidden;
  background-color: color-mix(in srgb, var(--brand--green) 18%, white);
}
.text-image-grid-cta .text-image-grid-cta__media-item img {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.text-image-grid-cta .text-image-grid-cta__media-item--feature {
  grid-column: 1/-1;
}
@media (min-width: 1024px) {
  .text-image-grid-cta .text-image-grid-cta__callout {
    grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
    gap: clamp(1.5rem, 2.2vw, 2.5rem);
    align-items: stretch;
    min-height: clamp(22rem, 36vw, 30rem);
    padding: clamp(1.5rem, 2.4vw, 2.2rem);
    padding: 5px;
    padding: 0;
  }
  .text-image-grid-cta .text-image-grid-cta__media {
    height: 100%;
    min-height: 0;
    min-height: 45rem;
    overflow: hidden;
    grid-template-rows: 55fr 45fr;
  }
  .text-image-grid-cta .text-image-grid-cta__media-item {
    aspect-ratio: auto;
    min-height: 0;
  }
  .text-image-grid-cta .text-image-grid-cta__text {
    padding: clamp(0.5rem, 1vw, 1rem);
    padding: 2rem;
  }
}

.full-width-testimonial {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  overflow: hidden;
}
.full-width-testimonial .full-width-testimonial__wrapper {
  position: relative;
  aspect-ratio: 1920/920;
  min-height: 420px;
  max-width: 100%;
  width: 100%;
  height: auto;
  padding: 0;
}
.full-width-testimonial .full-width-testimonial__slides {
  position: relative;
  width: 100%;
  height: 100%;
}
.full-width-testimonial .full-width-testimonial__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.6s ease, visibility 0.6s ease;
}
.full-width-testimonial .full-width-testimonial__slide.is-active {
  opacity: 1;
  visibility: visible;
}
.full-width-testimonial .full-width-testimonial__media {
  position: absolute;
  inset: 0;
  background-color: color-mix(in srgb, black 35%, var(--brand--green));
}
.full-width-testimonial .full-width-testimonial__image {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.full-width-testimonial .full-width-testimonial__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  padding: clamp(1.5rem, 4vw, 4rem);
  background: linear-gradient(90deg, color-mix(in srgb, black 58%, transparent) 0%, color-mix(in srgb, black 30%, transparent) 55%, color-mix(in srgb, black 15%, transparent) 100%);
}
.full-width-testimonial .full-width-testimonial__content {
  max-width: min(800px, 100%);
  color: white;
}
.full-width-testimonial .full-width-testimonial__icon {
  display: inline-block;
  margin-bottom: 0.6rem;
  font-family: var(--brand--heading-font);
  font-size: clamp(2.4rem, 6vw, 5rem);
  line-height: 0.8;
  color: var(--full-width-testimonial-accent, var(--brand--light-green));
}
.full-width-testimonial .full-width-testimonial__quote {
  margin: 0;
}
.full-width-testimonial .full-width-testimonial__quote p {
  margin: 0;
  font-family: var(--brand--heading-font);
  font-size: clamp(1.5rem, 4vw, 3.1rem);
  line-height: 1.12;
  text-transform: uppercase;
}
.full-width-testimonial .full-width-testimonial__customer {
  margin: 1rem 0 0;
  font-size: clamp(0.82rem, 1.4vw, 1rem);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  opacity: 0.96;
}
.full-width-testimonial .full-width-testimonial__dots {
  position: absolute;
  right: clamp(1.25rem, 4vw, 4rem);
  bottom: clamp(1.25rem, 4vw, 3rem);
  display: flex;
  gap: 0.55rem;
  z-index: 4;
}
.full-width-testimonial .full-width-testimonial__dot {
  width: 0.75rem;
  height: 0.75rem;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 50%;
  background-color: transparent;
  cursor: pointer;
  transition: background-color 0.3s ease, border-color 0.3s ease;
}
.full-width-testimonial .full-width-testimonial__dot.is-active {
  background-color: var(--full-width-testimonial-accent, var(--brand--light-green));
  border-color: var(--full-width-testimonial-accent, var(--brand--light-green));
}
.full-width-testimonial .full-width-testimonial__dot:focus-visible {
  outline: 2px solid var(--full-width-testimonial-accent, var(--brand--light-green));
  outline-offset: 2px;
}
@media (max-width: 991px) {
  .full-width-testimonial .full-width-testimonial__wrapper {
    min-height: 340px;
  }
  .full-width-testimonial .full-width-testimonial__overlay {
    padding: 1.25rem;
    align-items: flex-end;
  }
  .full-width-testimonial .full-width-testimonial__quote p {
    text-transform: none;
    line-height: 1.22;
  }
  .full-width-testimonial .full-width-testimonial__dots {
    right: 1.25rem;
    bottom: 1rem;
    gap: 0.45rem;
  }
}

.reviews-carousel {
  background-color: #fff;
  overflow: visible;
}
.reviews-carousel .reviews-carousel__top {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.reviews-carousel .reviews-carousel__heading {
  margin: 0;
  font-size: clamp(1.75rem, 3.5vw, 2.75rem);
  line-height: 1.1;
}
.reviews-carousel .reviews-carousel__nav {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.reviews-carousel .reviews-carousel__nav--overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-left: 0;
  padding-right: 0;
  pointer-events: none;
  z-index: 3;
}
.reviews-carousel .reviews-carousel__nav-btn {
  /*
  appearance: none;
  border: 1px solid currentColor;
  background: transparent;
  color: inherit;
  width: 3rem;
  height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  pointer-events: auto;
  transition: background-color 0.2s ease, color 0.2s ease;
  */
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid currentColor;
  background: transparent;
  color: inherit;
  width: 3rem;
  height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  cursor: pointer;
  pointer-events: auto;
  transition: background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
  border: none;
  width: auto;
  height: auto;
  padding: 1rem;
}
.reviews-carousel .reviews-carousel__nav-btn svg {
  transition: transform 0.2s ease;
}
.reviews-carousel .js-reviews-carousel-prev:hover svg,
.reviews-carousel .js-reviews-carousel-prev:focus-visible svg {
  transform: translateX(-4px);
}
.reviews-carousel .js-reviews-carousel-next:hover svg,
.reviews-carousel .js-reviews-carousel-next:focus-visible svg {
  transform: translateX(4px);
}
.reviews-carousel .js-reviews-carousel-prev:disabled svg,
.reviews-carousel .js-reviews-carousel-next:disabled svg {
  transform: none;
}
.reviews-carousel .reviews-carousel__track-layer {
  position: relative;
  overflow: hidden;
  margin-top: 2rem;
}
.reviews-carousel .reviews-carousel__wrapper--full {
  max-width: 100vw;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: 0;
  padding-right: 0;
}
.reviews-carousel .reviews-carousel__track {
  display: block;
  overflow: hidden;
}
.reviews-carousel .reviews-carousel__track .flickity-viewport {
  overflow: hidden;
}
.reviews-carousel .reviews-carousel__item {
  width: 435px;
  max-width: calc(100vw - 3rem);
  min-height: 375px;
  margin-right: 1.5rem;
  background-color: #f4f4f4;
  padding: clamp(1.25rem, 2.5vw, 2rem);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  box-sizing: border-box;
}
@media (max-width: 1024px) {
  .reviews-carousel .reviews-carousel__item {
    width: calc(33.333% - 1rem);
  }
}
@media (max-width: 680px) {
  .reviews-carousel .reviews-carousel__item {
    width: calc(80vw - 1.5rem);
  }
}
.reviews-carousel .reviews-carousel__stars {
  display: flex;
  gap: 0.2em;
  font-size: 1.375rem;
  line-height: 1;
}
.reviews-carousel .reviews-carousel__star--filled {
  color: var(--brand--green);
}
.reviews-carousel .reviews-carousel__star--empty {
  color: #ccc;
}
.reviews-carousel .reviews-carousel__quote {
  margin: 0;
  padding: 0;
  border: 0;
}
.reviews-carousel .reviews-carousel__quote p {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.6;
}
.reviews-carousel .reviews-carousel__name {
  margin: 0;
  font-weight: 700;
  font-size: 0.9375rem;
}
.reviews-carousel .reviews-carousel__location {
  margin: 0;
  font-size: 0.875rem;
  color: #666;
}
.reviews-carousel i.icon.icon--carousel-arrow.icon--carousel-arrow--left,
.reviews-carousel i.icon.icon--carousel-arrow.icon--carousel-arrow--right {
  --transition-duration: 125ms;
  --transition-easing: ease;
  width: 38px;
  height: auto;
  aspect-ratio: 1/1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  opacity: 0.7;
  transition: opacity var(--transition-duration) var(--transition-easing);
}
.reviews-carousel i.icon.icon--carousel-arrow.icon--carousel-arrow--left:before,
.reviews-carousel i.icon.icon--carousel-arrow.icon--carousel-arrow--right:before {
  content: "";
  display: inline-block;
  width: 100%;
  height: 100%;
  background-color: white;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
}
.reviews-carousel i.icon.icon--carousel-arrow.icon--carousel-arrow--left span,
.reviews-carousel i.icon.icon--carousel-arrow.icon--carousel-arrow--right span {
  display: inline-block;
  width: 24px;
  height: 24px;
  border-right: 5px solid #000;
  border-bottom: 5px solid #000;
  transform: rotate(-45deg);
  transform-origin: center;
  transition: transform var(--transition-duration) var(--transition-easing);
}
.reviews-carousel i.icon.icon--carousel-arrow.icon--carousel-arrow--left:hover span,
.reviews-carousel i.icon.icon--carousel-arrow.icon--carousel-arrow--right:hover span {
  transform: translateX(2px) rotate(-45deg);
}
.reviews-carousel i.icon.icon--carousel-arrow.icon--carousel-arrow--left span {
  transform: rotate(135deg);
}
.reviews-carousel i.icon.icon--carousel-arrow.icon--carousel-arrow--left:hover span {
  transform: translateX(-2px) rotate(135deg);
}

.faqs {
  background-color: #F4F4F4;
}
.faqs .faqs__heading {
  margin: 0 0 1.5rem;
}
.faqs .faqs__items {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.faqs .faqs__item {
  background-color: #fff;
  border: 5px solid #000;
}
.faqs .faqs__question-row {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  background: transparent;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
  cursor: pointer;
  text-align: left;
}
.faqs .faqs__question {
  margin: 0;
  font-size: clamp(1.0625rem, 2.2vw, 1.375rem);
  line-height: 1.2;
}
.faqs .faqs__toggle {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: transparent;
  border: 0;
  padding: 0.25rem;
  width: 2.25rem;
  height: 2.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
}
.faqs .faqs__toggle-arrow {
  display: inline-block;
  width: 0.75rem;
  height: 0.75rem;
  border-right: 3px solid #000;
  border-bottom: 3px solid #000;
  transform: rotate(45deg);
  transition: transform 0.2s ease;
}
.faqs .faqs__answer {
  overflow: hidden;
}
.faqs .faqs__answer[hidden] {
  display: none;
}
.faqs .faqs__answer-inner {
  overflow: hidden;
  padding: 0 1.25rem 1.25rem;
}
.faqs .faqs__answer-inner p:last-child {
  margin-bottom: 0;
}
.faqs .faqs__item.is-open .faqs__toggle-arrow {
  transform: rotate(225deg);
}
.faqs .faqs__item.is-open .faqs__answer {
  grid-template-rows: 1fr;
}

.price-cta {
  --price-cta-grid-item-bg: rgba(0, 0, 0, 0.42);
  --price-cta-grid-item-text: white;
  --price-cta-grid-item-text-muted: rgba(255, 255, 255, 0.75);
  --price-cta-grid-item-text-subtle: rgba(255, 255, 255, 0.6);
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.price-cta .price-cta__bg-left {
  display: none;
}
.price-cta .price-cta__bg-right {
  display: block;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 50%;
  z-index: 0;
  overflow: hidden;
}
.price-cta .wrapper {
  position: relative;
  z-index: 1;
}
.price-cta .price-cta__inner {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 0;
}
.price-cta .price-cta__text-col {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding: clamp(2.5rem, 6vw, 5rem) 0;
  background-color: white;
  position: relative;
  z-index: 1;
}
.price-cta .price-cta__heading {
  margin: 0;
  font-family: var(--brand--heading-font);
  font-size: clamp(2rem, 4vw, 3.75rem);
  line-height: 1.05;
}
.price-cta .price-cta__content {
  max-width: 55ch;
}
.price-cta .price-cta__cta-wrap {
  padding-top: 0.25rem;
}
.price-cta .price-cta__prices-col {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 1.25rem;
  padding: clamp(2.5rem, 6vw, 5rem) 0;
  position: relative;
  z-index: 1;
}
.price-cta .price-cta__prices-heading {
  margin: 0;
  font-family: var(--brand--heading-font);
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  line-height: 1.15;
  color: white;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}
.price-cta .price-cta__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 4px;
  width: 100%;
}
.price-cta .price-cta__grid-item {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 0.25rem;
  padding: clamp(0.875rem, 1.5vw, 1.25rem);
  background-color: var(--price-cta-grid-item-bg);
  aspect-ratio: 1/1;
  text-align: left;
  flex-basis: calc(50% - 2px);
  max-width: 180px;
}
.price-cta .price-cta__item-label {
  display: block;
  font-family: var(--brand--body-font);
  font-size: clamp(0.7rem, 1vw, 0.85rem);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--price-cta-grid-item-text-muted);
  line-height: 1.3;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}
.price-cta .price-cta__item-price {
  display: block;
  font-family: var(--brand--heading-font);
  font-size: clamp(1.5rem, 2.5vw, 2.25rem);
  line-height: 1;
  color: var(--price-cta-grid-item-text);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}
.price-cta .price-cta__item-note {
  display: block;
  font-size: clamp(0.65rem, 0.9vw, 0.75rem);
  color: var(--price-cta-grid-item-text-subtle);
  line-height: 1.4;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}
.price-cta .price-cta__bg-image {
  display: block;
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
}
.price-cta .price-cta__bg-right--mobile-img {
  display: none;
}
@media (min-width: 1024px) {
  .price-cta .price-cta__bg-left {
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 50%;
    background-color: white;
    z-index: 0;
  }
  .price-cta .price-cta__bg-right {
    top: 0;
    left: auto;
    right: 0;
    transform: none;
    width: 50%;
    height: 100%;
  }
  .price-cta .price-cta__bg-image {
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
  .price-cta .price-cta__inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: none;
    align-items: stretch;
  }
  .price-cta .price-cta__text-col {
    background-color: transparent;
    padding-right: clamp(2rem, 4vw, 4rem);
  }
  .price-cta .price-cta__prices-col {
    padding-left: clamp(2rem, 4vw, 4rem);
    padding-top: 2rem;
    padding-bottom: 2rem;
    padding-left: 2rem;
  }
  .price-cta .price-cta__prices-heading {
    color: white;
  }
}

.price-table {
  --price-table-price-bg: var(--brand--light-green);
  --price-table-price-text: white;
  --price-table-price-text-muted: rgba(255, 255, 255, 0.8);
}
.price-table .price-table__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.25rem;
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
  align-items: start;
}
.price-table .price-table__heading {
  margin: 0;
  font-family: var(--brand--heading-font);
  font-size: clamp(2rem, 3.4vw, 3.6rem);
  line-height: 1.04;
}
.price-table .price-table__content {
  max-width: 68ch;
}
.price-table .price-table__header-cta-wrap {
  display: flex;
  justify-content: flex-start;
}
.price-table .price-table__groups {
  display: flex;
  flex-direction: column;
  gap: clamp(1.5rem, 3vw, 2.5rem);
}
.price-table .price-table__group {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.price-table .price-table__group-heading {
  margin: 0;
  font-family: var(--brand--heading-font);
  font-size: clamp(1.25rem, 2vw, 1.8rem);
  line-height: 1.1;
}
.price-table .price-table__rows {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.price-table .price-table__row {
  display: grid;
  grid-template-columns: 1fr;
  border: 1px solid color-mix(in srgb, var(--brand--body-color) 18%, white 82%);
  background: color-mix(in srgb, var(--brand--background) 80%, white 20%);
  border: 5px solid black;
}
.price-table .price-table__cell {
  padding: clamp(0.9rem, 1.8vw, 1.2rem);
  border-bottom: 1px solid color-mix(in srgb, var(--brand--body-color) 12%, white 88%);
}
.price-table .price-table__cell--heading {
  display: flex;
  align-items: center;
}
.price-table .price-table__cell--heading {
  position: relative;
}
.price-table .price-table__cell--heading:after {
  content: "";
  display: block;
  position: absolute;
  right: 0;
  top: 50%;
  height: 3.75rem;
  width: 1px;
  background-color: black;
  transform: translate(-1rem, -50%) rotate(15deg);
  opacity: 0.5;
}
.price-table .price-table__cell--price {
  background-color: var(--price-table-price-bg);
  color: var(--price-table-price-text);
}
.price-table .price-table__row .price-table__cell:last-child {
  border-bottom: 0;
}
.price-table .price-table__item-heading {
  margin: 0;
  font-family: var(--brand--heading-font);
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
  line-height: 1.2;
  color: var(--price-table-price-bg);
}
.price-table .price-table__item-description {
  font-size: 0.95rem;
}
.price-table .price-table__item-description > *:first-child {
  margin-top: 0;
}
.price-table .price-table__item-description > *:last-child {
  margin-bottom: 0;
}
.price-table .price-table__item-price {
  font-family: var(--brand--heading-font);
  font-size: clamp(1.2rem, 2.1vw, 1.85rem);
  line-height: 1;
}
.price-table .price-table__item-price-note {
  margin-top: 0.3rem;
  font-size: 0.78rem;
  color: var(--price-table-price-text-muted);
}
.price-table .price-table__cell--price,
.price-table .price-table__cell--cta {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.price-table .price-table__cell--cta {
  align-items: flex-start;
}
@media (min-width: 1024px) {
  .price-table .price-table__header {
    grid-template-columns: 20% minmax(0, 1fr);
    -moz-column-gap: clamp(1.5rem, 2.4vw, 2.5rem);
         column-gap: clamp(1.5rem, 2.4vw, 2.5rem);
  }
  .price-table .price-table__header--has-cta {
    grid-template-columns: 20% minmax(0, 1fr) 20%;
  }
  .price-table .price-table__header-cta-wrap {
    justify-content: flex-end;
  }
  .price-table .price-table__row {
    grid-template-columns: 20% minmax(0, 1fr) 20%;
    grid-template-columns: 20% minmax(0, 1fr) auto;
  }
  .price-table .price-table__row--has-cta {
    grid-template-columns: 20% minmax(0, 1fr) 20% 20%;
  }
  .price-table .price-table__cell {
    border-bottom: 0;
    border-right: 1px solid color-mix(in srgb, var(--brand--body-color) 12%, white 88%);
  }
  .price-table .price-table__row .price-table__cell:last-child {
    border-right: 0;
  }
  .price-table .price-table__cell--price,
  .price-table .price-table__cell--cta {
    align-items: center;
    text-align: center;
  }
  .price-table .price-table__cell--price {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }
}

.restaurant-menus-opening-times {
  --rmot-border-color: #d5d5d5;
  --rmot-heading-color: #171717;
  --rmot-text-color: #343434;
  --rmot-link-color: var( --brand--green );
  --rmot-link-color: black;
  background-color: #fff;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.75rem;
  padding-bottom: 2rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid var(--rmot-border-color);
  border: none;
}
@media (min-width: 980px) {
  .restaurant-menus-opening-times .restaurant-menus-opening-times__row {
    grid-template-columns: minmax(11rem, 0.65fr) minmax(0, 2.35fr);
    gap: 2rem;
    align-items: start;
  }
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__label h2,
.restaurant-menus-opening-times .restaurant-menus-opening-times__gallery-heading {
  margin: 0;
  font-size: clamp(1.5rem, 3vw, 2.3rem);
  line-height: 1.1;
  color: var(--rmot-heading-color);
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__columns {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 780px) {
  .restaurant-menus-opening-times .restaurant-menus-opening-times__columns {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 780px) {
  .restaurant-menus-opening-times .restaurant-menus-opening-times__columns--menus {
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.85fr) minmax(0, 1.1fr);
    grid-template-columns: auto auto max-content;
  }
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__column h3 {
  margin: 0 0 0.8rem;
  font-size: 1.15rem;
  line-height: 1.2;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__column ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__column li {
  line-height: 0.9;
  font-size: 2rem;
  font-family: var(--brand--heading-font);
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__column a {
  color: var(--rmot-link-color);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.14em;
  text-decoration: none;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__column a:hover,
.restaurant-menus-opening-times .restaurant-menus-opening-times__column a:focus-visible {
  color: var(--brand--light-green);
  color: var(--brand--red-orange);
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__gallery {
  text-align: center;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__gallery-track-layer {
  position: relative;
  overflow: hidden;
  max-width: 100vw;
  margin-top: 1.5rem;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0 clamp(1rem, 3vw, 2rem);
  padding-left: 0;
  padding-right: 0;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__gallery-track {
  overflow: hidden;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__slide {
  width: min(560px, 100vw - 4.5rem);
  width: min(480px, 100vw - 4.5rem);
  margin-right: 1rem;
  padding: 0.35rem 0;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__slide-button {
  display: block;
  width: 100%;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: zoom-in;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__slide-button img {
  display: block;
  width: 100%;
  height: clamp(14rem, 35vw, 24rem);
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 0.75rem;
  border-radius: 0;
  aspect-ratio: 1;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__gallery-nav {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  pointer-events: none;
  z-index: 3;
  padding: 0 0.25rem;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__gallery-nav-btn {
  pointer-events: auto;
  border: 1px solid currentColor;
  background: rgba(255, 255, 255, 0.85);
  color: #111;
  width: 2.85rem;
  height: 2.85rem;
  border-radius: 999px;
  font-size: 1.05rem;
  cursor: pointer;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__gallery-nav-btn:hover,
.restaurant-menus-opening-times .restaurant-menus-opening-times__gallery-nav-btn:focus-visible {
  background: var(--brand--green);
  color: #fff;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__lightbox {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 1200;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__lightbox[hidden] {
  display: none;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__lightbox-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(0, 0, 0, 0.88);
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__lightbox-dialog {
  position: relative;
  z-index: 2;
  width: min(980px, 100vw - 2rem);
  max-height: calc(100vh - 2rem);
  padding: 2.5rem 1rem 1rem;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__lightbox-close {
  position: absolute;
  top: 0.45rem;
  right: 0.4rem;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__lightbox-controls {
  position: absolute;
  inset: 50% 0 auto;
  transform: translateY(-50%);
  display: flex;
  justify-content: space-between;
  pointer-events: none;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__lightbox-arrow {
  pointer-events: auto;
  border: 0;
  background: rgba(0, 0, 0, 0.5);
  color: #fff;
  width: 3rem;
  height: 3rem;
  border-radius: 999px;
  font-size: 1.25rem;
  cursor: pointer;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__lightbox-figure {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__lightbox-image {
  display: block;
  max-width: 100%;
  max-height: calc(100vh - 9rem);
  -o-object-fit: contain;
     object-fit: contain;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__lightbox-caption {
  color: #fff;
  font-size: 0.95rem;
  line-height: 1.4;
  text-align: center;
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__row--opening-times .restaurant-menus-opening-times__label {
  visibility: hidden;
}
@media (min-width: 780px) {
  .restaurant-menus-opening-times .restaurant-menus-opening-times__row--opening-times .restaurant-menus-opening-times__columns--opening-times {
    grid-template-columns: auto auto max-content;
  }
}
.restaurant-menus-opening-times .restaurant-menus-opening-times__row--opening-times .restaurant-menus-opening-times__column li {
  font-family: var(--brand--body-font);
  line-height: var(--brand--body-line-height);
  font-size: 1rem;
  font-weight: 1000;
}

body.restaurant-gallery-lightbox-open {
  overflow: hidden;
}

.events-grid {
  --events-grid-filter-bg: #1E1E1E;
  --events-grid-filter-fg: #ffffff;
  --events-grid-filter-stripe: rgba(0, 0, 0, 0.7);
  --events-grid-results-bg: var(--brand--whats-on);
  --events-grid-results-fg: #000;
  padding: 0;
  margin: 0;
}
.events-grid .events-grid__filter-layer {
  background-color: var(--events-grid-filter-bg);
  background-image: repeating-linear-gradient(-45deg, transparent, transparent 7px, var(--events-grid-filter-stripe) 7px, var(--events-grid-filter-stripe) 9px);
  color: var(--events-grid-filter-fg);
  padding-top: clamp(2.5rem, 5vw, 4rem);
  padding-bottom: clamp(2.5rem, 5vw, 4rem);
}
.events-grid .events-grid__results-layer {
  background-color: var(--events-grid-results-bg);
  color: var(--events-grid-results-fg);
  padding-top: clamp(2.5rem, 5vw, 4rem);
  padding-bottom: clamp(2.5rem, 5vw, 4rem);
}
.events-grid .events-grid-filter {
  display: grid;
  gap: 1.5rem;
}
.events-grid .events-grid-filter__controls {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  max-width: 32rem;
}
@media (min-width: 768px) {
  .events-grid .events-grid-filter__controls {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.events-grid .events-grid-filter__label {
  display: block;
  font-size: 0.9rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 0.45rem;
  font-weight: 600;
}
.events-grid .events-grid-filter__select {
  width: 100%;
  padding: 0.65rem 0.8rem;
  border: 1px solid rgba(0, 0, 0, 0.3);
  background-color: #fff;
  font: inherit;
  line-height: 1.2;
}
.events-grid .events-grid-results__heading {
  margin: 0;
  font-family: var(--brand--heading-font);
  font-size: clamp(2rem, 4vw, 3.5rem);
  line-height: 1.05;
}
.events-grid .events-grid-results__status {
  min-height: 1.5em;
  margin-top: 0.85rem;
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.8);
}
.events-grid .events-grid-results__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.2rem;
  margin-top: 1rem;
}
@media (min-width: 768px) {
  .events-grid .events-grid-results__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .events-grid .events-grid-results__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.events-grid .events-grid__card {
  background-color: #f8f7f3;
  border: 1px solid rgba(0, 0, 0, 0.12);
}
.events-grid .events-grid__card-link {
  display: block;
  height: 100%;
  color: inherit;
  text-decoration: none;
}
.events-grid .events-grid__card-media {
  aspect-ratio: 4/3;
  overflow: hidden;
  background: #e8e5de;
}
.events-grid .events-grid__card-image {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.events-grid .events-grid__card-body {
  padding: 1rem;
}
.events-grid .events-grid__card-date {
  margin: 0;
  font-size: 0.85rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  opacity: 0.85;
}
.events-grid .events-grid__card-title {
  margin: 0.45rem 0 0;
  font-size: 1.4rem;
  line-height: 1.2;
}
.events-grid .events-grid__card-excerpt {
  margin: 0.6rem 0 0;
  line-height: 1.5;
}
.events-grid .events-grid__empty {
  margin: 0;
  padding: 1rem;
  border: 1px dashed rgba(0, 0, 0, 0.25);
  background: #faf9f5;
}
.events-grid.events-grid--loading .events-grid-results__grid {
  opacity: 0.6;
  pointer-events: none;
}

html.has-gallery-lightbox-open {
  overflow: hidden;
}

.gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
}

.gallery-lightbox.is-open {
  display: block;
}

.gallery-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
}

.gallery-lightbox__dialog {
  position: relative;
  height: 100%;
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem 1rem;
}

.gallery-lightbox__figure {
  margin: 0;
  width: 100%;
  max-width: 600px;
}

.gallery-lightbox__embed {
  display: block;
  width: 100%;
  max-width: 600px;
  height: min(85vh, 760px);
  border: 0;
  background: #fff;
}

.gallery-lightbox__close {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  width: 2.75rem;
  height: 2.75rem;
  font-size: 2rem;
  line-height: 1;
  padding: 0;
  cursor: pointer;
  border: none;
  background: none;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.gallery-lightbox__close:hover {
  opacity: 0.5;
}

.gallery-lightbox--close-widget .gallery-lightbox__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
}

.gallery-lightbox--close-viewport .gallery-lightbox__close {
  position: fixed;
  top: max(1rem, env(safe-area-inset-top));
  right: max(1rem, env(safe-area-inset-right));
  z-index: 10001;
}

#rd-widget-root .rd-widget-content,
#rd-mini-widget-root .rd-widget-content {
  background-color: var(--brand--green);
}