/* ──────────────────────────────────────────────
   Teabelly Contact Form — contact-form.css
   Brand: dark background, warm amber/gold accent,
   clean modern serif+sans pairing
   ────────────────────────────────────────────── */

:root {
    --tbcf-bg:           #0b0620;
    --tbcf-bg-field:     #e8e0d5;
    --tbcf-bg-field-focus: #ddd5c8;
    --tbcf-border:       #c4bdb5;
    --tbcf-border-focus: #c9943a;
    --tbcf-accent:       #c9943a;   /* warm amber */
    --tbcf-accent-hover: #e0aa50;
    --tbcf-text:         #0b0620;
    --tbcf-text-muted:   #5a5560;
    --tbcf-text-label:   #3a3050;
    --tbcf-error-color:  #c0392b;
    --tbcf-success-bg:   #0f1f0f;
    --tbcf-success-text: #6fcf72;
    --tbcf-radius:       4px;
    --tbcf-font-sans:    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    --tbcf-transition:   0.2s ease;
}

/* Wrapper */
.tbcf-wrapper {
    width: 100%;
    max-width: 680px;
    margin: 0 auto;
    padding: 0;
    font-family: var(--tbcf-font-sans);
    box-sizing: border-box;
}

/* Form base */
.tbcf-form {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* Two-column row */
.tbcf-row--half {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

@media ( max-width: 600px ) {
    .tbcf-row--half {
        grid-template-columns: 1fr;
    }
}

/* Field group */
.tbcf-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Labels */
.tbcf-field label {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--tbcf-text-label);
}

.tbcf-required {
    color: var(--tbcf-accent);
    margin-left: 2px;
}

/* Inputs + Textarea */
.tbcf-form input[type="text"],
.tbcf-form input[type="email"],
.tbcf-form textarea {
    background:    var(--tbcf-bg-field);
    border:        1px solid var(--tbcf-border);
    border-radius: var(--tbcf-radius);
    color:         var(--tbcf-text);
    font-family:   var(--tbcf-font-sans);
    font-size:     15px;
    line-height:   1.5;
    padding:       12px 16px;
    width:         100%;
    box-sizing:    border-box;
    transition:    border-color var(--tbcf-transition), background var(--tbcf-transition), box-shadow var(--tbcf-transition);
    outline:       none;
    appearance:    none;
    -webkit-appearance: none;
}

.tbcf-form input::placeholder,
.tbcf-form textarea::placeholder {
    color: var(--tbcf-text-muted);
    font-style: italic;
}

.tbcf-form input[type="text"]:focus,
.tbcf-form input[type="email"]:focus,
.tbcf-form textarea:focus {
    border-color:    var(--tbcf-border-focus);
    background:      var(--tbcf-bg-field-focus);
    box-shadow:      0 0 0 3px rgba(201, 148, 58, 0.12);
}

/* Invalid state */
.tbcf-form input.tbcf-invalid,
.tbcf-form textarea.tbcf-invalid {
    border-color: var(--tbcf-error-color);
    box-shadow:   0 0 0 2px rgba(192, 57, 43, 0.15);
}

.tbcf-form textarea {
    resize: vertical;
    min-height: 140px;
}

/* Error messages */
.tbcf-error {
    font-size: 12px;
    color: var(--tbcf-error-color);
    min-height: 16px;
    display: block;
    transition: opacity var(--tbcf-transition);
}

/* Submit row */
.tbcf-submit-row {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

/* Button */
.tbcf-btn {
    display:         inline-flex;
    align-items:     center;
    gap:             10px;
    background:      var(--tbcf-accent);
    color:           #0f0f0f;
    border:          none;
    border-radius:   var(--tbcf-radius);
    padding:         14px 32px;
    font-family:     var(--tbcf-font-sans);
    font-size:       14px;
    font-weight:     700;
    letter-spacing:  0.06em;
    text-transform:  uppercase;
    cursor:          pointer;
    transition:      background var(--tbcf-transition), transform var(--tbcf-transition), box-shadow var(--tbcf-transition);
}

.tbcf-btn:hover:not(:disabled) {
    background:  var(--tbcf-accent-hover);
    box-shadow:  0 4px 20px rgba(201, 148, 58, 0.25);
    transform:   translateY(-1px);
}

.tbcf-btn:active:not(:disabled) {
    transform: translateY(0);
}

.tbcf-btn:disabled {
    opacity: 0.6;
    cursor:  not-allowed;
}

/* Loading spinner */
.tbcf-btn-spinner {
    display:       none;
    width:         16px;
    height:        16px;
    border:        2px solid rgba(15,15,15,0.3);
    border-top-color: #0f0f0f;
    border-radius: 50%;
    animation:     tbcf-spin 0.7s linear infinite;
    flex-shrink:   0;
}

.tbcf-btn.is-loading .tbcf-btn-spinner {
    display: inline-block;
}

@keyframes tbcf-spin {
    to { transform: rotate(360deg); }
}

/* Status message */
.tbcf-status {
    font-size:    14px;
    line-height:  1.6;
    padding:      14px 18px;
    border-radius: var(--tbcf-radius);
    display:      none;
    border-left:  3px solid transparent;
}

.tbcf-status.is-success {
    display:      block;
    background:   var(--tbcf-success-bg);
    color:        var(--tbcf-success-text);
    border-color: var(--tbcf-success-text);
}

.tbcf-status.is-error {
    display:      block;
    background:   rgba(192, 57, 43, 0.08);
    color:        #e57373;
    border-color: var(--tbcf-error-color);
}

/* Success message container */
.tbcf-status-content {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

/* Success message dismiss button */
.tbcf-status-dismiss {
	background: none;
	border: none;
	font-size: 24px;
	color: var(--tbcf-text);
	cursor: pointer;
	padding: 0;
	margin: 0;
	flex-shrink: 0;
	transition: opacity 0.2s ease;
	opacity: 0.7;
}

.tbcf-status-dismiss:hover {
	opacity: 1;
}

.tbcf-status-dismiss:focus {
	outline: 2px solid var(--tbcf-accent);
	outline-offset: 2px;
}
}
}
}
}
