* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

:root {
    --zest-green: rgb(47 236 135);
    --zest-dark-green: rgb(28 168 104);
    --zest-purple: rgb(45 41 77);
    --zest-light-purple: rgb(65 59 108);
    --club-zest-yellow: rgb(233 192 49);
    --club-zest-light-yellow: rgb(255, 216, 81);

    --grey: rgb(244 244 244);
    --dark-grey: rgb(220, 220, 220);
    --darker-grey: rgb(35, 35, 35);

    --dark-purple-transparent-80: rgb(45 41 75 / 0.8);
    --black-30: rgb(0 0 0 / .3);

    --zest-warning: rgb(255 204 51);
    --zest-warning-muted: rgb(255, 240, 182);
    --zest-error: rgb(182, 0, 0);
    --zest-error-muted: rgb(253, 227, 227);
    --zest-error-light: rgb(255, 95, 95);
    --zest-confirm: rgb(0 104 0);
    --zest-confirm-muted: rgb(221, 253, 226);
    --zest-confirm-light: rgb(0, 211, 0);
    --zest-info: rgb(0, 88, 168);
    --zest-info-muted: rgb(230, 243, 255);

    --page-width: 1080px;
    --border-radius: 4px;

    --extra-extra-small: 4px;
    --extra-small: 8px;
    --small: 16px;
    --medium: 24px;
    --large: 32px;
    --extra-large: 40px;

    accent-color: var(--zest-dark-green);

    --grid-item-width-80: 80px;
    --grid-item-width-104: 104px;
    --grid-item-width-120: 120px;
    --grid-item-width-180: 180px;
    --grid-item-width-232: 232px;
    --grid-item-width-288: 288px;
    --grid-item-width-336: 336px;
    --grid-item-width-352: 352px;
    --grid-item-width-400: 400px;
    --grid-item-width-504: 504px;

}

body {
    padding: 0 0 164px 0;
    margin: 0;
    font-family: "Open Sans", Arial, Helvetica, serif;
    color: var(--zest-purple);
    min-height: 100vh;
    position: relative;
    display: flex;
    flex-direction: column;
}

header {
    background-color: white !important;
    border-bottom: 1px solid var(--grey);
}

.hamburger-menu {
    position: absolute;
    display: none;
    border-left: 1px solid var(--grey);
    height: 92px;
    z-index: 999;
    width: 96px;
    right: 0;
    align-items: center;
    justify-content: center;
    background-color: white;
}

.hamburger-menu nav summary, .menu__box summary {
    display: none;
}

#menu__toggle {
    opacity: 0;
    right: 0;
}

#menu__toggle:checked + .menu__btn > span {
    transform: rotate(45deg);
}

#menu__toggle:checked + .menu__btn > span::before {
    top: 0;
    transform: rotate(0deg);
}

#menu__toggle:checked + .menu__btn > span::after {
    top: 0;
    transform: rotate(90deg);
}

#menu__toggle:checked ~ .menu__box {
    width: 300px;
    height: auto;
    padding: 64px 24px 24px 24px;
    font-size: 16px;
    right: 0;
    opacity: 1;
}

.menu__box {
    position: absolute;
    top: 0;
    font-size: 0;
    right: 0;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    opacity: 0;
    list-style: none;
    background-color: #eceff1;
    transition-duration: .20s;
}

.menu__btn {
    position: absolute;
    width: 24px;
    height: 96px;
    cursor: pointer;
    z-index: 1;
    display: flex;
    align-items: center;
}

#menu__toggle {
    opacity: 0;
    right: 0;
    width: 96px;
    height: 96px;
    cursor: pointer;
    display: flex;
    align-content: center;
    align-items: center;
}

.menu__btn > span,
.menu__btn > span::before,
.menu__btn > span::after {
    display: block;
    position: absolute;
    width: 100%;
    height: 2px;
    background-color: var(--darker-grey);
    transition-duration: .25s;
}

.menu__btn > span::before {
    content: "";
    top: -8px;
}

.menu__btn > span::after {
    content: "";
    top: 8px;
}

.menu__box ul {
    padding: 0;
    margin: 0 0 8px 0;
}

.menu__box ul li {
    list-style: none;
    padding-bottom: 16px;
    color: var(--zest-dark-green);
}

.menu__box li a {
    text-decoration: none;
    color: var(--zest-purple);
}

.menu__box li a:hover {
    text-decoration: underline;
    color: var(--zest-dark-green);
}

/* Text colour */
.white-text {
    color: white;
}

.green-text {
    color: var(--zest-green);
}

.info-text {
    color: var(--zest-info);
}

.dark-grey-text {
    color: var(--darker-grey);
}

.purple-text {
    color: var(--zest-purple);
}

.dark-green-text {
    color: var(--zest-dark-green);
}

.error-text {
    color: var(--zest-error);
}

.error-text-light {
    color: var(--zest-error-light);
}

.confirm-text {
    color: var(--zest-confirm);
}

