
* {
    margin: 0;
    padding: 0;
    font-family: sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-text-size-adjust: none;
    box-sizing: border-box;

}

.opacity-40 {
    opacity: 0.4 !important;
}

.pointer-events-none {
    pointer-events: none !important;
}

::-webkit-input-placeholder {
    color: #AAB7C5;
}

:-moz-placeholder {
    color: #AAB7C5;
    opacity: 1;
}

::-moz-placeholder {
    color: #AAB7C5;
    opacity: 1;
}

:-ms-input-placeholder {
    color: #AAB7C5;
}


/* General */

input[type="radio"] {
    -webkit-appearance: radio;
    display: none;
}

input#id_id_male_or_female_0_2, input#id_id_male_or_female_0_1 {
    display: block;
}

textarea {
    width: 300px;
    height: 150px;
}

.fa-check {
    display: inline-block;
    padding-right: 5px;
}

.radio {
    display: inline-block !important;
    margin-left: 80px !important;
}

.controls {
    margin-left: 50px;
    margin-right: 10px;
}

.includesInfo {
    padding-left: 60px;
}

body {
    display: flex;
    flex-direction: column;
    align-items: center;
    /*height: auto;*/
    /*min-height: 100vh;*/
    background-color: #F6F9FC;
    top: 0 !important;
}

header,
section {
    /*display: flex;*/
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;

}

table {
    font-size: 16px !important;
}

.category_table tr td:nth-child(3) {
    min-width: 120px;
}

tr {
    height: 1px;
}

td {
    padding: 5px;
    height: 100%;
}

label {
    cursor: pointer;
    display: block;
    min-height: 100%; /* for the latest browsers which support min-height */
    height: auto !important; /* for newer IE versions */
    height: 100%;
    /*    padding-top: 10px;
        padding-bottom: 10px;*/
}

p {
    color: #545454;
    font-weight: 500;
    text-align: center;
    margin-left: 10px;
    margin-right: 10px;
}

#top, .annotation {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    max-width: 800px;
}

.myCheckBox {
    width: 18px;
    height: 18px;
    margin-left: 20px !important;
}

.infoDrop {
    text-align: center;
}

.date-inline-select {
    width: auto;
    display: inline-block !important;
}

.method-summary-table {
    margin-left: 60px;
}

header {
    width: 100%;
    background-color: #2e353d;
    color: #FFF;
}

h1 {
    font-size: 36px;
    font-weight: 400;
}

a {
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

a.arrow {
    padding-right: 20px;
    background-image: url(/images/arrow-white.svg);
    background-position: right center;
    background-repeat: no-repeat;
}

.alert-success {
    color: white;
    background-color: rgba(70, 170, 107, 0.7);
    border: rgb(70, 170, 107);
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 4px;
}

.alert-danger {
    color: white;
    background-color: rgba(255, 0, 0, 0.5);
    border: rgb(255, 0, 0);
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 4px;
}

#content {
    flex: 1;
    margin-bottom: 125px;
}

/* Header, Top Bar, Navigation */

#top {
    height: 60px;
    line-height: 60px;
    font-size: 17px;
    font-weight: bold;
    border-bottom: 1px solid #11AB75;
}

#top .rocketrides {
    flex: 1;
    padding-left: 75px;
    background: url() left center no-repeat;
}

#top .links a {
    margin-left: 30px;
}

.title {
    margin: 10px 40px 10px 40px;
    text-align: center;
}

.title img {
    min-width: 150px;
    max-width: 200px;
}

nav {
    width: 100%;
    height: 50px;
}

nav .steps-container {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

nav .step {
    margin: 12px 20px;
    line-height: 26px;
    position: relative;
    padding-left: 36px;
}

nav .step::before {
    content: attr(data-step);
    display: inline-table;
    margin-right: 10px;
    background: #13B57D;
    color: #FFF;
    text-align: center;
    font-weight: bold;
    width: 26px;
    height: 26px;
    border-radius: 13px;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}


/* Footer */

footer {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    background: url(/images/mask.svg) top center repeat-x;
}


/* Forms */

.form {
    width: 540px;
    margin: 15px auto;
    overflow: hidden;
}


.form .checkmark {
    width: 100px;
    height: 100px;
    background: #FFF url(/images/checkmark-green.svg) center center no-repeat;
    background-size: 65px 45px;
    box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.15);
    border-radius: 50%;
    animation: slide-in-vertical 0.5s cubic-bezier(0.230, 1.000, 0.320, 1.000) both 0.5s;
}

