/* Home-only recovery of the existing, legitimate WPBakery components. */
.gn-home-recovery {
  --gn-home-gutter: clamp(18px, 3vw, 32px);
  --gn-home-width: 1180px;
}
.gn-home-recovery :is(.home-booking-water, .home-social-water),
.gn-home-recovery :is(.home-booking-water, .home-social-water) * {
  box-sizing: border-box;
}
.gn-home-recovery :is(.home-booking-water, .home-social-water) {
  width: 100%;
  margin: 0 auto;
  padding: clamp(28px, 5vw, 56px);
  border: 1px solid #cceef8;
  border-radius: var(--gn-radius-xl, 46px);
  background: linear-gradient(135deg, #effcff, #dff8ff 75%, #f8feff);
  box-shadow: var(--gn-shadow-section);
  color: var(--gn-text, #52677b);
  font: 17px/1.65 Ubuntu, Arial, sans-serif;
}
.gn-home-recovery :is(.home-booking-water, .home-social-water) :is(h2,h3) {
  margin: 0;
  color: var(--gn-navy, #061b45);
  font-family: "Open Sans", Ubuntu, Arial, sans-serif;
  font-style: italic;
  font-weight: 900;
  letter-spacing: -.025em;
  line-height: 1.08;
  text-transform: uppercase;
  overflow-wrap: normal;
  text-wrap: balance;
}
.gn-home-recovery :is(.home-booking-head, .home-social-copy) h2 {
  font-size: clamp(30px, 4vw, 52px);
}
.gn-home-recovery :is(.home-booking-head > span, .home-social-badge) {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  margin-bottom: 18px;
  padding: 8px 14px;
  border: 1px solid var(--gn-border-blue);
  border-radius: 999px;
  background: rgba(255,255,255,.88);
  color: var(--gn-navy-soft);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .07em;
  line-height: 1.2;
  text-transform: uppercase;
}
.gn-home-recovery :is(.home-booking-water, .home-social-water) img.emoji {
  display: inline-block;
  width: 1.2em;
  height: 1.2em;
  margin: 0;
  vertical-align: middle;
}
.gn-home-recovery .home-booking-head {
  max-width: 760px;
  margin: 0 auto 28px;
  text-align: center;
}
.gn-home-recovery :is(.home-booking-head, .home-social-copy) > p {
  margin: 18px 0 0;
}
.gn-home-recovery .home-booking-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 20px;
}
/* One active booking destination must not leave an empty summer column. */
.gn-home-recovery.gn-season-hide-summer-booking .home-booking-cards {
  grid-template-columns: minmax(0,1fr);
}
.gn-home-recovery .home-booking-card {
  display: grid;
  min-width: 0;
  gap: 14px;
  padding: clamp(24px,3vw,36px);
  border: 1px solid var(--gn-border-blue);
  border-radius: var(--gn-radius-lg);
  background: rgba(255,255,255,.94);
  box-shadow: var(--gn-shadow-card);
  color: var(--gn-text);
  text-decoration: none;
  transition: transform 180ms ease;
}
.gn-home-recovery .home-booking-icon {
  display: grid;
  width: 54px;
  height: 54px;
  place-items: center;
  border-radius: 18px;
  background: var(--gn-water);
  font-size: 30px;
}
.gn-home-recovery .home-booking-card h3 { font-size: clamp(23px,2.5vw,30px); }
.gn-home-recovery .home-booking-card p { margin: 0; }
.gn-home-recovery .home-booking-card > span {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  margin-top: 4px;
  padding: 12px 22px;
  border-radius: 999px;
  background: linear-gradient(120deg, #176cc6, #1b79c8);
  color: #fff;
  font-weight: 800;
}
.gn-home-recovery .home-booking-card:hover { transform: translateY(-2px); }
.gn-home-recovery .home-booking-card:has(>span) { align-content: start; }
.gn-home-recovery .home-social-water { background: linear-gradient(135deg, #f8feff, #e7f8ff); }
.gn-home-recovery .home-social-inner {
  display: grid;
  grid-template-columns: minmax(240px,.75fr) minmax(0,1.25fr);
  gap: clamp(28px,5vw,62px);
  align-items: center;
}
.gn-home-recovery .home-social-reel {
  position: relative;
  width: min(100%, 340px);
  aspect-ratio: 9 / 16;
  margin: 0 auto;
  overflow: hidden;
  border: 6px solid #fff;
  border-radius: 30px;
  background: #061b45;
  box-shadow: var(--gn-shadow-card);
}
.gn-home-recovery .home-social-video {
  display: block;
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: contain;
}
.gn-home-recovery .home-social-reel > video { max-width: 100%; }
.gn-home-recovery .home-social-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 24px 0;
}
.gn-home-recovery .home-social-links a {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  border: 1px solid var(--gn-border-blue);
  border-radius: 999px;
  background: #fff;
  color: var(--gn-navy);
  font-weight: 800;
  text-decoration: none;
}
.gn-home-recovery .home-social-comment {
  padding: 24px;
  border: 1px solid var(--gn-border-blue);
  border-radius: 24px;
  background: rgba(255,255,255,.82);
}
.gn-home-recovery .home-social-comment h3 { font-size: 23px; }
.gn-home-recovery .home-social-comment p { margin: 14px 0; font-size: 16px; }
.gn-home-recovery .home-social-comment a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: #1763b5;
  font-weight: 800;
}
.gn-home-recovery :is(.home-booking-water, .home-social-water) a:focus-visible {
  outline: 4px solid #3189ed;
  outline-offset: 4px;
}
/* Only rows that contain these two recovered components escape the theme's
   narrow mobile grid. No header, page, shop or form layout is reset. */
.gn-home-recovery .mkdf-row-grid-section:has(:is(.home-booking-water,.home-social-water)) {
  width: min(var(--gn-home-width), calc(100% - 48px));
}
.gn-home-recovery .vc_row:has(:is(.home-booking-water,.home-social-water)) { margin-inline: 0; }
.gn-home-recovery .vc_column-inner:has(:is(.home-booking-water,.home-social-water)) {
  padding-inline: 0 !important;
  background: transparent;
}
.gn-home-recovery .wpb_column:has(.home-social-water) {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}
.gn-home-recovery .gn-winter-home--winter .gn-winter-home__path-grid {
  grid-template-columns: repeat(4,minmax(0,1fr));
}
.gn-home-recovery .gn-winter-home--winter .gn-winter-home__path {
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr;
  min-height: 0;
}
.gn-home-recovery .gn-winter-home--winter .gn-winter-home__path > img {
  display: block;
  height: auto;
  min-height: 0;
  aspect-ratio: 3 / 2;
  object-fit: contain;
  background: #dff8ff;
}
.gn-home-recovery .gn-winter-home--winter .gn-winter-home__path > span { padding: 24px; }
.gn-home-recovery .gn-winter-home--winter .gn-winter-home__path strong { font-size: clamp(20px,1.8vw,25px); }
@media (max-width:1100px) {
  .gn-home-recovery .gn-winter-home--winter .gn-winter-home__path-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width:767px) {
  .gn-home-recovery .mkdf-row-grid-section:has(:is(.home-booking-water,.home-social-water)) {
    width: calc(100% - 28px);
  }
  .gn-home-recovery :is(.home-booking-water,.home-social-water) { padding: 28px 20px; border-radius: 28px; }
  .gn-home-recovery .home-booking-head { text-align: left; }
  .gn-home-recovery .home-booking-cards { grid-template-columns: minmax(0,1fr) !important; }
  .gn-home-recovery .home-booking-card { padding: 24px 20px; }
  .gn-home-recovery .home-social-inner { grid-template-columns: 1fr; gap: 28px; }
  .gn-home-recovery .home-social-copy { grid-row: 1; }
  .gn-home-recovery .home-social-reel { width: min(100%,270px); }
  .gn-home-recovery .home-social-links a { flex: 1 1 110px; padding-inline: 16px; }
  .gn-home-recovery .home-social-comment { padding: 22px 18px; }
  .gn-home-recovery :is(.gn-secondary-nav,.gn-sponsors) { width: calc(100% - 28px); }
  .gn-home-recovery .gn-secondary-nav { padding: 34px 20px; border-radius: 28px; }
  .gn-home-recovery .gn-secondary-nav h2 { font-size: 32px; line-height: 1.08; }
  .gn-home-recovery .gn-secondary-nav__header { margin-bottom: 26px; }
  .gn-home-recovery .gn-secondary-nav__grid { gap: 16px; }
  .gn-home-recovery .gn-secondary-card { min-height: 0; padding: 24px 22px; border-radius: 24px; }
  .gn-home-recovery .gn-secondary-card__icon { width: 48px; height: 48px; margin-bottom: 14px; }
  .gn-home-recovery .gn-secondary-card__title { font-size: 24px; line-height: 1.1; }
  .gn-home-recovery .gn-secondary-card__description { font-size: 16px; line-height: 1.5; }
  .gn-home-recovery .gn-winter-home--winter .gn-winter-home__path-grid { grid-template-columns: 1fr; }
  .gn-home-recovery .gn-winter-home__paths-head { padding-inline: 4px; }
}
@media (max-width:360px) {
  .gn-home-recovery :is(.home-booking-water,.home-social-water) { padding-inline: 18px; }
  .gn-home-recovery :is(.home-booking-head,.home-social-copy) h2 { font-size: 28px; }
  .gn-home-recovery .home-social-comment h3 { font-size: 21px; }
}
@media (prefers-reduced-motion:reduce) {
  .gn-home-recovery :is(.home-booking-water,.home-social-water) * { animation: none !important; transition: none !important; }
}
