.grecaptcha-badge { visibility: hidden !important; }

.contact-section__grid {
  display: flex;
  flex-wrap: nowrap;
  gap: var(--space-sm);
  align-items: stretch;
  isolation: isolate;         /* isolates stacking context */
  will-change: transform;     /* pre-promotes the container */
  transform: translateZ(0);   /* forces GPU layer */
}

.contact-section__column {
  transform: none !important; /* prevent child promotions */
  will-change: auto;
  width:33%
}

@media (max-width:768px) {
    .contact-section__grid {
        flex-direction: column;
    }

    .contact-section__column {
        width:100%
    }    
}

#contact-form-placeholder {
    height: 100%;
    min-height: 768px;
    font-size: 2rem;
}

.contact-section__column--form {
    display: flex;
    flex-direction: column;
}

.contact-card {
    background: var(--color-surface);
    border: 4px solid #ffffff;
    padding: var(--space-md);
    box-shadow: var(--shadow-form);
    position: relative;
    border-right-width: 8px;
    clip-path: polygon(14px 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%, 0 14px);
}

.contact-card::before {
    content: '';
    position: absolute;
    top: -16px;
    right: 70px;
    width: 110px;
    height: 8px;
    background: var(--color-cyan);
}

.contact-card::after {
    content: '';
    position: absolute;
    bottom: 70px;
    right: -16px;
    width: 8px;
    height: 110px;
    background: var(--color-yellow);
}

.contact-card__title {
    margin: 0 0 var(--space-xs);
}

.contact-card__text {
    margin: 0 0 var(--space-xxs);
    color: rgba(232, 232, 232, 0.82);
}

.contact-card__link {
    color: var(--color-cyan);
    font-weight: 600;
}

.contact-form {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    flex: 1 1 auto;
}

.contact-form__field {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.contact-form__label {
    font-size: 0.8rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--color-cyan);
}

.contact-form__input,
.contact-form__textarea {
    width: 100%;
    border: 3px solid #2d3561;
    background: #0a0e27;
    color: #ffffff;
    padding: 0.85rem 1.1rem;
    font-family: var(--font-body);
    font-size: 1rem;
    transition: border-color var(--transition-default), box-shadow var(--transition-default), transform var(--transition-default);
}

.contact-form__input::placeholder,
.contact-form__textarea::placeholder {
    color: rgba(232, 232, 232, 0.4);
}

.contact-form__textarea {
    min-height: 160px;
    resize: vertical;
}

.contact-form__input:focus,
.contact-form__textarea:focus {
    outline: none;
    border-color: var(--color-primary);
    background: #151937;
    box-shadow: 10px 10px 0 rgba(255, 46, 99, 0.24);
    transform: translate(-3px, -3px);
}

.contact-card__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
}

.contact-card__list-item {
    font-size: 0.95rem;
}


.contact-form__charwrap { position: relative; }
.contact-form__charcount {
    position: absolute; right: .5rem; bottom: .5rem;
    font-size: 12px; opacity: .7; user-select: none;
}

/* Stop geometry from repainting the first viewport on contact page */
.contact-section .page-geometry,
.contact-section::before,
.contact-section::after {
  content: none !important;
  display: none !important;
}

/* If you must keep geometry, at least isolate it */
.page-geometry {
  position: fixed;      /* off flow */
  contain: paint;       /* no sibling reflow */
  pointer-events: none;
  z-index: 0;
}