.underlined {
    text-decoration: underline;
}

.text-decoration-none {
    text-decoration: none;
}

/* Background colour */
.white-background {
    background-color: #ffffff;
}

.dark-purple-background-transparent-80 {
    background-color: var(--dark-purple-transparent-80);
}

.black-background-30 {
    background-color: var(--black-30);
}

.grey-background {
    background-color: var(--grey);
}

.grey-background:has(select[required]:invalid),
.grey-background:has(input[required]:invalid),
.grey-background:has(textarea[required]:invalid) {
    border: 1px solid var(--zest-warning);
    background-color: var(--zest-warning-muted);
}

.grey-background:has(select:invalid):before,
.grey-background:has(input:invalid):before,
.grey-background:has(textarea:invalid):before {
    content: "Required";
    color: red;
    margin-bottom: 8px;
    display: block;
}

.dark-grey-background {
    background-color: var(--darker-grey);
}

.purple-background {
    background-color: var(--zest-purple);
}

.zest-green-background {
    background-color: var(--zest-green);
}

.zest-dark-green-background {
    background-color: var(--zest-dark-green);
}

.background-image {
    background-position: center;
    background-size: cover;
}

.svg-dark-green {
    filter: brightness(0) saturate(100%) invert(48%) sepia(96%) saturate(361%) hue-rotate(100deg) brightness(90%) contrast(92%);
}

.svg-clubzest-yellow {
    filter: brightness(0) saturate(100%) invert(90%) sepia(14%) saturate(2486%) hue-rotate(341deg) brightness(100%) contrast(83%);
}

.svg-white {
    filter: brightness(0) saturate(100%) invert(100%) sepia(100%) saturate(100%) hue-rotate(100deg) brightness(100%) contrast(100%);
}

.svg-purple {
    filter: brightness(0) saturate(100%) invert(16%) sepia(45%) saturate(605%) hue-rotate(207deg) brightness(98%) contrast(98%);
}

.svg-blue {
    filter: brightness(0) saturate(100%) invert(17%) sepia(98%) saturate(2797%) hue-rotate(196deg) brightness(90%) contrast(101%);
}

.svg-zest-green {
    filter: brightness(0) saturate(100%) invert(80%) sepia(16%) saturate(1918%) hue-rotate(86deg) brightness(97%) contrast(90%);
}

/* Headings */
h1, h2, h3, h4, h5 {
    font-family: "League Spartan", Arial, Helvetica, serif;
    font-weight: bold;
}

h1 {
    font-size: 56px;
    line-height: 60px
}

h2 {
    font-size: 40px;
    line-height: 44px
}

h3 {
    font-size: 32px;
    line-height: 36px
}

h4 {
    font-size: 24px;
    line-height: 28px
}

h5 {
    font-size: 20px;
    line-height: 24px
}

p {
    font-size: 16px;
    line-height: 24px;
}

.copy-text {
    font-size: 16px;
    line-height: 24px;
    margin-bottom: 24px;
}

.large-font {
    font-size: 24px;
    line-height: 24px;
    font-weight: bold;
}

.small-font {
    font-size: 14px;
    line-height: 24px;
}

.full-border-radius {
    border-radius: var(--border-radius)
}

.center {
    text-align: center;
    align-items: center;
    display: flex;
    flex-direction: column;
}

.text-right {
    text-align: right;
}

.text-left {
    text-align: left;
}

.pointer {
    cursor: pointer;
}

/* Containers */

.info-box {
    background-color: var(--zest-info-muted);
    border: 1px solid var(--zest-info);
}

.warning-box {
    background-color: var(--zest-warning-muted);
    border: 1px solid var(--zest-warning);
}

.warning-box:has(input) label {
    cursor: pointer;
}

.warning-box:has(input:checked) {
    background-color: var(--zest-green);
    border: 1px solid var(--zest-green);
}

.shadow {
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
}

.full-width {
    width: 100%;
}

.relative {
    position: relative;
}

.absolute {
    position: absolute;
}

.component-container {
    padding: 128px 0;
}

.component-container-small {
    padding: 64px 0;
}

.component-container-x-small {
    padding: 40px 0;
}

.component-container-xx-small {
    padding: 32px 0;
}

.inner-component-container {
    padding: 64px;
}

.grey-divider {
    border-bottom: 1px solid var(--dark-grey);
}

.border-grey {
    border: 1px solid var(--grey);
}

.border-bottom-grey {
    border-bottom: 1px solid var(--grey);
}

.border-red {
    border: 1px solid var(--zest-error);
}

.border-green {
    border: 1px solid var(--zest-confirm);
}

.border-dark-grey {
    border: 1px solid var(--dark-grey);
}

.border-bottom-dark-grey {
    border-bottom: 1px solid var(--dark-grey);
}

.two-col-grid {
    align-items: start;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(45%, 1fr));
    box-sizing: border-box;
    grid-gap: 32px;
}

