﻿/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
  box-sizing: border-box;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

img, video {
  display: block;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

@media (min-width: 2201px) {
  /*!
   * Hamburgers
   * @description Tasty CSS-animated hamburgers
   * @author Jonathan Suh @jonsuh
   * @site https://jonsuh.com/hamburgers
   * @link https://github.com/jonsuh/hamburgers
   */
  .hamburger {
    padding: 0px 0px;
    display: inline-block;
    cursor: pointer;
    transition-property: opacity, filter;
    transition-duration: 0.15s;
    transition-timing-function: linear;
    font: inherit;
    color: inherit;
    text-transform: none;
    background-color: transparent;
    border: 0;
    margin: 0;
    overflow: visible;
  }
  .hamburger:hover {
    opacity: 1;
  }
  .hamburger.is-active:hover {
    opacity: 1;
  }
  .hamburger.is-active .hamburger-inner,
  .hamburger.is-active .hamburger-inner::before,
  .hamburger.is-active .hamburger-inner::after {
    background-color: #000;
  }
  .hamburger-box {
    width: 30px;
    height: 20px;
    display: inline-block;
    position: relative;
  }
  .hamburger-inner {
    display: block;
    top: 50%;
    margin-top: -1px;
  }
  .hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {
    width: 30px;
    height: 2px;
    background-color: #000;
    border-radius: 0px;
    position: absolute;
    transition-property: transform;
    transition-duration: 0.15s;
    transition-timing-function: ease;
  }
  .hamburger-inner::before, .hamburger-inner::after {
    content: "";
    display: block;
  }
  .hamburger-inner::before {
    top: -9px;
  }
  .hamburger-inner::after {
    bottom: -9px;
  }
  /*@import "types/3dx";
  @import "types/3dx-r";
  @import "types/3dy";
  @import "types/3dy-r";
  @import "types/3dxy";
  @import "types/3dxy-r";
  @import "types/arrow";
  @import "types/arrow-r";
  @import "types/arrowalt";
  @import "types/arrowalt-r";
  @import "types/arrowturn";
  @import "types/arrowturn-r";
  @import "types/boring";
  @import "types/collapse";
  @import "types/collapse-r";
  @import "types/elastic";
  @import "types/elastic-r";
  @import "types/emphatic";
  @import "types/emphatic-r";
  @import "types/minus";
  @import "types/slider";
  @import "types/slider-r";
  @import "types/spin";
  @import "types/spin-r";*/
  /*
   * Spring
   */
  .hamburger--spring .hamburger-inner {
    top: 1px;
    transition: background-color 0s 0.13s linear;
  }
  .hamburger--spring .hamburger-inner::before {
    top: 9px;
    transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  .hamburger--spring .hamburger-inner::after {
    top: 18px;
    transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  .hamburger--spring.is-active .hamburger-inner {
    transition-delay: 0.22s;
    background-color: transparent !important;
  }
  .hamburger--spring.is-active .hamburger-inner::before {
    top: 0;
    transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 9px, 0) rotate(45deg);
  }
  .hamburger--spring.is-active .hamburger-inner::after {
    top: 0;
    transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 9px, 0) rotate(-45deg);
  }
  /*@import "types/spring-r";
  @import "types/stand";
  @import "types/stand-r";
  @import "types/squeeze";
  @import "types/vortex";
  @import "types/vortex-r";*/
}
@media (min-width: 521px) and (max-width: 2200px) {
  /*!
   * Hamburgers
   * @description Tasty CSS-animated hamburgers
   * @author Jonathan Suh @jonsuh
   * @site https://jonsuh.com/hamburgers
   * @link https://github.com/jonsuh/hamburgers
   */
  .hamburger {
    padding: 0px 0px;
    display: inline-block;
    cursor: pointer;
    transition-property: opacity, filter;
    transition-duration: 0.15s;
    transition-timing-function: linear;
    font: inherit;
    color: inherit;
    text-transform: none;
    background-color: transparent;
    border: 0;
    margin: 0;
    overflow: visible;
  }
  .hamburger:hover {
    opacity: 1;
  }
  .hamburger.is-active:hover {
    opacity: 1;
  }
  .hamburger.is-active .hamburger-inner,
  .hamburger.is-active .hamburger-inner::before,
  .hamburger.is-active .hamburger-inner::after {
    background-color: #000;
  }
  .hamburger-box {
    width: 24px;
    height: 16px;
    display: inline-block;
    position: relative;
  }
  .hamburger-inner {
    display: block;
    top: 50%;
    margin-top: -1px;
  }
  .hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {
    width: 24px;
    height: 2px;
    background-color: #000;
    border-radius: 0px;
    position: absolute;
    transition-property: transform;
    transition-duration: 0.15s;
    transition-timing-function: ease;
  }
  .hamburger-inner::before, .hamburger-inner::after {
    content: "";
    display: block;
  }
  .hamburger-inner::before {
    top: -7px;
  }
  .hamburger-inner::after {
    bottom: -7px;
  }
  /*@import "types/3dx";
  @import "types/3dx-r";
  @import "types/3dy";
  @import "types/3dy-r";
  @import "types/3dxy";
  @import "types/3dxy-r";
  @import "types/arrow";
  @import "types/arrow-r";
  @import "types/arrowalt";
  @import "types/arrowalt-r";
  @import "types/arrowturn";
  @import "types/arrowturn-r";
  @import "types/boring";
  @import "types/collapse";
  @import "types/collapse-r";
  @import "types/elastic";
  @import "types/elastic-r";
  @import "types/emphatic";
  @import "types/emphatic-r";
  @import "types/minus";
  @import "types/slider";
  @import "types/slider-r";
  @import "types/spin";
  @import "types/spin-r";*/
  /*
   * Spring
   */
  .hamburger--spring .hamburger-inner {
    top: 1px;
    transition: background-color 0s 0.13s linear;
  }
  .hamburger--spring .hamburger-inner::before {
    top: 7px;
    transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  .hamburger--spring .hamburger-inner::after {
    top: 14px;
    transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  .hamburger--spring.is-active .hamburger-inner {
    transition-delay: 0.22s;
    background-color: transparent !important;
  }
  .hamburger--spring.is-active .hamburger-inner::before {
    top: 0;
    transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 7px, 0) rotate(45deg);
  }
  .hamburger--spring.is-active .hamburger-inner::after {
    top: 0;
    transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 7px, 0) rotate(-45deg);
  }
  /*@import "types/spring-r";
  @import "types/stand";
  @import "types/stand-r";
  @import "types/squeeze";
  @import "types/vortex";
  @import "types/vortex-r";*/
}
@media (max-width: 520px) {
  /*!
   * Hamburgers
   * @description Tasty CSS-animated hamburgers
   * @author Jonathan Suh @jonsuh
   * @site https://jonsuh.com/hamburgers
   * @link https://github.com/jonsuh/hamburgers
   */
  .hamburger {
    padding: 0px 0px;
    display: inline-block;
    cursor: pointer;
    transition-property: opacity, filter;
    transition-duration: 0.15s;
    transition-timing-function: linear;
    font: inherit;
    color: inherit;
    text-transform: none;
    background-color: transparent;
    border: 0;
    margin: 0;
    overflow: visible;
  }
  .hamburger:hover {
    opacity: 1;
  }
  .hamburger.is-active:hover {
    opacity: 1;
  }
  .hamburger.is-active .hamburger-inner,
  .hamburger.is-active .hamburger-inner::before,
  .hamburger.is-active .hamburger-inner::after {
    background-color: #000;
  }
  .hamburger-box {
    width: 20px;
    height: 14px;
    display: inline-block;
    position: relative;
  }
  .hamburger-inner {
    display: block;
    top: 50%;
    margin-top: -1px;
  }
  .hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {
    width: 20px;
    height: 2px;
    background-color: #000;
    border-radius: 0px;
    position: absolute;
    transition-property: transform;
    transition-duration: 0.15s;
    transition-timing-function: ease;
  }
  .hamburger-inner::before, .hamburger-inner::after {
    content: "";
    display: block;
  }
  .hamburger-inner::before {
    top: -6px;
  }
  .hamburger-inner::after {
    bottom: -6px;
  }
  /*@import "types/3dx";
  @import "types/3dx-r";
  @import "types/3dy";
  @import "types/3dy-r";
  @import "types/3dxy";
  @import "types/3dxy-r";
  @import "types/arrow";
  @import "types/arrow-r";
  @import "types/arrowalt";
  @import "types/arrowalt-r";
  @import "types/arrowturn";
  @import "types/arrowturn-r";
  @import "types/boring";
  @import "types/collapse";
  @import "types/collapse-r";
  @import "types/elastic";
  @import "types/elastic-r";
  @import "types/emphatic";
  @import "types/emphatic-r";
  @import "types/minus";
  @import "types/slider";
  @import "types/slider-r";
  @import "types/spin";
  @import "types/spin-r";*/
  /*
   * Spring
   */
  .hamburger--spring .hamburger-inner {
    top: 1px;
    transition: background-color 0s 0.13s linear;
  }
  .hamburger--spring .hamburger-inner::before {
    top: 6px;
    transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  .hamburger--spring .hamburger-inner::after {
    top: 12px;
    transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  .hamburger--spring.is-active .hamburger-inner {
    transition-delay: 0.22s;
    background-color: transparent !important;
  }
  .hamburger--spring.is-active .hamburger-inner::before {
    top: 0;
    transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 6px, 0) rotate(45deg);
  }
  .hamburger--spring.is-active .hamburger-inner::after {
    top: 0;
    transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 6px, 0) rotate(-45deg);
  }
  /*@import "types/spring-r";
  @import "types/stand";
  @import "types/stand-r";
  @import "types/squeeze";
  @import "types/vortex";
  @import "types/vortex-r";*/
}
body {
  --color_blueDark: #001e50;
  --color_blueLight: #00b0f0;
}

/***************************
* FONTS
****************************/
@font-face {
  font-family: vw-light;
  src: url(../fonts/vwhead-light.woff);
}
@font-face {
  font-family: vw-text;
  src: url(../fonts/vwtext-regular.woff);
}
@font-face {
  font-family: vw-head;
  src: url(../fonts/vwhead-regular.woff);
}
@font-face {
  font-family: vw-bold;
  src: url(../fonts/vwhead-bold.woff);
}
body {
  min-height: 100svh;
  line-height: normal;
  background-color: var(--color_blueDark);
  overflow-x: hidden;
}

body {
  --fontSize_base: 20px;
}
@media (max-width: 1920px) {
  body {
    --fontSize_base: 16px;
  }
}

body, p, input, label, button {
  font-size: var(--fontSize_base);
}

body, textarea {
  font-family: vw-text;
}

.grecaptcha-badge {
  z-index: 1100;
}

.mainwrapper {
  position: relative;
  overflow-x: hidden;
}

.handwriting {
  font-family: handwriting;
}

.overlay-box-title {
  font-size: 38px;
  font-family: vw-head;
  line-height: 1.25em;
}

.overlay-box-title {
  padding-bottom: 30px;
}

.overlay-box-content a, .overlay-box-content a:visited, .overlay-box-content a:active, .overlay-box-content a:hover {
  color: black;
}

/******
	**** Transition between pages
******/
.transitionThingy {
  display: none;
  z-index: 1100;
  position: fixed;
  width: 100%;
  height: 120svh;
  top: calc(78vw + 120svh);
  background-color: #001e50;
  overflow: visible;
  /*		display: block;
  top: 120vh;*/
}

.transitionThingy .circle {
  position: absolute;
  border-radius: 50%;
  background-color: #001e50;
  top: -78vw;
  left: -28vw;
  width: 156vw;
  aspect-ratio: 1;
  /*background-color: red;*/
}

.pageSignup, .pageThanks {
  color: white;
  display: flex;
  justify-content: center;
  align-items: center;
  padding-top: 170px;
  padding-bottom: 100px;
  overflow-x: hidden;
  position: relative;
  z-index: 10;
}
@media (max-width: 720px) {
  .pageSignup, .pageThanks {
    /* mobile vw-based layout */
    padding-top: 58vw;
    display: block;
    padding-bottom: 30vw;
  }
}
.pageSignup .content, .pageThanks .content {
  background-color: rgb(0, 30, 80);
  position: relative;
  z-index: 10;
}

.intro {
  margin: 0 auto;
  text-align: center;
  margin-bottom: 2em;
}
.intro h2 {
  font-size: 35px;
  font-family: vw-head;
  font-weight: normal;
  max-width: 50em;
  margin: 0 auto;
  line-height: 1.15em;
  margin-bottom: 0.5em;
}
.intro h2 .handwriting {
  font-size: 1.38em;
}
@media (max-width: 520px) {
  .intro h2 {
    font-size: 32px;
  }
}
.intro p {
  max-width: 30em;
  margin: 0 auto;
}

h2 .mobileBreak {
  display: none;
}

/******
	**** Signup user
******/
/* Input fields */
.inputOuter {
  position: relative;
  max-width: 35em;
  margin: 0 auto;
}
@media (max-width: 1000px) {
  .inputOuter {
    max-width: 30em;
  }
}

.inputFields {
  margin-top: 30px;
  display: flex;
  flex-direction: column;
  column-gap: 30px;
}

form::after {
  content: "";
  position: absolute;
  inset: 0 0 0 0;
  background-color: transparent;
  z-index: 5;
  pointer-events: none;
  transition: background-color 0.5s;
}

button[type=submit] .loadingBtn {
  display: block;
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 11px;
  width: 22px;
  height: auto;
  transition: opacity 0.35s;
}

.loadingIndicator {
  display: block;
  opacity: 0;
  width: 100%;
  max-width: 22ch;
  text-align: center;
  pointer-events: none;
  z-index: 100;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 35px;
}
@media (max-width: 520px) {
  .loadingIndicator {
    font-size: 32px;
  }
}

.loadingIndicator, inputFields, .checkboxWrapper {
  transition: opacity 0.35s;
}

form.isSubmitting::after {
  pointer-events: all;
  /*background-color: rgba(0, 0, 0, .5);*/
}
form.isSubmitting .loadingIndicator {
  opacity: 1;
}
form.isSubmitting .inputFields, form.isSubmitting .checkboxWrapper {
  opacity: 0.1;
}
form.isSubmitting button[type=submit] .loadingBtn {
  opacity: 1;
}

.page .content {
  width: 600px;
  margin: 0 auto;
  /*box-shadow: 0 0 10px 10px rgb(0,30,80);*/
  /*box-shadow: 0px 20px 20px -10px rgb(0,30,80), 0px -20px 10px -10px rgb(0,30,80);*/
  box-shadow: 0px 20px 20px 0px rgb(0, 30, 80), 0px -20px 10px 0px rgb(0, 30, 80);
}
@media (max-width: 1920px) {
  .page .content {
    width: 600px;
  }
}
@media (max-width: 900px) {
  .page h2 .mobileBreak {
    display: block;
  }
  .page .introWrap {
    /*width: 100%;*/
  }
  .page .content {
    width: 500px;
  }
}
@media (max-width: 800px) {
  .page .content {
    width: 450px;
  }
}
@media (max-width: 720px) {
  .page .content {
    max-width: 35em;
    margin: 0 auto;
  }
  .page .introWrap {
    /* mobile vw-based layout */
  }
  .page .inputOuter {
    width: 100%;
    max-width: unset;
  }
  .page p {
    max-width: unset;
  }
}
@media (max-width: 520px) {
  .page .content {
    width: 100%;
    box-shadow: none;
  }
  .page form {
    margin: 0 auto;
    width: 90%;
    max-width: 350px;
  }
}

/* Terms accept overlay */
.termsClickSurface {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 30px;
  z-index: 1000;
  background-color: transparent;
}

.termsAcceptButtons {
  display: flex;
  flex-direction: column;
  padding-top: 0.5em;
}
.termsAcceptButtons .submitbtn, .termsAcceptButtons a.submitbtn:active, .termsAcceptButtons a.submitbtn:visited, .termsAcceptButtons a.submitbtn:hover {
  max-width: unset;
  transform: none;
  margin-left: unset;
}

@media (max-width: 520px) {
  .termsAcceptButtons .button, .termsAcceptButtons a.button:active, .termsAcceptButtons a.button:visited, .termsAcceptButtons a.button:hover {
    max-width: unset;
    width: 100%;
    white-space: normal;
    line-height: 1.55em;
  }
}
.termsAcceptButtons .button {
  margin: 0 auto;
}

.termsAcceptButtons .button .mobileBreak {
  display: none;
}

@media (max-width: 520px) {
  .termsAcceptButtons .button .mobileBreak {
    display: block;
  }
}
.termsAcceptButtons a.denyTerms {
  margin: 5px auto;
  padding: 5px;
}

.newsletterTerms {
  display: flex;
  flex-direction: column;
}

/***************************
* FORM ELEMENTS
****************************/
.buttonWrap {
  margin-top: 2em;
}

.checkboxWrapper {
  width: 100%;
  margin: 0px auto;
  display: flex;
  align-items: flex-start;
  align-content: center;
  flex-wrap: nowrap;
  justify-content: flex-start;
  flex-direction: column;
  margin-top: 2em;
}

@media screen and (max-width: 640px) {
  .checkboxWrapper {
    flex-direction: column;
    align-items: center;
  }
}
.checkbox-container {
  justify-content: flex-start;
}

.checkbox {
  width: 100%;
  max-width: 45em;
}

.buttonWrap {
  display: flex;
  justify-content: center;
}

/********
Thank you	
********/
.pageThanks .intro h2 {
  font-size: 45px;
  font-family: vw-head;
  font-weight: normal;
  max-width: 50em;
  margin: 0 auto;
  line-height: 1.15em;
  margin-bottom: 0.5em;
}
.pageThanks .intro h2 .handwriting {
  font-size: 1.38em;
}
@media (max-width: 900px) {
  .pageThanks .intro h2 br {
    display: none;
  }
}
.pageThanks .intro p {
  max-width: 30em;
  margin: 0 auto;
}
@media (max-width: 1920px) {
  .pageThanks .intro h2 {
    font-size: 35px;
  }
}
@media (max-width: 520px) {
  .pageThanks .intro h2 {
    font-size: 32px;
  }
}
.pageThanks .intro .buttonGoToSubmission {
  margin-top: 2em;
}

.pageSignup, .pageThanks {
  min-height: max(100svh, 50svw);
}
.pageThanks {
  display: none;
}

.snowFalling {
  width: 100vw;
  height: 100%;
  top: 0;
  overflow: hidden;
  position: absolute;
  z-index: 1;
  pointer-events: none;
}

button {
  font-family: vw-text;
  padding: 0.7em 2.5em 0.7em 2.5em;
  border-radius: 2em;
  background-color: white;
  overflow: hidden;
  border: 0;
  position: relative;
  font-weight: normal;
}

button.narrow {
  padding: 0.8em 1.2em 0.8em 1.2em;
}

button .btnText {
  z-index: 1; /* Text must be on top of hover bg-color swipe transition */
  position: relative;
  color: black;
  transition: color 0.1s linear;
  white-space: nowrap;
}

button .circle {
  position: absolute;
  width: 15%;
  aspect-ratio: 1;
  background-color: var(--color_blueLight);
  border-radius: 50%;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 100%);
  transform-origin: bottom center;
  transition: transform 0.35s ease-out;
}