.form section {
    padding: 30px 10px;
}

.form h2 {
    margin: 30px 0 15px;
    font-size: 19px;
    font-weight: 500;
    color: #32315E;
    text-align: center;
    animation: slide-in-vertical 0.5s cubic-bezier(0.230, 1.000, 0.320, 1.000) both 0.55s;
}

.form p.error {
    color: #FC7455;
}

.form h4 {
    margin: 15px 0;
    color: #8798AB;
    font-size: 16px;
    font-weight: 500;
    animation: slide-in-vertical 0.5s cubic-bezier(0.230, 1.000, 0.320, 1.000) both 0.5s;
}

fieldset, .receipt {
    animation: slide-in-vertical 0.5s cubic-bezier(0.230, 1.000, 0.320, 1.000) both 0.55s;
}

.form input[type="submit"],
.form button, .btn,
.form a.button {
    text-align: center;
    animation: slide-in-vertical 0.5s cubic-bezier(0.230, 1.000, 0.320, 1.000) both 0.6s;
}

.form label {

    color: #141414;
    animation: slide-in-vertical 0.5s cubic-bezier(0.230, 1.000, 0.320, 1.000) both 0.65s;
}


form {
    position: relative;
    width: 100%;
    font-size: 16px;
}

form aside {
    margin: -30px auto 0;
    line-height: 1.3em;
    font-size: 13px;
    text-align: center;
    color: #8798AB;
    animation: slide-in-vertical 0.5s cubic-bezier(0.230, 1.000, 0.320, 1.000) both 0.65s;
}

fieldset, .receipt {
    padding-top: 10px;
    position: relative;
    min-width: 0;
    margin-bottom: 40px;
    border-style: none;
    background-color: #FFF;
    box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.15);
    border-radius: 5px;
}

fieldset .row, .receipt .row {
    display: flex;
    align-items: flex-end;
    position: relative;
    width: 100%;
    padding: 10px 20px;
}

fieldset .row + .row, .receipt .row + .row {
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

fieldset .row::before, .receipt .row::before {
    content: attr(label);
    /*width: 100px;*/
    padding-right: 20px;
    color: #8798AB;
    font-weight: 500;
    text-align: right;
}


fieldset .row.select::after, .receipt .row.select::after {
    content: "";
    position: absolute;
    width: 9px;
    height: 5px;
    right: 20px;
    top: 50%;
    margin-top: -2px;
    background-image: url(/images/dropdown.svg);
    pointer-events: none;
}

fieldset .row input {
    flex: 1;
    border-style: none;
    font-size: 15px;
    color: #313B3F;

}

fieldset .row select {
    flex: 1;
    padding-right: 25px;
    text-align: center;
    /*border-style: none;*/
    outline: none;
    font-size: 16px;
    outline: none;
    color: #313B3F;
    cursor: pointer;
    background: transparent;
}

fieldset .row select:focus {
    color: #00B67C;
}

fieldset .row.date span {
    padding-right: 10px;
    color: #AAB7C5;
    font-weight: 500;
}

fieldset .row.date input {
    flex: 0;
    min-width: 35px;
}

fieldset .row.date input:last-child {
    flex: 1;
}

input[type="submit"],
button, .btn,
a.button {
    display: block;
    width: 100%;
    margin: 10px 0 20px 0;
    padding: 12px 20px;
    border-style: none;
    border-radius: 5px;
    /*background-color: #13B57D;*/
    box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.15);
    font-size: 17px;
    font-weight: 500;
    color: #FFF;
    cursor: pointer;
    outline: none;
}

#content a.button::after {
    content: '';
    position: absolute;
    width: 8px;
    height: 13px;
    margin: 5px 10px;
    background: url(/images/arrow-white.svg) right center no-repeat;
}

input[type="submit"].secondary {
    color: #313B3F;
    background: #FFF;
}

input[type="submit"].secondary:active {
    background: #F5F6F7;
}