/*Page width*/
.content-width {
    max-width: var(--page-width);
    margin: 0 auto;
    padding-left: 24px !important;
    padding-right: 24px !important;
    width: 100%;
}

/* Margin top */
.mt-xxs {
    margin-top: var(--extra-extra-small);
}

.mt-xs {
    margin-top: var(--extra-small);
}

.mt-s {
    margin-top: var(--small);
}

.mt-m {
    margin-top: var(--medium);
}

.mt-l {
    margin-top: var(--large);
}

.mt-xl {
    margin-top: var(--extra-large);
}

/* Margin top & bottom */
.my-xxs {
    margin-top: var(--extra-extra-small);
    margin-bottom: var(--extra-extra-small);
}

.my-xs {
    margin-top: var(--extra-small);
    margin-bottom: var(--extra-small);
}

.my-s {
    margin-top: var(--small);
    margin-bottom: var(--small);
}

.my-m {
    margin-top: var(--medium);
    margin-bottom: var(--medium);
}

.my-l {
    margin-top: var(--large);
    margin-bottom: var(--large);
}

.my-xl {
    margin-top: var(--extra-large);
    margin-bottom: var(--extra-large);
}

/* Margin bottom */
.mb-xs, .mb-xs-fixed {
    margin-bottom: var(--extra-small);
}

.mb-s, .mb-s-fixed {
    margin-bottom: var(--small);
}

.mb-m, .mb-m-fixed {
    margin-bottom: var(--medium);
}

.mb-l, .mb-l-fixed {
    margin-bottom: var(--large);
}

.mb-xl, .mb-xl-fixed {
    margin-bottom: var(--extra-large);
}

.mr-xxs {
    margin-right: var(--extra-extra-small);
}

.mr-xs {
    margin-right: var(--extra-small);
}

.mr-s {
    margin-right: var(--small);
}

.mr-m {
    margin-right: var(--medium);
}

.mr-l {
    margin-right: var(--large);
}

.mr-xl {
    margin-right: var(--extra-large);
}

/*margin*/
.m-xxs {
    margin: var(--extra-extra-small);
}

.m-xs {
    margin: var(--extra-small);
}

.m-s {
    margin: var(--small);
}

.m-m {
    margin: var(--medium);
}

.m-l {
    margin: var(--large);
}

.m-xl {
    margin: var(--extra-large);
}

/* Padding */
.p-xs, .p-xs-fixed {
    padding: var(--extra-small);
}

.p-s, .p-s-fixed {
    padding: var(--small);
}

.p-m, .p-m-fixed {
    padding: var(--medium);
}

.p-l, .p-l-fixed {
    padding: var(--large);
}

.p-xl, .p-xl-fixed {
    padding: var(--extra-large);
}

.pt-xs, .pt-xs-fixed {
    padding: var(--extra-small);
}

.pt-s, .pt-s-fixed {
    padding-top: var(--small);
}

.pt-m, .pt-m-fixed {
    padding-top: var(--medium);
}

.pt-l, .pt-l-fixed {
    padding-top: var(--large);
}

.pt-xl, .pt-xl-fixed {
    padding-top: var(--extra-large);
}

.pt-xs {
    padding-top: var(--extra-small);
}

.pt-s {
    padding-top: var(--small);
}

.pt-m {
    padding-top: var(--medium);
}

.pt-l {
    padding-top: var(--large);
}

.pt-xl {
    padding-top: var(--extra-large);
}

.pb-xs {
    padding-bottom: var(--extra-small);
}

.pb-s {
    padding-bottom: var(--small);
}

.pb-m {
    padding-bottom: var(--medium);
}

.pb-l {
    padding-bottom: var(--large);
}

.pb-xl {
    padding-bottom: var(--extra-large);
}

.flex {
    display: flex
}

.flex-grow {
    flex-grow: 1;
}

.flex-1 {
    flex: 1 1 0;
}

.flex-col {
    flex-direction: column;
}

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

.flex-wrap {
    flex-wrap: wrap;
}

.justify-between {
    justify-content: space-between;
}

.justify-end {
    justify-content: end;
}

.justify-center {
    justify-content: center;
}

.flex-end {
    align-items: flex-end;
}

.flex-space-between {
    justify-content: space-between
}

.flex-space-evenly {
    justify-content: space-evenly
}

.flex-align-top {
    align-items: flex-start
}

.align-items-center {
    align-items: center;
}

/*FAQ's*/
.FAQ details > summary span::after {
    content: "+";
    font-size: 40px;
}

.FAQ details[open] > summary {
    margin: 0;
}

details.faq > summary span {
    font-size: 24px;
}

details.accordion > summary span {
    font-size: 24px;
}

details.accordion > summary span::after {
    content: "+";
}

details.accordion[open] > summary span::after {
    content: "-";
}

details.accordion[open] > summary {
    margin-bottom: 0;
}

details.faq h3,
details.accordion h3 {
    font-size: 24px;
}