@media (hover: hover), (pointer: fine) {
  button:hover .btnText {
    color: white;
  }
  button:hover .circle {
    transform: translate(-50%, 100%) scale(12);
  }
}
button.dark {
  background-color: #001e50;
}

button.dark .btnText {
  color: white;
}

button.stickySendSubmissionBtn {
  background-color: rgba(255, 255, 255, 0.7);
  border: 1px solid white;
  backdrop-filter: blur(4px);
  display: relative;
  padding: 0;
  z-index: 1;
}
button.stickySendSubmissionBtn .btnText {
  display: block;
  padding: 0.7em 1.1em 0.7em 3.5em;
}
button.stickySendSubmissionBtn .icon {
  position: absolute;
  z-index: 2;
  left: 1em;
  top: 50%;
  transform: translateY(-50%);
  width: auto;
  height: 1.7em;
  display: inline-block;
  transition: transform 0.5s;
}
button.stickySendSubmissionBtn .circle {
  background-color: var(--color_blueDark);
}
@media (hover: hover), (pointer: fine) {
  button.stickySendSubmissionBtn:hover .btnText {
    color: white;
  }
  button.stickySendSubmissionBtn:hover .icon {
    transform: translateY(-50%) scale(1.8);
  }
  button.stickySendSubmissionBtn:hover .circle {
    transform: translate(-50%, 100%) scale(12);
  }
}