button:hover, .btn:hover,
a.button:hover {
    text-decoration: none;
}

input[type="submit"]:active,
button:active,
a.button:active {
    background-color: #01966F;
}

header button,
header a.button,
header input[type="submit"] {
    margin: 15px 0 0;
    padding: 0 16px;
    height: 36px;
    line-height: 36px;
    background-color: #FFF;
    color: #13B57D;
    text-align: center;
}

header button:active,
header a.button:active,
header input[type="submit"]:active {
    background-color: #FFF;
    color: #01966F;
}

form a.button, .btn {
    text-align: center;
}

.btn-info {
    background-color: #46b8da;
}

.btn-default {
    background-color: #f6f9fc;
    border: 1px solid #31383f;
    color: #31383f;
}

label {
    font-size: 16px;
    padding-left: 10px;
}


.panel-bottom {
    border-bottom: 1px solid #d3d3d3;
    border-left: 1px solid #d3d3d3;
    border-right: 1px solid #d3d3d3;
    border-top: 3px solid #fff;
    z-index: 100000;
}


/* Media Queries */
@media screen and (max-width: 500px) {

    .category_table tr td:nth-child(3) {
        min-width: 90px;
    }

    table {
        font-size: 12px !important;
    }

    ol {
        padding-bottom: 0px !important;
    }

    p {
        margin-bottom: 2.5px;
    }

    .method-summary-table {
        margin-left: 10px;
    }

    .controls {
        margin-left: 30px;
    }

    #top {
        font-size: 15px;
        padding: 0 15px;
    }

    #top .links a {
        margin-left: 10px;
    }

    h1 {
        font-size: 28px;
    }

    .intro {
        padding: 15px;
        background: none;
    }

    .intro .illustration {
        display: none;
    }

    .intro h1 {
        font-size: 34px;
    }

    .intro h2 {
        font-size: 20px;
    }

    .title {
        margin: 10px 10px;
    }

    .title img {
        min-width: 80px;
        max-width: 100px;
    }

    nav ol li:not(.active) {
        position: absolute;
        opacity: 0;
        pointer-events: none;
    }

    nav ol li.done:last-child {
        position: inherit;
        opacity: 1;
    }

    footer {
        padding: 10px;
    }

    #content {
        width: 100%;
        padding-left: 15px;
        padding-right: 15px;

    }

    form {
        margin-top: 0;
        font-size: 15px;
    }

    fieldset .row, .receipt .row {
        padding: 12px 5px 13px;
    }

    .form {
        width: 100%;
        margin: 15px 0;
    }

    .form-group {
        margin-bottom: 0px !important;
    }

    .form label {
        padding-left: 5px;
    }

    .form .checkmark {
        width: 66px;
        height: 66px;
        background-size: 44px 30px;
    }

    .options span {
        display: none;
    }
}

@media screen and (max-width: 420px) {
    h3 {
        font-size: 22px !important;
    }
}

@media screen and (max-width: 350px) {
    form {
        font-size: 13px;
    }

    .controls {
        margin-left: 0px !important;
    }

    .selectMethodBox {
        font-size: 13px !important;
    }

    label {
        font-size: 11px;
        padding: 0px;
    }

}


.membership-card {
    --membership-primary: #0B3D2E;
    --membership-accent: #0E6642;
    --membership-border: rgba(9, 68, 44, 0.55);
    --membership-text: #FFFFFF;
    width: min(100%, 720px);
    aspect-ratio: 86 / 54;
    display: flex;
    border-radius: 20px;
    overflow: hidden;
    border: 3px solid var(--membership-border);
    box-shadow: 0 24px 48px rgba(11, 61, 46, 0.35);
    margin: 0 auto;
    background-image: repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.08) 0, rgba(255, 255, 255, 0.08) 12px, rgba(255, 255, 255, 0) 12px, rgba(255, 255, 255, 0) 24px),
    linear-gradient(135deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0)),
    linear-gradient(135deg, var(--membership-primary), var(--membership-accent));
    background-size: cover;
    color: #1F2937;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    font-size: clamp(12px, 1.8vw, 16px);
}

.membership-card:focus-within,
.membership-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 32px 60px rgba(11, 61, 46, 0.4);
}