details.faq ul,
details.accordion ul {
    margin-left: 24px;
}

details.faq p,
details.faq ul,
details.accordion p,
details.accordion ul {
    margin-bottom: 16px;
}

details.faq p:last-child,
details.faq ul:last-child,
details.accordion p:last-child,
details.accordion ul:last-child {
    margin-bottom: 0;
}

#faq-all-results div:nth-child(odd) > details summary {
    background-color: var(--zest-purple);
    color: white;
}

/* Grid */
.grid {
    display: grid;
}

.grid-gap-xxs {
    grid-gap: var(--extra-extra-small);
}

.grid-gap-xs {
    grid-gap: var(--extra-small);
}

.grid-gap-s {
    grid-gap: var(--small);
}

.grid-gap-m {
    grid-gap: var(--medium);
}

.grid-gap-l {
    grid-gap: var(--large);
}

.grid-gap-xl {
    grid-gap: var(--extra-large);
}

.grid {
    display: grid;
}

.grid-row {
    grid-row: auto
}

.grid-col {
    grid-column: auto
}

.two-one-col-layout {
    display: grid;
    grid-template-columns: 2fr 1fr;
    grid-gap: 40px;
}

.two-col-layout, .two-col-layout-mobile-responsive {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-gap: 40px;
}

.one-two-col-layout {
    display: grid;
    grid-template-columns: 1fr 2fr;
    grid-gap: 40px;
}

.three-col-layout {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-gap: 40px;
}

.three-col-layout-container {
    container-type: inline-size;
    container-name: threeColWidth;
}

@container threeColWidth (max-width: 500px) {
    .three-col-layout {
        display: flex;
        flex-direction: column
    }
}

.grid-item-80 {
    grid-template-columns: repeat(auto-fill, minmax(var(--grid-item-width-80), 1fr));
}

.grid-item-104 {
    grid-template-columns: repeat(auto-fill, minmax(var(--grid-item-width-104), 1fr));
}

.grid-item-120 {
    grid-template-columns: repeat(auto-fill, minmax(var(--grid-item-width-120), 1fr));
}

.grid-item-180 {
    grid-template-columns: repeat(auto-fill, minmax(var(--grid-item-width-180), 1fr));
}

.grid-item-232 {
    grid-template-columns: repeat(auto-fill, minmax(var(--grid-item-width-232), 1fr));
}

.grid-item-288 {
    grid-template-columns: repeat(auto-fill, minmax(var(--grid-item-width-288), 1fr));
}

.grid-item-336 {
    grid-template-columns: repeat(auto-fill, minmax(var(--grid-item-width-336), 1fr));
}

.grid-item-352 {
    grid-template-columns: repeat(auto-fill, minmax(var(--grid-item-width-352), 1fr));
}

.grid-item-400 {
    grid-template-columns: repeat(auto-fill, minmax(var(--grid-item-width-400), 1fr));
}

.grid-item-504 {
    grid-template-columns: repeat(auto-fill, minmax(var(--grid-item-width-504), 1fr));
}

/* Buttons */

.button {
    max-width: 280px;
    padding: 16px 24px;
    font-size: 16px;
    font-family: "Open Sans", arial, serif;
    font-weight: bold;
    text-align: left;
    box-sizing: border-box;
    border-radius: var(--border-radius);
    text-decoration: none;
    cursor: pointer;
    height: 64px;
    display: flex;
    align-items: center;
    width: 100%;
}

.button:active {
    box-shadow: 6px 6px 10px -3px rgba(0, 0, 0, 0.7) inset;
}

.button span {
    position: relative;
    width: 100%;
    text-align: left;
    display: block;
    color: var(--zest-purple);
}

.button span::before {
    transform: rotate(40deg);
}

.button span::after {
    transform: rotate(-40deg);
}

.button span::before, .button span::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    display: block;
    width: 8px;
    height: 2px;
    margin-top: 0;
    margin-left: -8px;
    background-color: rgba(45, 41, 75, .8);
    -webkit-transition: all 100ms ease-out;
    -moz-transition: all 100ms ease-out;
    transition: all 100ms ease-out;
    transform-origin: 100% 50%;
}

.primary.button {
    background-color: var(--zest-green);
    border: none;
}

.primary.button:hover {
    background-color: var(--zest-dark-green);
    color: white;
}

.secondary.button {
    background-color: var(--zest-purple);
    border: none;
}

.secondary.button:hover {
    background-color: var(--zest-light-purple);
}

.secondary.button span, .tertiary.button span {
    color: white;
}

.secondary.button span::before, .secondary.button span::after, .tertiary.button span::before, .tertiary.button span::after {
    background-color: white
}

.tertiary.button {
    background: none;
    border: 1px solid #ffffff;
    color: #ffffff
}

.tertiary.button:hover {
    background: rgba(0, 0, 0, 0.4)
}

.tertiary-purple.button {
    background: none;
    border: 1px solid var(--zest-purple);
    color: var(--zest-purple);
}

