/* Date/time input tweaks to match design */
input[type="date"],
input[type="time"] {
    color-scheme: dark;
}

/* Hide default placeholder text for date field */
input[type="date"]::-webkit-datetime-edit-fields-wrapper {
    color: rgba(255, 255, 255, 0.9);
}

input[type="date"]::-webkit-datetime-edit-text {
    color: rgba(255, 255, 255, 0.6);
}

input[type="date"]::-webkit-datetime-edit-year-field,
input[type="date"]::-webkit-datetime-edit-month-field,
input[type="date"]::-webkit-datetime-edit-day-field {
    color: rgba(255, 255, 255, 0.9);
}

input[type="date"]::-webkit-calendar-picker-indicator {
    opacity: 0;
}

input[type="time"]::-webkit-calendar-picker-indicator {
    opacity: 0;
}

/* Hide dd/mm/yyyy placeholder when empty */
input[type="date"]:not(:focus):not(:valid)::-webkit-datetime-edit {
    opacity: 0;
}

input[type="date"]:focus::-webkit-datetime-edit {
    opacity: 1;
}

@import url('./fonts.css');

html {
    font-size: 14px;
    scroll-behavior: smooth;
}

:root {
    --section-spacing: 112px;
}

:root {
    --background: #ffffff;
    --foreground: #171717;

    --bg-gradient-from: #052C2B;
    --bg-gradient-to: #052C2B;
    --gradient-background: linear-gradient(180deg, var(--bg-gradient-from) 0%, var(--bg-gradient-to) 100%);
    --gradient-background-to-top: linear-gradient(0deg, var(--bg-gradient-from) 0%, var(--bg-gradient-to) 100%);
    --gradient-background-to-left: linear-gradient(90deg, var(--bg-gradient-from) 0%, var(--bg-gradient-to) 100%);

    /* Shadows */
    --card-shadow: 0px 1px 1px 0px rgba(0, 0, 0, 0.06), 0px -1px 1px 0px rgba(0, 0, 0, 0.06) inset,
        0px 12px 3px 0px rgba(0, 0, 0, 0), 0px 8px 3px 0px rgba(0, 0, 0, 0.01),
        0px 4px 3px 0px rgba(0, 0, 0, 0.03), 0px 2px 2px 0px rgba(0, 0, 0, 0.05),
        0px 0px 1px 0px rgba(0, 0, 0, 0.06);

    --black-card-shadow: 0px 1px 1px 0px rgba(0, 0, 0, 0.06),
        0px -1px 1px 0px rgba(0, 0, 0, 0.06) inset, 0px 12px 3px 0px rgba(0, 0, 0, 0),
        0px 8px 3px 0px rgba(0, 0, 0, 0.01), 0px 4px 3px 0px rgba(0, 0, 0, 0.03),
        0px 2px 2px 0px rgba(0, 0, 0, 0.05), 0px 0px 1px 0px rgba(0, 0, 0, 0.06);

    --blue-card-shadow: 0px 59px 16px -8px rgba(120, 149, 206, 0),
        0px 38px 15px -8px rgba(120, 149, 206, 0.01), 0px 21px 13px -8px rgba(120, 149, 206, 0.04),
        0px 9px 9px -4px rgba(120, 149, 206, 0.07), 0px 2px 5px 0px rgba(120, 149, 206, 0.08);

    --stroke-shadow: 0px 1px 2px 0px rgba(164, 172, 185, 0.24), 0px 0px 0px 1px rgba(18, 55, 105, 0.08);

    /* Surface color palette (RGB) */
    --surface-0: 255, 255, 255;
    /* #FFFFFF */
    --surface-100: 246, 248, 252;
    /* #F6F8FC */
    --surface-200: 236, 240, 244;
    /* #ECF0F4 */
    --surface-300: 214, 219, 229;
    /* #D6DBE5 */
    --surface-400: 169, 177, 188;
    /* #A9B1BC */
    --surface-500: 120, 134, 148;
    /* #788694 */
    --surface-600: 85, 95, 110;
    /* #555F6E */
    --surface-700: 59, 66, 78;
    /* #3B424E */
    --surface-800: 40, 45, 55;
    /* #282D37 */
    --surface-900: 24, 27, 33;
    /* #181B21 */
    --surface-950: 18, 18, 23;
    /* #121217 */
}

@media (prefers-color-scheme: dark) {
    :root {
        --background: #0a0a0a;
        --foreground: #ededed;
    }
}

body {
    color: rgb(var(--surface-950));
    background: rgb(var(--surface-0));
}

.dark body {
    color: rgb(var(--surface-0));
    background: rgb(var(--surface-950));
}

/* Utilities re-created without @apply */
.text-balance {
    text-wrap: balance;
}

.landing-section {
    margin-top: var(--section-spacing) !important;
}

