/* Utility Classes to replace inline styles for CSP compliance */
.w-80-pct {
    width: 80%;
}

.max-w-500 {
    max-width: 500px;
}

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

.mt-24 {
    margin-top: 24px;
}

.mt-32 {
    margin-top: 32px;
}

.mb-24 {
    margin-bottom: 24px;
}

.color-text-secondary {
    color: var(--text-secondary);
}

.font-size-095 {
    font-size: 0.95rem;
}

.font-size-09 {
    font-size: 0.9rem;
}

.font-size-085 {
    font-size: 0.85rem;
}

.font-weight-600 {
    font-weight: 600;
}

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

.color-primary-brand {
    color: var(--primary-brand);
}

.flex {
    display: flex;
}

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

.flex-1 {
    flex: 1;
}

.h-1 {
    height: 1px;
}

.bg-border {
    background: var(--border-color);
}

.px-16 {
    padding: 0 16px;
}

.color-text-main {
    color: var(--text-main);
}

.color-google-blue {
    color: #4285F4;
}

.font-size-12 {
    font-size: 1.2rem;
}

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

.relative {
    position: relative;
}

.absolute {
    position: absolute;
}

.right-12 {
    right: 12px;
}

.top-14 {
    top: 14px;
}

.bg-none {
    background: none;
}

.border-none {
    border: none;
}

.cursor-pointer {
    cursor: pointer;
}

.mb-16 {
    margin-bottom: 16px;
}

.mb-6 {
    margin-bottom: 6px;
}

.font-weight-500 {
    font-weight: 500;
}

.list-none {
    list-style: none;
}

.p-0 {
    padding: 0;
}

.mb-4 {
    margin-bottom: 4px;
}

.mr-6 {
    margin-right: 6px;
}

.mb-8 {
    margin-bottom: 8px;
}

.pl-20 {
    padding-left: 20px;
}

.m-0 {
    margin: 0;
}

.font-size-15-rem {
    font-size: 1.5rem;
}

.letter-spacing-05-rem {
    letter-spacing: 0.5rem;
}

/* Colors */
.color-error {
    color: #c0392b;
}

.bg-secondary-btn {
    background: #666;
}

/* Spacing */
.gap-10 {
    gap: 10px;
}

.gap-12 {
    gap: 12px;
}

.mt-4 {
    margin-top: 4px;
}

.mt-16 {
    margin-top: 16px;
}

.mt-48 {
    margin-top: 48px;
}

.mb-12 {
    margin-bottom: 12px;
}

.pt-32 {
    padding-top: 32px;
}

/* Typography */
.font-family-display {
    font-family: var(--font-display);
}

.font-size-11-rem {
    font-size: 1.1rem;
}

.font-size-3-rem {
    font-size: 3rem;
}

/* Layout */
.flex-start {
    align-items: flex-start;
}

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

.block {
    display: block;
}

/* Components */
.input-icon-btn {
    position: absolute;
    right: 12px;
    top: 14px;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--text-secondary);
}

.px-8 {
    padding: 0 8px;
}