.tertiary-purple.button:hover {
    background: var(--dark-purple-transparent-80);
    color: white;

}

.tertiary-purple.button:hover span {
    color: #ffffff;
}

.tertiary-purple.button:hover span::before, .tertiary-purple.button:hover span::after {
    background-color: white;
}

.border-button-hover {
    outline: solid 0 var(--zest-green);
    transition: outline 0.2s linear;
}

.border-button-hover:hover {
    outline-width: 4px;
}

/* Forms */

.radioInputs input[type="radio"] {
    width: auto;
}

.extras-input {
    border: 1px solid var(--dark-grey);
    padding: 16px 50px 16px 16px;
    border-radius: 4px;
    background: #ffffff;
    color: var(--zest-purple);
    box-sizing: border-box;
    -webkit-appearance: none;
    -moz-appearance: none;
    outline: 0;
}

.extras-selection {
    position: relative;
    border: 1px solid var(--dark-grey);
    padding: 16px 50px 16px 16px;
    border-radius: 4px;
    display: flex;
    flex-direction: column;
    color: var(--zest-purple);
    box-sizing: border-box;
    appearance: none;
    outline: 0;
    background-image: url(data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2012%2012%22%3E%3Ctitle%3Edown-arrow%3C%2Ftitle%3E%3Cg%20fill%3D%22%23000000%22%3E%3Cpath%20d%3D%22M10.293%2C3.293%2C6%2C7.586%2C1.707%2C3.293A1%2C1%2C0%2C0%2C0%2C.293%2C4.707l5%2C5a1%2C1%2C0%2C0%2C0%2C1.414%2C0l5-5a1%2C1%2C0%2C1%2C0-1.414-1.414Z%22%20fill%3D%22%23000000%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fsvg%3E);
    background-repeat: no-repeat;
    background-position: calc(100% + -16px);
}

.form-container .input-container.disabled:has(:disabled) {
    display: none;
}

.form-container h2 {
    color: var(--zest-purple);
}

/*New styles*/

.input-container {
    max-width: 500px;
    padding: 24px 16px;
    height: 80px;
    border-radius: 4px;
    box-sizing: border-box;
    background-color: #ffffff;
    outline: 0;
    margin-bottom: 32px;
    border: 2px solid #ffffff;
    font-size: 14px;
    line-height: 12px;
    letter-spacing: 0;
    text-transform: none;
    color: var(--zest-purple);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 7px;
    position: relative;
}

.input-container:has(select) {
    padding: 0;
}

.input-container select,
.input-container:has(select) span {
    padding: 0 16px;
}

.input-container:has(input:focus),
.input-container:has(input:active),
.input-container:has(select:focus),
.input-container:has(select:active),
.input-container:has(textarea:focus),
.input-container:has(textarea:active) {
    border: 2px solid var(--zest-green);
    outline: 0;
}

.input-container label {
    font-size: 14px;
}

.input-container input,
.input-container textarea,
.input-container select {
    font-family: "Open Sans", Arial, serif;
    display: block;
    color: var(--zest-purple);
    width: 100%;
    font-size: 16px;
    vertical-align: middle;
    outline: none;
    border: none;
    left: 0;
    right: 0;
    bottom: 0;
    margin-bottom: 0;
    background: none;
    box-sizing: border-box;
    border-radius: 4px;
    min-height: 24px;
}

.input-container select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url(data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2012%2012%22%3E%3Ctitle%3Edown-arrow%3C%2Ftitle%3E%3Cg%20fill%3D%22%23000000%22%3E%3Cpath%20d%3D%22M10.293%2C3.293%2C6%2C7.586%2C1.707%2C3.293A1%2C1%2C0%2C0%2C0%2C.293%2C4.707l5%2C5a1%2C1%2C0%2C0%2C0%2C1.414%2C0l5-5a1%2C1%2C0%2C1%2C0-1.414-1.414Z%22%20fill%3D%22%23000000%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fsvg%3E);
    background-repeat: no-repeat;
    background-position: calc(100% - 24px) 0;
}

.input-container textarea,
.input-container:has(textarea) {
    height: 150px;
}

.form_fields__field--has_warning + .warning {
    display: block;
    position: relative;
}

.input-container:has(select:valid) + .warning,
.input-container:has(input:valid) + .warning,
.input-container:has(textarea:valid) + .warning {
    display: none;
}

.input-container input::placeholder,
.input-container textarea::placeholder {
    color: var(--zest-error);
    font-size: 14px;
}

.form_fields__field--has_warning > .warning {
    display: block;
}

.form_fields__field--has_warning {
    border: 2px solid red !important;
}

.form_fields__field--has_warning::after {
    content: "❌";
    position: absolute;
    top: 40px;
    right: 24px;
    transform: translateY(-50%);
    color: var(--zest-error);
    display: block;
}