@media (min-width: 640px) {
    .landing-section {
        margin-top: var(--section-spacing) !important;
    }
}

@media (min-width: 1024px) {
    .landing-section {
        margin-top: var(--section-spacing) !important;
    }
}

[data-lang] .lang-menu {
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 20px;
    padding: 4px;
    backdrop-filter: blur(48px);
    -webkit-backdrop-filter: blur(48px);
    min-width: 10px;
    width: fit-content;
    width: -moz-fit-content;
    width: max-content;
    box-shadow: var(--black-card-shadow);
}

[data-lang] .lang-option {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 6px 10px;
    border-radius: 14px;
    color: rgba(255, 255, 255, 0.90);
    cursor: pointer;
}

[data-lang] .lang-option+.lang-option {
    border-top: 1px dashed rgba(255, 255, 255, 0.12);
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

[data-lang] .lang-option:hover {
    background: rgba(255, 255, 255, 0.12);
    border-radius: 14px;
}

[data-lang] .lang-option.active::after {
    content: '';
    width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 12.5l4 4 10-10' stroke='%23FFFFFF' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
}

/* Components */
.title {
    font-size: 3.75rem;
    line-height: 1.25;
    font-weight: 600;
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.85) 5%, rgba(255, 255, 255, 1) 90%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.description {
    font-size: 1.125rem;
    line-height: 1.75rem;
    color: rgba(255, 255, 255, 0.64);
}

@media (min-width: 1024px) {
    .description {
        font-size: 1.25rem;
    }
}

.button-regular {
    min-width: 7rem;
    padding: 0.5rem 1.25rem;
    border-radius: 9999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-weight: 500;
    color: rgb(var(--surface-950));
    background: #fff;
    cursor: pointer;
    transition: opacity .2s ease;
    box-shadow: 0px 10px 10px -8px rgba(18, 18, 23, 0.12), 0px 2px 2px -1.5px rgba(18, 18, 23, 0.06), 0px 1px 1px -0.5px rgba(18, 18, 23, 0.04), 0px 0px 0px 1px rgba(18, 18, 23, 0.06);
}

.button-regular:hover {
    opacity: .8;
}

.button-outlined {
    min-width: 7rem;
    padding: 0.5rem 1.25rem;
    border-radius: 9999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-weight: 500;
    color: #fff;
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, .24);
    background: rgba(255, 255, 255, .10);
    cursor: pointer;
    transition: all .2s ease;
}

.button-outlined:hover {
    background: rgba(255, 255, 255, .24);
    opacity: .8;
}

.button-gradient {
    min-width: 7rem;
    padding: 0.5rem 1.25rem;
    border-radius: 9999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-weight: 500;
    color: rgb(var(--surface-0));
    background: var(--gradient-background);
    cursor: pointer;
    transition: opacity .2s ease;
    box-shadow: var(--blue-card-shadow);
}

.button-gradient:hover {
    opacity: .8;
}

.button-blur {
    height: 2.75rem;
    padding: 0 1.25rem;
    border-radius: 9999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: rgba(255, 255, 255, .16);
    border: 1px solid rgba(255, 255, 255, .08);
    color: rgb(var(--surface-0));
    font-weight: 500;
    transition: all .2s ease;
    backdrop-filter: blur(48px);
    box-shadow: 0px 2px 5px 0px rgba(255, 255, 255, 0.06) inset, 0px 12px 20px 0px rgba(0, 0, 0, 0.06);
}

.button-blur:hover {
    background: rgba(255, 255, 255, .24);
}

.badge {
    display: inline-block;
    padding: 0.25rem 0.875rem;
    border-radius: 9999px;
    border: 1px solid rgb(var(--surface-300));
    background: rgb(var(--surface-0));
    color: rgb(var(--surface-950));
    font-weight: 500;
    box-shadow: 0px 1px 2px 0px rgba(18, 18, 23, 0.05);
}

.container {
    max-width: 1152px;
    padding-left: 1rem;
    padding-right: 1rem;
    margin-left: auto;
    margin-right: auto;
}

.icon-box {
    width: 5rem;
    height: 5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    margin-right: auto;
    background: var(--gradient-background);
    border-radius: 1.5rem;
    box-shadow: 0px 2px 3px 0px rgba(255, 255, 255, 0.25) inset, 0px 19px 5px 0px rgba(0, 0, 0, 0), 0px 12px 5px 0px rgba(0, 0, 0, 0.01), 0px 7px 4px 0px rgba(0, 0, 0, 0.05), 0px 3px 3px 0px rgba(0, 0, 0, 0.09), 0px 1px 2px 0px rgba(0, 0, 0, 0.10);
}