.hiddenDummySubmit {
  display: none;
}

/* Loading / progress */
.loadIndicator {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0;
  background-color: rgba(255, 255, 255, 0.5);
  z-index: 100;
  align-items: center;
  justify-content: center;
  display: none;
  width: 110%;
  height: 110%;
  transform: translate(-5%, -5%);
}

.loadingBtn {
  position: absolute;
  height: 20px;
  width: auto;
  margin-left: 0.5em;
  display: none;
  opacity: 0;
}

/* Custom checkbox */
/*Custom checkbox */
.checkbox {
  position: relative;
  display: flex;
  gap: 1em;
  align-items: flex-start;
}
.checkbox[data-terms-id=Newsletter] label {
  align-self: center;
}
@media (max-width: 1010px) {
  .checkbox[data-terms-id=Newsletter] label {
    /* This break point is closely tied to the current text length (the width at which the text starts breaking - maybe theres a clever, more elegant, way of doing this */
    align-self: flex-start;
  }
}

.styledCheckbox {
  width: 36px;
  height: 36px;
  margin-top: 2px;
  background-size: cover;
  display: block;
  position: relative;
  flex-shrink: 0;
}

.checkbox label {
  display: block;
}
.checkbox label a, .checkbox label a:active, .checkbox label a:visited, .checkbox label a:hover {
  color: white;
}