.membership-card__column {
    flex: 1 1 0;
    min-width: 0;
    padding: clamp(16px, 3vw, 28px);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.membership-card__column--branding {
    flex: 1 1 42%;
    position: relative;
    color: var(--membership-text);
    background: linear-gradient(160deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0)),
    linear-gradient(160deg, rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0));
    backdrop-filter: blur(1px);
    text-align: center;
    align-items: center;
    gap: clamp(12px, 2.5vw, 20px);
}

.membership-card__branding {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(12px, 2.5vw, 16px);
    width: 100%;
}

.membership-card__logo-wrapper {
    background-color: rgba(255, 255, 255, 0.18);
    border-radius: clamp(12px, 2vw, 16px);
    padding: clamp(10px, 2vw, 14px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: min(140px, 70%);
}

.membership-card__logo {
    max-width: 100%;
    max-height: 96px;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.membership-card__club-name {
    font-size: clamp(18px, 3vw, 24px);
    font-weight: 600;
    letter-spacing: 0.4px;
}

.membership-card__term,
.membership-card__term-membership {
    font-size: clamp(12px, 1.8vw, 14px);
    letter-spacing: 0.4px;
    margin-bottom: 0;
    color: var(--membership-text);
}

.membership-card__term-membership {
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 1.2px;
}

.membership-card__column--codes {
    flex: 1 1 58%;
    background-color: var(--membership-text);
    background-image: linear-gradient(
            160deg,
            color-mix(in srgb, var(--membership-text) 92%, var(--membership-primary) 8%),
            color-mix(in srgb, var(--membership-text) 96%, var(--membership-accent) 4%)
    );
    display: flex;
    align-items: center;
    justify-content: center;
}

.membership-card__codes {
    width: 100%;
    display: flex;
    gap: clamp(12px, 3vw, 18px);
    justify-content: space-between;
}

.membership-card__code-block {
    background: color-mix(in srgb, var(--membership-text) 94%, var(--membership-primary) 6%);
    color: color-mix(in srgb, var(--membership-primary) 78%, var(--membership-text) 22%);
    border-radius: clamp(12px, 2vw, 16px);
    padding: clamp(12px, 3vw, 18px);
    flex: 1 1 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border: 1px solid color-mix(in srgb, var(--membership-accent) 35%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--membership-text) 60%, transparent),
    0 6px 14px -8px color-mix(in srgb, var(--membership-accent) 40%, transparent);
}

.membership-card__code-block h6 {
    font-weight: 700;
    font-size: clamp(11px, 1.6vw, 13px);
    text-transform: uppercase;
    letter-spacing: 1.1px;
    margin-bottom: clamp(10px, 2vw, 14px);
}

.membership-card__qr,
.membership-card__barcode {
    width: 100%;
    min-height: clamp(110px, 26vw, 160px);
    display: flex;
    align-items: center;
    justify-content: center;
}

#membershipCardQr {
    max-width: clamp(140px, 40vw, 180px);
    width: 100%;
    height: auto;
}

#membershipCardBarcode {
    width: 100%;
    height: clamp(80px, 22vw, 120px);
}

.membership-card__fallback {
    color: #4B5563;
    margin-top: 12px;
}

.membership-card-launch {
    margin-top: 12px;
}

@media (max-width: 900px) {
    .membership-card {
        width: min(100%, 640px);
    }
}

@media (max-width: 640px) {
    .membership-card {
        width: min(100%, 520px);
    }

    .membership-card__codes {
        gap: clamp(10px, 4vw, 14px);
    }
}

@media (max-width: 480px) {
    .membership-card {
        border-radius: 16px;
    }

    .membership-card__codes {
        gap: clamp(8px, 4vw, 12px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .membership-card,
    .membership-card:focus-within,
    .membership-card:hover {
        transition: none;
        transform: none;
    }
}


/* CSS Animations */
@keyframes slide-in-horizontal {
    0% {
        transform: translateY(100%);
    }
    100% {
        transform: none;
    }
}

@keyframes slide-in-vertical {
    0% {
        transform: translateY(50px);
        opacity: 0;
    }
    100% {
        transform: none;
        opacity: 1;
    }
}
  