/* Inputs base (to match bg-input, borders, blur) */
.input-like {
    background: rgb(54, 85, 85);
    border-radius: 9999px;
    padding: 0.75rem 1.5rem;
    font-size: 1.125rem;
    color: rgba(255, 255, 255, 0.9);
    outline: none;
    border: 1px solid rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(48px);
    box-shadow: 0px 2px 5px 0px rgba(255, 255, 255, 0.06) inset, 0px 12px 20px 0px rgba(0, 0, 0, 0.06);
}

.textarea-like {
    background: rgb(54, 85, 85);
    border-radius: 1.5rem;
    padding: 0.75rem 1.5rem;
    font-size: 1.125rem;
    color: rgba(255, 255, 255, 0.9);
    outline: none;
    border: 1px solid rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(48px);
    box-shadow: 0px 2px 5px 0px rgba(255, 255, 255, 0.06) inset, 0px 12px 20px 0px rgba(0, 0, 0, 0.06);
}

/* Simple equivalents for animate-in/fade-in/slide-in-from-top-24 */
@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes slideInTop {
    from {
        transform: translateY(-6rem);
    }

    to {
        transform: translateY(0);
    }
}

.animate-in.fade-in {
    animation: fadeIn .5s ease both;
}

.animate-in.slide-in-from-top-24 {
    animation: slideInTop .5s ease both;
}

/* Extra utilities to mirror Tailwind extensions used in app */
.bg-main-gradient {
    background-image: var(--gradient-background);
}

.bg-main-gradient-to-top {
    background-image: var(--gradient-background-to-top);
}

.bg-main-gradient-to-left {
    background-image: var(--gradient-background-to-left);
}

.shadow-black-card {
    box-shadow: var(--black-card-shadow);
}

.shadow-blue-card {
    box-shadow: var(--blue-card-shadow);
}

.shadow-stroke {
    box-shadow: var(--stroke-shadow);
}

.rounded-4xl {
    border-radius: 2rem;
}

.font-inter-display {
    font-family: 'InterDisplay', sans-serif;
}

.text-surface-0 {
    color: rgb(var(--surface-0));
}

.text-surface-500 {
    color: rgb(var(--surface-500));
}

.text-surface-950 {
    color: rgb(var(--surface-950));
}

.bg-surface-0 {
    background-color: rgb(var(--surface-0));
}

.bg-surface-950 {
    background-color: rgb(var(--surface-950));
}

.scrollbar-hide::-webkit-scrollbar {
    display: none;
}

.scrollbar-hide {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

#main-nav {
    transition: top .3s ease, opacity .3s ease;
}

@media (min-width: 1024px) {
    #main-nav.nav-floating {
        position: fixed;
        top: 12px;
        left: 50%;
        transform: none;
        margin-left: 0;
        /* set via JS to -width/2 */
        border: 0 !important;
        padding: 8px 16px;
        background: rgba(5, 44, 43, 0.92);
        border-radius: 9999px;
        /* width is set from JS to match .container exactly */
        box-shadow: var(--black-card-shadow);
        backdrop-filter: blur(24px);
        -webkit-backdrop-filter: blur(24px);
    }

    #mobile-menu-btn {
        display: none !important;
    }
}

#terms-checkbox.terms-checkbox {
    -webkit-appearance: none;
    appearance: none;
    border-radius: 7px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.16);
    display: inline-block;
    vertical-align: middle;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.12);
}

#terms-checkbox.terms-checkbox:focus {
    outline: none;
}

#terms-checkbox.terms-checkbox:checked {
    background-color: rgba(255, 255, 255, 0.16);
    border-color: rgba(255, 255, 255, 0.24);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 12.5l4 4 10-10' stroke='%23FFFFFF' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 12px 12px;
}

#scroll-to-top {
    opacity: 0;
    transform: translateY(16px);
    pointer-events: none;
    transition: opacity .24s ease, transform .24s ease;
    will-change: opacity, transform;
}

#scroll-to-top.is-visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

:root {
    --btn-top-bg: #052C2B;
    --btn-top-stroke-outer: rgba(255, 255, 255, 0.10);
    --btn-top-stroke-inner: rgba(255, 255, 255, 0.06);
}

#scroll-to-top.btn-top {
    background: var(--btn-top-bg);
    border: 1px solid var(--btn-top-stroke-outer);
    box-shadow:
        0 1px 1px 0 rgba(0, 0, 0, 0.06),
        0 -1px 1px 0 rgba(0, 0, 0, 0.06) inset,
        0 0 0 1px var(--btn-top-stroke-inner) inset;
    border-radius: 9999px;
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
}

#scroll-to-top.btn-top:hover {
    box-shadow:
        0 1px 1px 0 rgba(0, 0, 0, 0.06),
        0 -1px 1px 0 rgba(0, 0, 0, 0.06) inset,
        0 0 0 1px rgba(255, 255, 255, 0.10) inset;
    opacity: .96;
}