.notInUse .checkbox-container {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 60px;
  width: 100%;
}
.notInUse .checkbox-container .bold, .notInUse .checkbox-container b {
  font-family: vw-bold;
}
.notInUse .checkbox input[type=checkbox] {
  opacity: 0;
  position: absolute;
  width: 0px;
  height: 0px;
  z-index: -1;
}
.notInUse .checkbox input[type=checkbox]:checked + label::after {
  content: "";
  /*width:30px;
  		height:30px;*/
  /*width:100%;
  	height:100%;*/
}
.notInUse .checkbox label {
  position: relative;
  display: inline-block;
  padding-left: 65px;
  cursor: pointer;
  color: #fff;
}
.notInUse .checkbox label a {
  color: #fff;
}
.notInUse .checkbox label::before, .notInUse .checkbox label::after {
  position: absolute;
  left: 0px;
  top: 5px;
}
.notInUse .checkbox label::before {
  content: "";
  display: inline-block;
  height: 36px;
  width: 36px;
  border: 3px solid #fff;
}
.notInUse .checkbox label::after {
  content: none;
  left: -5px;
  top: -1px;
  background-image: url(../images/checkbox_vw@2x_white.png);
  background-size: 60%;
  background-position: center;
  width: 53px;
  height: 53px;
  background-repeat: no-repeat;
}

/* Text input fields */
body {
  --inputTextAndBorderColor: white;
}

.inputWrap {
  width: 100%;
}

.form-group {
  width: 100%;
  /*margin-bottom: 1rem;
  margin-top: 1rem;*/
}

.input {
  position: relative;
  display: flex;
  flex-flow: column-reverse;
  width: 100%;
  margin-bottom: 0.75rem;
  border-bottom: 1px solid #dfe4e8;
}

.input input {
  height: 2.5rem;
  border: 0;
  border-bottom: 1px solid rgba(27, 27, 27, 0.2);
  border-radius: 0;
  box-shadow: none;
  -webkit-appearance: none;
}

.input label, .input input {
  transition: all 0.25s ease-in-out;
  touch-action: manipulation;
  background: none;
  color: #fff;
}

input {
  padding: 0;
  margin: 0;
  outline: 0;
}

.input label {
  font-weight: 300;
  line-height: 1.625rem;
  color: #fff;
  transform-origin: left bottom;
  transform: translate(0, 1.6rem) scale(1);
  pointer-events: none;
}

.input input:focus, .input input:hover, .input input:not(:placeholder-shown):hover {
  border-bottom: 1px solid rgba(27, 27, 27, 0.6);
}

.input.has-error input:not(:placeholder-shown) {
  border-bottom: 1px solid #FF7D7D;
}

.input input:focus + label, .input input:not(:placeholder-shown) + label {
  transform-origin: left bottom;
  transform: translate(0.1rem, 0.25rem) scale(0.8);
}

input::placeholder {
  color: transparent;
}

input {
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  border-radius: 0;
  -moz-border-radius: 0;
  -webkit-border-radius: 0;
}

body {
  --headerOffset: 40px;
  --hamburgerDiameter: 55px;
  --logoWidth: 80px;
}
@media (max-width: 2000px) {
  body {
    --headerOffset: 24px;
    --hamburgerDiameter: 44px;
    --logoWidth: 60px;
  }
}
@media (max-width: 520px) {
  body {
    --headerOffset: 16px;
    --hamburgerDiameter: 36px;
    --logoWidth: 36px;
  }
}

.logoWrap {
  pointer-events: none;
  position: absolute;
  top: var(--headerOffset);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  z-index: 1100;
}

.logo {
  pointer-events: all;
  display: block;
  z-index: 2510;
  width: var(--logoWidth);
}
.logo img {
  width: 100%;
  height: auto;
}

nav .logoWrap {
  z-index: 2600;
  position: fixed;
}

.subscribeExpoChristmasTop {
  display: none;
  position: absolute;
  top: var(--headerOffset);
  right: var(--headerOffset);
  z-index: 1100;
}
@media (min-width: 1000px) {
  .subscribeExpoChristmasTop {
    display: block;
  }
}

nav {
  --navCircleOversize: 1.4;
  --navCircleOffsetLeft: max(15vw, 15vh);
  --navCircleDiameter: max(calc(var(--navCircleOversize) * 100vw), calc(var(--navCircleOversize) * 100vh));
  --navCircleRadius: calc(var(--navCircleDiameter) / 2);
}
nav .subscribeExpoChristmas {
  opacity: 0;
  position: absolute;
  bottom: 1.5em;
  left: 50%;
  transform: translateX(-50%);
}
@media (min-width: 1000px) {
  nav .subscribeExpoChristmas {
    display: none;
  }
}