.input-container:has(input:required) span::after,
.input-container:has(textarea:required) span::after,
.input-container:has(select:required) span::after {
    content: "*";
    color: var(--zest-error);
    margin-left: 2px;
}

.input-container[hidden] {
    display: none;
}

.input-container select option {
    padding: 8px;
}

.dark-form-fields .input-container {
    background: var(--grey)
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
textarea:-webkit-autofill:focus,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px #ffffff inset !important;
}

.dark-form-fields input:-webkit-autofill,
.dark-form-fields input:-webkit-autofill:hover,
.dark-form-fields input:-webkit-autofill:focus,
.dark-form-fields textarea:-webkit-autofill,
.dark-form-fields textarea:-webkit-autofill:hover,
.dark-form-fields textarea:-webkit-autofill:focus,
.dark-form-fields select:-webkit-autofill,
.dark-form-fields select:-webkit-autofill:hover,
.dark-form-fields select:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px var(--grey) inset !important;
}

/*end of New styles*/

.form-container .form-field .warning {
    color: var(--zest-error);
    font-size: 12px;
    display: block;
}

@container formWidth (max-width: 400px) {
    .form-container .button-container {
        display: flex;
        flex-direction: column;
    }

    .form-container .button-container p {
        text-align: left;
    }
}

.logo, #tagline {
    width: 16%;
}

.logo img {
    max-width: 100%;
    min-width: 170px;
}

.top-menu {
    width: 100%;
}

.top-menu ul {
    list-style: none;
    align-items: center;
    width: 100%;

}

.top-menu ul li a {
    text-decoration: none;
    color: var(--zest-purple);
    font-size: 14px;
    font-weight: bold;
    padding: 28px 0;
    display: block;
}

.top-menu ul li a:hover {

    color: var(--zest-dark-green);
}

.top-menu ul li.active {
    font-size: 14px;
    color: var(--zest-dark-green);
    font-weight: bold;

}

.status {
    color: #ffffff;
    padding: 2px 16px;
    height: 24px;
    border-radius: 50px;
    font-size: 14px;
    display: flex;
    align-items: center;
    width: fit-content;
    min-width: 75px;
    text-align: center;
    justify-content: center;
}

.status.status--pending {
    color: var(--zest-info);
    background-color: var(--zest-info-muted);
    border: 1px solid var(--zest-info)
}

.status.status--cancelled {
    color: var(--zest-error);
    background-color: var(--zest-error-muted);
    border: 1px solid var(--zest-error)
}

.status.status--confirmed {
    color: var(--zest-confirm);
    background-color: var(--zest-confirm-muted);
    border: 1px solid var(--zest-confirm)
}

/*Pop-up*/

.popup-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 999;
}

.popup-content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: 500px;
    width: 90%;
    box-sizing: border-box
}

.close-icon {
    position: absolute;
    top: 10px;
    right: 10px;
    cursor: pointer;
    font-size: 20px;
}

/* usp bar */

.usp-container {
    color: white;
    container-type: inline-size;
    container-name: uspWidth;
    background-color: var(--grey);
}

.usp-container span {
    font-weight: bold;
    color: var(--zest-purple);
}

.usp.grid-row {
    max-width: var(--page-width);
    margin: 0 auto;
    padding: 0 40px;
}

.usp.grid-row .grid-item {
    padding: 16px 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.usp.grid-row .grid-item img {
    margin-right: 8px
}

.usp.grid-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
}

@container uspWidth (max-width: 750px) {
    .usp.grid-row .grid-item:nth-child(4) {
        display: none;
    }
}

@container uspWidth (max-width: 550px) {
    .usp.grid-row .grid-item:nth-child(3) {
        display: none;
    }
}

#payment_iframe {
    border: 0;
}

/* Footer */

footer {
    border-top: 8px solid var(--zest-green);
    bottom: 0;
    position: absolute;
    width: 100%;
    box-sizing: border-box;
    height: 164px;
    margin-top: auto;
}

footer > div {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
}

.zcr_tray {
    position: fixed;
    z-index: 900;
    top: 0;
    right: 100%;
    display: none;
    width: 100%;
    height: 100%;
    background-color: #ff00ff;
}

/*tick bullet component*/

.icon-bullets {
    display: flex;
    flex-direction: column;
}

.icon-bullets .icon-bullet {
    display: grid;
    grid-template-columns: 40px auto;
    grid-gap: 16px;
}

.icon-bullets .icon-bullet:last-child {
    margin-bottom: 0 !important;
}

.icon-bullets .icon-bullet .icon {
    border-radius: 100%;
    height: 40px;
    width: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.icon-bullets .icon-bullet .icon img {
    width: 16px;
}

/*Table*/

.zest-table {
    margin-top: 10px;
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--dark-grey);
}

.zest-table tr:last-child td {
    border-bottom: none;
}

.zest-table th,
.zest-table td {
    padding: 16px;
    border-bottom: 1px solid var(--dark-grey);
    text-align: left;
}

.zest-table th:nth-child(3),
.zest-table td:nth-child(3) {
    padding-right: 30px;
}