.navBg {
  z-index: 2500;
  border-radius: 50%;
  width: var(--navCircleDiameter);
  aspect-ratio: 1;
  top: 50%;
  left: 50%;
  display: none;
  position: fixed;
  background: linear-gradient(90deg, #00b0f0 0%, #001e50 100%);
  /*background: radial-gradient(circle at 0% 0%, rgb(0, 67, 122) 0%, rgb(0, 30, 80) 100%);*/
  overflow: hidden;
  margin: 0;
  pointer-events: all;
}

nav .logoWrap {
  opacity: 0;
}

.navMenu {
  opacity: 0;
  position: fixed;
  z-index: 2600;
  max-height: calc(100vh - 58px);
  overflow-y: auto;
  overflow-x: hidden;
  width: 100%;
  height: 100vh;
  left: 0;
  bottom: 0;
  font-family: vw-light;
  display: none;
  align-items: center;
  justify-content: center;
}

.navMenuItemsWrap {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  position: absolute;
  margin-bottom: 20vh; /* Don't truly center, keep it up top */
}
@media (min-aspect-ratio: 1/1) and (max-height: 750px) {
  .navMenuItemsWrap {
    margin-bottom: 5vh;
  }
}
nav li {
  width: 100%;
  white-space: nowrap;
  flex-basis: auto;
  cursor: pointer;
  text-align: center;
  overflow: hidden;
}

nav li.active a {
  color: #ffbd00;
}

nav li a {
  text-decoration: none;
  color: #FFFFFF;
  font-size: 24px;
  line-height: 2.5em;
  transform: translateY(100%);
  padding: 0;
  display: inline-block;
}
@media (max-width: 700px), (max-height: 700px) {
  nav li a {
    font-size: 22px;
  }
}

nav li a:hover {
  color: rgb(76, 199, 244);
}

nav.is-active .navMenu {
  display: flex;
  opacity: 1;
}

/* Hamburger overrides */
.hamburger.is-active .hamburger-inner,
.hamburger.is-active .hamburger-inner::before,
.hamburger.is-active .hamburger-inner::after {
  background-color: rgb(0, 30, 80);
}

.hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {
  background-color: rgb(0, 30, 80);
}

.hamburger {
  border: none;
  outline: none;
  background: transparent;
  display: block;
  pointer-events: all;
  cursor: pointer;
  margin-left: 1px; /* The balance is changed by the ziggy-zaggy stripes */
}

.hamburger--spring .hamburger-inner::before {
  width: 55%;
}

.hamburger--spring .hamburger-inner::after {
  width: 75%;
}

.hamburger--spring.is-active .hamburger-inner::before, .hamburger--spring.is-active .hamburger-inner::after {
  width: 100%;
}

.hamburger:focus {
  border: none;
  outline: none;
  box-shadow: none;
}

.hamburger-box {
  display: block;
}

.hamburgerWrap {
  z-index: 2601;
  left: 0px;
  position: fixed;
  top: 0;
  cursor: pointer;
}

.hamburgerWrap {
  background-color: white;
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}

.hamburgerWrap {
  top: var(--headerOffset);
  left: var(--headerOffset);
  width: var(--hamburgerDiameter);
}

.jBox-Modal .jBox-container {
  border-radius: 0;
}

.jBox-Modal .jBox-content {
  padding: 15px 20px;
}
@media (max-width: 650px) {
  .jBox-Modal .jBox-content {
    padding: 0px 12px;
  }
}

#generic .closeBtn {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 28px;
  z-index: 100;
  cursor: pointer;
}
#generic .closeBtn img {
  width: 100%;
  height: auto;
}

.jBox-Modal .jBox-title {
  font-family: vw-bold;
  padding: 15px 20px 0 15px;
  background: none;
  border: none;
}

#uploadTerms.jBox-Modal .jBox-content, #newsletterTerms.jBox-Modal .jBox-content {
  padding-bottom: 0;
}

.jBox-closeButton {
  display: none;
}

.overlayBox {
  height: 100%;
}
.overlayBox .content {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.overlayBox .bodyWrap {
  flex-grow: 1;
  overflow: auto;
  position: relative;
  width: 85%;
  border: 1px solid var(--color_blueLight);
  padding: 1em;
  border-radius: 20px;
  align-self: center;
  margin-bottom: 3em;
}
.overlayBox .body {
  position: relative;
  overflow: auto;
  width: 100%;
  height: 100%;
}
.overlayBox .body a, .overlayBox .body a:visited, .overlayBox .body a:active, .overlayBox .body a:hover {
  color: black;
}
.overlayBox .closeBtn {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 28px;
  z-index: 100;
  cursor: pointer;
}
.overlayBox .closeBtn img {
  width: 100%;
  height: auto;
}
.overlayBox h3 {
  font-size: 35px;
  font-family: vw-bold;
  margin-top: 40px;
  margin-bottom: 1em;
  text-align: center;
}
.overlayBox h4 {
  font-size: inherit;
  font-family: vw-bold;
  margin-top: 1.1em;
  margin-bottom: 0em;
}
@media (max-height: 600px) {
  .overlayBox h3 {
    margin-top: 14px;
    margin-bottom: 0.7em;
  }
  .overlayBox .bodyWrap {
    margin-bottom: 1.5em;
  }
}
.overlayBox.newsletterTerms .bodyWrap, .overlayBox.uploadTerms .bodyWrap {
  margin-bottom: 0;
}
.overlayBox .acceptButtons {
  display: flex;
  justify-content: center;
  gap: 1em;
  align-items: center;
  margin-top: 1.8em;
  margin-bottom: 1.8em;
}
.overlayBox .acceptButtons button {
  border-radius: 2em;
  padding: 0.5em 1.2em 0.7em 1.2em;
  display: flex;
  white-space: nowrap;
  cursor: pointer;
}
.overlayBox .acceptButtons button.reject {
  border: 0.5px solid var(--color_blueLight);
  color: var(--color_blueDark);
}
.overlayBox .acceptButtons button.accept {
  border: 0.5px solid var(--color_blueDark);
  background-color: var(--color_blueDark);
  color: white;
  transition-property: border background-color color;
  transition-duration: 0.35s, 0.35s, 0.35s;
  transition-timing-function: ease-out;
  /*transition-delay: 0s, 0s, 0s, 0.2s;*/
}
.overlayBox .acceptButtons button.accept.isDisabled {
  border: 0.5px solid #ccc;
  background-color: #ccc;
  color: #eee;
  pointer-events: none;
  cursor: default;
}
@media (max-width: 650px) {
  .overlayBox h3 {
    font-size: 26px;
    margin-bottom: 0.7em;
  }
  .overlayBox .bodyWrap {
    padding: 1em;
    border-radius: 14px;
    width: 96%;
    align-self: center;
    margin-bottom: 1.5em;
  }
  .overlayBox .acceptButtons {
    margin-top: 1em;
    margin-bottom: 1em;
  }
}

.scrollToBottomInfo {
  pointer-events: none;
  font-family: vw-bold;
  text-align: center;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  padding-bottom: 1em;
  padding-top: 2em;
  background: linear-gradient(0deg, white, 80%, rgba(255, 255, 255, 0));
  z-index: 10;
  width: 100%;
  display: none;
}

.scrollDownIndicator {
  pointer-events: none;
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 100;
  width: 60px;
  height: 60px;
  animation: arrow-pulse-down 1000ms linear infinite;
}
.scrollDownIndicator svg {
  width: 100%;
  height: 100%;
  display: none;
}
.scrollDownIndicator .st0 {
  fill: #2C2A29;
}

@keyframes arrow-pulse-down {
  0% {
    transform: translate(-50%, -40%);
    opacity: 0;
  }
  25% {
    opacity: 0.25;
  }
  50% {
    opacity: 0.5;
  }
  75% {
    opacity: 0.75;
  }
  100% {
    transform: translate(-50%, -10%);
    opacity: 1;
  }
}
/**** Prizes *****/
.prizes .body {
  display: flex;
  align-items: center;
}
.prizes .body .prizeIllu {
  width: 45%;
  flex-shrink: 0;
  margin-right: 5%;
  margin-left: 5%;
  max-width: 28em;
}
.prizes .body .prizeDesc {
  margin-right: 5%;
  max-width: 30em;
}
@media (max-width: 1000px) {
  .prizes .body {
    flex-direction: column;
    justify-content: center;
  }
  .prizes .body .prizeIllu {
    margin: 0;
    width: 60%;
    max-width: 38vh;
  }
  .prizes .body .prizeDesc {
    margin-right: 0;
  }
}
@media (max-width: 1000px) {
  .prizes .body .prizeIllu {
    width: 80%;
  }
}

/**** Quiz closed *****/
#quizClosed .bodyWrap {
  max-width: 58em;
  margin-left: auto;
  margin-right: auto;
}
#quizClosed .body {
  display: flex;
  gap: 2em;
  padding: 1em;
}
#quizClosed .body .submitbtn {
  background-color: rgb(0, 30, 80);
  color: white;
}
#quizClosed .expoImg {
  flex-grow: 0;
  flex-shrink: 0;
}
#quizClosed .expoImg img {
  max-width: 100%;
  width: 100%;
}
#quizClosed .expoImgDesktop {
  width: 35%;
}
#quizClosed .expoImgMobile {
  display: none;
}
#quizClosed .content {
  flex-grow: 1;
}
#quizClosed b {
  font-family: vw-bold;
}
#quizClosed .winnerHeadline {
  font-size: 1.4em;
  font-family: vw-bold;
  margin-bottom: 0.3em;
}
#quizClosed .winner {
  margin-bottom: 0.3em;
}
#quizClosed .winnerType {
  font-family: vw-bold;
}
@media (max-width: 1150px) {
  #quizClosed .body {
    flex-direction: column;
  }
  #quizClosed .expoImgDesktop {
    display: none;
  }
  #quizClosed .expoImgMobile {
    display: block;
    float: right;
    width: 35%;
    padding-left: 1em;
  }
}
@media (max-width: 1000px) {
  #quizClosed .expoImgMobile {
    width: 45%;
  }
}
@media (max-width: 800px) {
  #quizClosed .expoImgMobile {
    padding: 0;
    float: unset;
    width: 80%;
    margin: 1em 0 1em 0;
  }
}
@media (max-width: 520px) {
  #quizClosed .body {
    padding: 0;
  }
  #quizClosed .expoImgMobile {
    width: 100%;
    margin: 1em auto 1em auto;
  }
}

.bg_decor {
  position: absolute;
  z-index: 1;
  overflow: hidden;
}
.bg_decor img {
  width: 100%;
  height: auto;
}

/* Left side */
.bg_decor_spruce_left {
  top: 0;
  left: 0;
  width: calc(490px * var(--decorScale));
}

.bg_decor_gingerbreadman {
  top: 43%;
  left: calc(177px * var(--decorScale));
  width: calc(220px * var(--decorScale));
  z-index: 2;
}
.bg_decor_gift {
  z-index: 15;
  bottom: 0;
  left: 0;
  width: calc(345px * var(--decorScale));
}
.bg_decor_gift img {
  transform: translate(-11%, 27%);
}

/* Right side */
.prizeexpo_sign {
  top: 0;
  right: calc(304px * var(--decorScale));
  width: calc(420px * var(--decorScale));
}
.prizeexpo_sign img {
  transform: translate(0, -33%);
}

.bg_decor_spruce_right {
  top: 0;
  right: 0;
  width: calc(250px * var(--decorScale));
}
.bg_decor_spruce_right img {
  transform: translate(0, 9%);
}

.bg_decor_ballsred {
  top: calc(166px * var(--decorScale));
  right: calc(160px * var(--decorScale));
  width: calc(257px * var(--decorScale));
  z-index: 2;
}

.bg_decor_ballgold {
  top: 50%;
  right: calc(160px * var(--decorScale));
  width: calc(194px * var(--decorScale));
  z-index: 2;
}
.bg_decor_car {
  z-index: 15;
  bottom: 0;
  right: 0;
  width: calc(340px * var(--decorScale));
}
.bg_decor_car img {
  transform: translate(13%, 37%);
}

/*.introWrap, .inputOuter { display: none;}*/
body {
  --decorScale: 1.4;
}

@media (max-width: 2000px), (max-height: 1000px) {
  body {
    --decorScale: 1.0;
  }
}
@media (max-width: 1500px), (max-height: 800px) {
  body {
    --decorScale: 0.85;
  }
}
@media (max-width: 1300px), (max-height: 700px) {
  body {
    --decorScale: 0.75;
  }
}
@media (max-width: 1200px) {
  body {
    --decorScale: 0.75;
  }
  /* Less left/right margin */
  .prizeexpo_sign {
    right: calc(270px * var(--decorScale));
  }
  .bg_decor_ballsred {
    right: calc(126px * var(--decorScale));
  }
  .bg_decor_ballgold {
    right: calc(90px * var(--decorScale));
  }
  .bg_decor_gingerbreadman {
    left: calc(100px * var(--decorScale));
  }
}
@media (max-width: 1100px) {
  .prizeexpo_sign {
    right: calc(240px * var(--decorScale));
  }
  .bg_decor_ballsred {
    right: calc(96px * var(--decorScale));
  }
  .bg_decor_spruce_right {
    display: block;
  }
  .bg_decor_spruce_right img {
    transform: translate(20%, 9%);
  }
}
@media (max-width: 1000px) {
  .prizeexpo_sign {
    right: calc(84px * var(--decorScale));
  }
  .bg_decor_ballsred {
    right: calc(-60px * var(--decorScale));
  }
  .bg_decor_spruce_right {
    display: none;
  }
  .bg_decor_gingerbreadman {
    left: 0;
  }
  .bg_decor_gingerbreadman img {
    transform: translate(-28%, 0);
  }
  .bg_decor_ballgold {
    right: 0;
  }
  .bg_decor_ballgold img {
    transform: translate(28%, 0);
  }
}
@media (max-width: 850px) {
  .bg_decor_spruce_left {
    width: calc(390px * var(--decorScale));
  }
}
@media (max-width: 720px) {
  /* Mobile change to vw sizing */
  .prizeexpo_sign {
    right: unset;
    left: 0;
    width: 79vw;
  }
  .prizeexpo_sign img {
    transform: translate(-23%, -15%);
  }
  .bg_decor_ballsred {
    right: 6.5vw;
    top: 22vw;
    width: 37vw;
  }
  .bg_decor_gingerbreadman {
    width: 30vw;
    top: 0;
    left: unset;
    right: 0;
  }
  .bg_decor_gingerbreadman img {
    transform: translate(38%, 0);
  }
  .bg_decor_gift {
    width: 48vw;
  }
  .bg_decor_gift img {
    transform: translate(-32%, 20%);
  }
  .bg_decor_car {
    width: 35vw;
  }
  .bg_decor_car img {
    transform: translate(17%, 6.5%);
  }
  .bg_decor_spruce_left {
    display: none;
  }
  .bg_decor_ballgold {
    display: none;
  }
}
#cookiemgmt *,
#cookiemgmt *::before,
#cookiemgmt *::after {
  box-sizing: border-box;
}

#cookiemgmt {
  outline: none;
}