.zest-table th:last-child,
.zest-table td:last-child {
    text-align: right;
}

.zest-table td:last-child.loading {
    text-align: center;
}

.zest-table td.negative {
    color: red;
}

/*Menu Tiles*/

.menu-tiles {
    container-type: inline-size;
    container-name: menutilesWidth;
}

.menu-tiles .grid-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
    grid-gap: 40px;
}

.menu-tiles .grid-container .grid-item {
    padding: 40px;
    position: relative;
    text-decoration: none;
}

.menu-tiles .grid-container .grid-item .icon {
    margin-bottom: 8px;
}

@container menutilesWidth (max-width: 480px) {
    .menu-tiles .grid-container {
        grid-gap: 24px;
    }
}

/*Modal*/

#confetti {
    overflow-y: hidden;
    overflow-x: hidden;
    width: 100%;
    margin: 0;
    height: 100%;
    position: absolute;
    top: 0;
}

.modal-overlay {
    position: fixed;
    z-index: 10000;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: none;
    overflow: auto;
    text-align: center;
    background: rgba(0, 0, 0, 0.7);
}

.modal-content {
    position: relative;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: #2d294d;
    padding: 60px 100px;
    z-index: 500;
    border: 4px solid #e9c031;
    border-radius: 5px;
    color: #ffffff;
}

.modal .close-modal {
    position: absolute;
    right: 0;
    top: 0;
    width: 32px;
    height: 32px;
    opacity: 0.3;
    cursor: pointer;
    background: none;
    border: 0;
    z-index: 100;
}

.modal .close-modal:focus-visible {
    outline: none;
}

.modal .close-modal:hover {
    opacity: 1;
}

.modal .close-modal:before, .close-modal:after {
    position: absolute;
    content: " ";
    height: 24px;
    width: 5px;
    border-radius: 5px;
    background-color: #ffffff;
    top: 5px;
    right: 15px;
}

.modal .close-modal:before {
    transform: rotate(45deg);
}

.modal .close-modal:after {
    transform: rotate(-45deg);
}

dialog.modal {
    max-width: 900px;
    border-radius: 4px;
    overflow: hidden;
    padding: 48px;
    box-sizing: border-box;
    margin: auto;
    background-color: var(--zest-purple);
    color: white;
    border: 4px solid white;
}

dialog.modal.success {
    background-color: var(--zest-confirm);
}

dialog.modal.warning {
    background-color: var(--zest-warning);
}

dialog.modal.error {
    background-color: var(--zest-error);
}

::backdrop {
    background-color: #000000;
    opacity: 0.80;
}

/*Stats bar*/

.stats {
    container-type: inline-size;
    container-name: statsWidth;
}

.stats .grid-container .title {
    font-size: var(--large);
    font-weight: bold;
    font-family: "League Spartan", serif;
}

.stats .grid-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    grid-gap: 8px;
}

.stats .grid-container .grid-item {
    position: relative;
    text-decoration: none;
}

.stats .grid-container .grid-item h3 {
    margin-bottom: 0;
}

@container statsWidth (max-width: 480px) {
    .stats .grid-container {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(159px, 1fr));
        grid-gap: 8px;
    }

    .stats .grid-container .title {
        font-size: var(--medium)
    }
}

.payment-card-grid {
    display: flex;
    flex-wrap: wrap;
    grid-gap: var(--small);
    position: relative;
}

.payment-card-grid .payment-card {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    max-width: 350px;
    width: 100%;
    position: relative;

}

.payment-card-grid .payment-card.add-new {
    height: 75px;
}

.payment-card-grid .payment-card label {
    display: block;
    cursor: pointer;
}

.payment-card-grid .payment-card input {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

.payment-card-grid .payment-card input[type="radio"] {
    opacity: 0;
    z-index: 100;
}

.payment-card-grid .payment-card:has(input[type="radio"]:checked) {
    border: 1px solid var(--zest-green);
    border-radius: 4px;
}

.payment-card-grid .payment-card img {
    width: 50px;
}

.payment-card-grid .payment-card label {
    display: flex;
    align-items: center;
}

.payment-trust-marks img {
    max-width: 100px;
    height: 40px
}

.fieldset.payment {
    background: white url("../images/ajax-loader.gif") center center no-repeat;
}

.fieldset.payment iframe {
    box-sizing: border-box;
    width: 100%;
    height: 425px;
    border: none;
    margin: 0;
    padding: 0;
}

/*Trust marks bar*/

.trust-marks {
    container-type: inline-size;
    container-name: trustmarkWidth;
}

.trust-marks .grid-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(174px, 1fr));
    grid-gap: 32px;
}

.trust-marks .grid-container .grid-item {
    position: relative;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center
}

.trust-marks .grid-container .grid-item img {
    max-width: 120px;
}

@container trustmarkWidth (max-width: 480px) {
    .trust-marks .grid-container {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(159px, 1fr));
        grid-gap: 8px;
    }
}