#ensModalWrapper {
  position: fixed;
  z-index: 99999;
  left: 0 !important;
  top: 0;
  width: 100%;
  height: 100%;
  display: none;
  padding-top: 100px;
  box-sizing: border-box;
  color: black;
  font-family: "vw-text", sans-serif;
  font-weight: normal;
  font-style: normal;
  font-size: 14px;
  line-height: 20px;
  background: rgba(0, 0, 0, 0.5);
}

@media (min-width: 600px) {
  #ensModalWrapper {
    padding-bottom: 32px;
  }
}
@media (max-height: 400px) {
  #ensModalWrapper {
    padding: 0;
  }
}
.ensModal {
  margin-left: auto;
  margin-right: auto;
  max-height: 100%;
  overflow-y: auto;
  background: #ffffff;
  padding: 0 8.33vw;
}

@media (min-width: 600px) {
  .ensModal {
    max-width: 600px;
    padding: 0 64px;
  }
}
.ensModal a {
  position: relative;
  display: inline;
  border: none;
  color: #001e50;
  text-decoration-line: underline;
  -webkit-text-decoration-line: underline;
  text-decoration-thickness: 1px;
  -webkit-text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

.ensModal a:focus {
  color: white;
  background-color: #0077cc;
  text-decoration-color: #001e50;
  -webkit-text-decoration-color: #001e50;
  text-decoration-thickness: 2px;
  -webkit-text-decoration-thickness: 2px;
  outline: none;
}

.ensModal a:active:before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgba(255, 255, 255, 0.2);
}

.ensModal a:hover:not(:focus) {
  background-color: rgba(194, 202, 207, 0.2);
}

.ensModal hr {
  border: 0;
  height: 2px;
  background: #e0e4e7;
  margin-top: 16px;
}

.ensModal .ensTitle {
  position: sticky;
  z-index: 1;
  top: 0;
  font-size: 20px;
  line-height: 24px;
  font-weight: bold;
  letter-spacing: -0.015em;
  text-align: center;
  background: #ffffff;
  border-bottom: solid 1px #dfe4e8;
  padding: 20px;
  margin: 0 -8.33vw 32px;
}

@media (min-width: 600px) {
  .ensModal .ensTitle {
    margin: 0 -64px 32px;
  }
}
@media (max-height: 400px) {
  .ensModal .ensTitle {
    padding: 15px;
  }
}
.ensModal .consentDescription {
  font-size: 16px;
  line-height: 24px;
}

.ensModal .ensButtons {
  position: sticky;
  bottom: 0;
  display: grid;
  gap: 8px;
  padding-top: 12px;
  padding-bottom: 56px;
  margin-top: 32px;
  box-shadow: #ffffff 0 0 16px 16px;
  background: #ffffff;
  text-align: center;
}

@media (min-width: 600px) {
  .ensModal .ensButtons {
    grid-auto-flow: column;
    gap: 20px;
    padding-bottom: 40px;
  }
}
.ensModal .button {
  position: relative;
  width: 100%;
  min-width: 200px;
  max-width: 250px;
  height: 44px;
  transition: all 0.2s ease-in-out;
  border-radius: 50px;
  padding: 0 32px;
  justify-self: center;
  cursor: pointer;
  border: 2px solid;
}

.ensModal .button:hover {
  transition: none;
}

.ensModal .button:hover::before {
  content: "";
  border-radius: 50px;
  position: absolute;
  inset: 0;
  margin: -2px;
}

.ensModal .button.grey {
  border-color: #001e50;
  background: #ffffff;
  color: #001e50;
}

.ensModal .button.grey:focus {
  background: #0077cc;
  color: #ffffff;
  outline: none;
}

.ensModal .button.grey:hover::before {
  background: rgba(194, 202, 207, 0.2);
}

.ensModal .button.blue {
  border-color: #001e50;
  background: #001e50;
  color: #ffffff;
}

.ensModal .button.blue:focus {
  background: #0077cc;
  color: #ffffff;
  outline: none;
}

.ensModal .button.blue:hover::before {
  background: rgba(255, 255, 255, 0.2);
}

.ensModal .ensToggleRowWrapper hr {
  display: none;
}

.ensModal .ensToggleRow {
  padding-top: 32px;
  font-size: 16px;
  line-height: 24px;
}

.ensModal .ensToggleRow .description {
  padding-inline-start: 36px;
  color: #000;
}

.ensModal .ensToggleLabel {
  position: relative;
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  margin: -0.11em 0 0.11em;
  font-weight: bold;
  color: #001e50;
  cursor: pointer;
}

.ensModal .ensToggleLabel:hover .card::before {
  display: block;
}

.ensModal .card {
  padding-inline-end: 12px;
  color: #001e50;
  outline: none !important;
}

.ensModal .card::before {
  display: none;
  content: "";
  position: absolute;
  top: -8px;
  left: -8px;
  height: 40px;
  width: 40px;
  background-color: rgba(194, 202, 207, 0.2);
  border-radius: 50%;
}

[dir=rtl] .ensModal .card::before {
  left: auto;
  right: -8px;
}

.ensModal .ensCheckbox {
  position: relative;
  width: 24px;
  height: 24px;
  user-select: none;
  pointer-events: none;
  appearance: none;
  -webkit-appearance: none;
  background-color: transparent;
  outline: none;
  border: none;
}

.ensModal .ensCheckbox::before,
.ensModal .ensCheckbox::after {
  position: absolute;
  width: 24px;
  height: 24px;
}

.ensModal .ensCheckbox::after {
  opacity: 0;
  content: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0iMDAxZTUwIj48cGF0aCBkPSJtOS41MzM0IDE3LjU3MzItNC45MDIzLTQuMDU0Ny44NDc2LTEuMDI1NCA0LjQzNjYgMy42NyA4LjU1NzEtMTIuMzk0NiAxLjA5MzcuNzU1OC04LjkyMzggMTIuODk4MmEuNzU2OS43NTY5IDAgMCAxIC0xLjEwODkuMTUwN3ptLjAzODYtLjkxMzItLjAwMi4wMDI5eiIvPjwvc3ZnPgo=");
}

.ensModal .ensCheckbox::before {
  content: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTIyLjY3IDEuMzN2MjEuMzRoLTIxLjM0di0yMS4zNHptMS4zMy0xLjMzaC0yNHYyNGgyNHoiLz48L3N2Zz4K");
}

.ensModal .ensCheckbox:checked::after {
  color: #001e50;
  opacity: 1;
}

.ensModal .ensCheckbox:checked:focus::after {
  filter: brightness(0) invert(1);
}

.ensModal .ensCheckbox:focus::before {
  background-color: #0077cc;
  box-shadow: 0 0 0 2.66px inset #001e50;
  color: #ffffff;
}

.ensModal .ensCheckbox:disabled {
  color: #dfe4e8;
  cursor: not-allowed;
  justify-self: center;
}

#cookiemgmt *,
#cookiemgmt *::before,
#cookiemgmt *::after {
  box-sizing: border-box;
}

#cookiemgmt {
  outline: none;
}