/*Desktop*/
@media (max-width: 1080px) {

    .hamburger-menu {
        display: flex;
    }

    #tagline {
        width: 100%;
    }

    .desktop-only {
        display: none;
    }

    #tagline {
        margin-right: 90px;
        font-size: 14px;
    }

    body {
        padding: 0;
    }

    footer {
        height: auto;
        position: relative;
    }

    footer > div {
        grid-gap: var(--small);
        align-items: flex-start;
        flex-direction: column;
    }

    .two-col-grid, .two-one-col-layout, .one-two-col-layout {
        display: flex;
        flex-direction: column;
        grid-gap: 0;
    }

    .form-container div:last-of-type .input-container {
        margin-bottom: var(--large);
    }

    .top-menu {
        display: none;

    }

    #currency-menu {
        display: block;
    }
}

/*Tablet*/
@media (max-width: 820px) {

    #tagline, .logo {
        width: auto;
    }

    .zest-table.responsive {
        width: 100%;
        border: 0;
        border-collapse: collapse;
    }

    .zest-table.responsive thead {
        display: none;
    }

    .zest-table.responsive tbody,
    .zest-table.responsive tr {
        display: block;
    }

    .zest-table.responsive td {
        display: block;
        padding: 8px;
        border-bottom: 1px solid #cccccc;
    }

    .zest-table.responsive td:last-child {
        border-bottom: 0;
    }

    .zest-table.responsive td::before {
        display: block;
        font-weight: bold;
        margin-bottom: 5px;
    }

    .zest-table.responsive tr td:nth-child(odd) {
        background-color: var(--grey);

    }

    .zest-table.responsive tr {
        border: 1px solid #cccccc;
        margin-bottom: var(--large);
    }

    .zest-table.responsive td:is(.loading):before {
        display: none
    }

    .two-col-layout-mobile-responsive {
        display: flex;
        flex-direction: column;
    }

    .modal-content {
        padding: 40px 20px;
    }

    dialog {
        width: 90%;
    }

    .one-two-col-layout {
        display: flex;
        flex-direction: column;
    }

}

/*Mobile*/
@media (max-width: 480px) {

    .grid-item-120,
    .grid-item-180,
    .grid-item-232,
    .grid-item-288,
    .grid-item-336,
    .grid-item-352,
    .grid-item-400,
    .grid-item-504 {
        grid-template-columns: repeat(auto-fill, minmax(100%, 1fr));
    }

    /* Headings */
    .p-xs {
        padding: var(--extra-extra-small)
    }

    .p-s {
        padding: var(--extra-small)
    }

    .p-m {
        padding: var(--small)
    }

    .p-l {
        padding: var(--medium)
    }

    .p-xl {
        padding: var(--large)
    }

    .pt-xs {
        padding-top: var(--extra-extra-small)
    }

    .pt-s {
        padding-top: var(--extra-small)
    }

    .pt-m {
        padding-top: var(--small)
    }

    .pt-l {
        padding-top: var(--medium)
    }

    .pt-xl {
        padding-top: var(--large)
    }

    .pb-xs {
        padding-bottom: var(--extra-extra-small)
    }

    .pb-s {
        padding-bottom: var(--extra-small)
    }

    .pb-m {
        padding-bottom: var(--small)
    }

    .pb-l {
        padding-bottom: var(--medium)
    }

    .pb-xl {
        padding-bottom: var(--large)
    }

    .mb-xs {
        margin-bottom: var(--extra-extra-small)
    }

    .mb-s {
        margin-bottom: var(--extra-small)
    }

    .mb-m {
        margin-bottom: var(--small)
    }

    .mb-l {
        margin-bottom: var(--medium)
    }

    .mb-xl {
        margin-bottom: var(--large)
    }

    h1 {
        font-size: 40px;
        line-height: 48px
    }

    h2 {
        font-size: 32px;
        line-height: 40px
    }

    h3 {
        font-size: 24px;
        line-height: 32px
    }

    h4 {
        font-size: 16px;
        line-height: 24px
    }

    h5 {
        font-size: 14px;
        line-height: 18px
    }

    p {
        font-size: 16px;
        line-height: 24px;
    }

    .component-container {
        padding: 96px 0;
    }

    .component-container-small {
        padding: 48px 0;
    }

    .component-container-x-small {
        padding: 24px 0;
    }

    .component-container-xx-small {
        padding: 16px 0;
    }

    .inner-component-container {
        padding: 32px;
    }

    header > a {
        padding: 8px 24px;
    }

    .usp.grid-row {
        padding: 0 24px;
    }

    .button {
        width: 100%;
        max-width: 100%
    }

    .usp-container span {
        font-weight: normal;
        font-size: 14px;
    }

    #payment_iframe {
        height: 674px;
    }

    .fieldset.payment iframe {
        height: 674px;
    }

    .card-icon-container {
        flex-direction: column;
    }

}