.ensNotifyBanner {
  position: fixed;
  z-index: 99999;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow-y: auto;
  /*   NOTE: For now we can't center the banner vertically to position close icon button correctly. This might change in future, once notifyBannerWrapper will be added.
      Therefore, instead of using justify-content: center; there is a workaround in place */
  display: block;
  padding-top: 100px;
  box-sizing: border-box;
  color: black;
  font-family: "vw-text", sans-serif;
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  line-height: 24px;
  background: rgba(0, 0, 0, 0.5);
}

@media (min-width: 600px) {
  .ensNotifyBanner {
    padding-bottom: 32px;
  }
}
@media (max-height: 400px) {
  .ensNotifyBanner {
    padding: 0;
  }
}
.ensNotifyBanner a {
  position: relative;
  display: inline;
  border: none;
  color: #001e50;
  text-decoration-line: underline;
  -webkit-text-decoration-line: underline;
  text-decoration-thickness: 1px;
  -webkit-text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

.ensNotifyBanner a:focus {
  color: white;
  background-color: #0077cc;
  text-decoration-color: #001e50;
  -webkit-text-decoration-color: #001e50;
  text-decoration-thickness: 2px;
  -webkit-text-decoration-thickness: 2px;
  outline: none;
}

.ensNotifyBanner a:active:before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgba(255, 255, 255, 0.2);
}

.ensNotifyBanner a:hover:not(:focus) {
  background-color: rgba(194, 202, 207, 0.2);
}

.ensNotifyBanner hr {
  border: 0;
  height: 2px;
  background: #e0e4e7;
  margin-top: 16px;
}

.ensNotifyBanner #ensBannerDescription {
  margin-left: auto;
  margin-right: auto;
  background: #ffffff;
  padding: 88px 8.33vw 16px;
  width: 100%;
  position: relative;
}

@media (min-width: 600px) {
  .ensNotifyBanner #ensBannerDescription {
    max-width: 600px;
    padding-left: 64px;
    padding-right: 64px;
  }
}
.ensNotifyBanner .ensPrivacyTitle {
  position: absolute;
  z-index: 1;
  top: 0;
  width: 100%;
  font-size: 20px;
  font-weight: bold;
  letter-spacing: -0.015em;
  text-align: center;
  background: #ffffff;
  border-bottom: solid 1px #dfe4e8;
  padding: 20px 40px;
  margin: 0 -8.33vw;
}

@media (min-width: 600px) {
  .ensNotifyBanner .ensPrivacyTitle {
    margin: 0 -64px;
  }
}
@media (max-height: 400px) {
  .ensNotifyBanner .ensPrivacyTitle {
    padding: 15px;
  }
}
.ensNotifyBanner .ensButtons {
  margin-left: auto;
  margin-right: auto;
  background: #ffffff;
  padding: 8px 8.33vw 56px;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 4px;
  padding-bottom: 56px;
  align-items: center;
  white-space: nowrap;
}

@media (min-width: 600px) {
  .ensNotifyBanner .ensButtons {
    flex-direction: row;
    max-width: 600px;
    padding: 10px 64px 40px;
  }
}
.ensNotifyBanner .button {
  position: relative;
  width: 100%;
  min-width: 150px;
  max-width: 250px;
  height: 44px;
  transition: all 0.2s ease-in-out;
  border-radius: 50px;
  padding: 0 32px;
  justify-self: center;
  cursor: pointer;
  border: 2px solid;
}

.ensNotifyBanner .button:hover {
  transition: none;
}

.ensNotifyBanner .button:hover::before {
  content: "";
  border-radius: 50px;
  position: absolute;
  inset: 0;
  margin: -2px;
}

.ensNotifyBanner .button.grey {
  border-color: #001e50;
  background: #ffffff;
  color: #001e50;
}

.ensNotifyBanner .button.grey:focus {
  background: #0077cc;
  color: #ffffff;
  outline: none;
}

.ensNotifyBanner .button.grey:hover::before {
  background: rgba(194, 202, 207, 0.2);
}

.ensNotifyBanner .button.blue {
  border-color: #001e50;
  background: #001e50;
  color: #ffffff;
}

.ensNotifyBanner .button.blue:focus {
  background: #0077cc;
  color: #ffffff;
  outline: none;
}

.ensNotifyBanner .button.blue:hover::before {
  background: rgba(255, 255, 255, 0.2);
}

.ensNotifyBanner button.link {
  line-height: inherit;
  background-color: transparent;
  padding: 0;
  cursor: pointer;
  position: relative;
  display: inline;
  border: none;
  color: #001e50;
  text-decoration-line: underline;
  -webkit-text-decoration-line: underline;
  text-decoration-thickness: 1px;
  -webkit-text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

.ensNotifyBanner button.link:focus {
  color: white;
  background-color: #0077cc;
  text-decoration-color: #001e50;
  -webkit-text-decoration-color: #001e50;
  text-decoration-thickness: 2px;
  -webkit-text-decoration-thickness: 2px;
  outline: none;
}

.ensNotifyBanner button.link:active:before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgba(255, 255, 255, 0.2);
}

.ensNotifyBanner button.link:hover:not(:focus) {
  background-color: rgba(194, 202, 207, 0.2);
}

.ensNotifyBanner #ensCloseBanner {
  all: unset;
  position: absolute;
  z-index: 1;
  top: 110px;
  right: 10px;
  width: 44px;
  height: 44px;
  width: 40px;
  height: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  border: solid 2px transparent;
  border-radius: 50%;
  box-sizing: border-box;
}

[dir=rtl] .ensNotifyBanner #ensCloseBanner {
  left: 12px;
  right: auto;
}

@media (max-height: 400px) {
  .ensNotifyBanner #ensCloseBanner {
    top: 5px;
  }
}
@media (min-width: 600px) {
  .ensNotifyBanner #ensCloseBanner {
    right: calc(50% - 300px + 10px);
  }
  [dir=rtl] .ensNotifyBanner #ensCloseBanner {
    left: calc(50% - 300px + 10px);
  }
}
@media (min-width: 600px) and (max-height: 400px) {
  .ensNotifyBanner #ensCloseBanner {
    right: calc(50% - 300px + 12px);
  }
  [dir=rtl] .ensNotifyBanner #ensCloseBanner {
    left: calc(50% - 300px + 12px);
  }
}
.ensNotifyBanner #ensCloseBanner::after {
  all: unset;
  content: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTIxLjQ3NCAzLjQ2Ny0uOTQyLS45NDEtOC41MzIgOC41MzMtOC41MzQtOC41MzMtLjk0Ljk0MSA4LjUzMyA4LjUzMy04LjUzMyA4LjUzMi45NC45NDIgOC41MzQtOC41MzMgOC41MzIgOC41MzMuOTQyLS45NDItOC41MzMtOC41MzJ6Ii8+PC9zdmc+Cg==");
  display: block;
  width: 24px;
  height: 24px;
}

.ensNotifyBanner #ensCloseBanner:hover {
  background: rgba(194, 202, 207, 0.2);
}

.ensNotifyBanner #ensCloseBanner:focus {
  background-color: #0077cc;
  border-color: #001e50;
  box-shadow: #001e50 0 0 0 1px inset;
}

.ensNotifyBanner #ensCloseBanner:focus::after {
  filter: brightness(0) invert(1);
}
