:root {
    --twc-indigo: #2b3e59;
    --twc-camel: #b1955d;
    --twc-bg: #faf7f2;
    --twc-ink: #1a2535;
    --twc-white: #ffffff;
    --twc-radius: 6px;
    --twc-border: #c9cdd5;
    --twc-error: #b3261e;
    --twc-font-display: "Lora", Georgia, serif;
    --twc-font-body: "Inter", sans-serif;
}

.twc-df {
    font-family: var(--twc-font-body);
    color: var(--twc-ink);
    font-size: 16px;
    line-height: 1.6;
    max-width: 760px;
    margin: 0 auto;
}

.twc-df *,
.twc-df *::before,
.twc-df *::after {
    box-sizing: border-box;
}

.twc-df-section {
    border: 0;
    border-top: 2px solid var(--twc-camel);
    margin: 0 0 8px;
    padding: 24px 0 8px;
}

.twc-df-section > legend {
    font-family: var(--twc-font-display);
    font-size: 1.35rem;
    font-weight: 600;
    color: var(--twc-indigo);
    letter-spacing: 0.02em;
    padding: 0;
    margin-bottom: 8px;
}

.twc-df-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px 24px;
}

.twc-df-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.twc-df-field.twc-df-full {
    grid-column: 1 / -1;
}

.twc-df label {
    font-weight: 500;
    color: var(--twc-indigo);
}

.twc-df-req {
    color: var(--twc-camel);
}

.twc-df input[type="text"],
.twc-df input[type="email"],
.twc-df input[type="tel"],
.twc-df input[type="url"],
.twc-df input[type="date"],
.twc-df select,
.twc-df textarea {
    font: inherit;
    color: var(--twc-ink);
    background: var(--twc-bg);
    border: 1px solid var(--twc-border);
    border-radius: var(--twc-radius);
    padding: 10px 12px;
    width: 100%;
}

.twc-df input:focus,
.twc-df select:focus,
.twc-df textarea:focus {
    outline: none;
    border-color: var(--twc-indigo);
    box-shadow: 0 0 0 2px rgba(43, 62, 89, 0.15);
}

.twc-df textarea {
    min-height: 110px;
    resize: vertical;
}

.twc-df-choices {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 20px;
    padding-top: 4px;
}

.twc-df-choice {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 400;
    color: var(--twc-ink);
    cursor: pointer;
}

.twc-df-choice input {
    accent-color: var(--twc-indigo);
}

.twc-df-hint {
    color: #8a91a0;
    font-size: 0.85rem;
}

.twc-df-actions {
    margin-top: 28px;
}

.twc-df-submit {
    font: inherit;
    font-weight: 600;
    color: var(--twc-white);
    background: var(--twc-indigo);
    border: none;
    border-radius: var(--twc-radius);
    padding: 14px 30px;
    cursor: pointer;
    transition: background 0.15s ease;
}

.twc-df-submit:hover {
    background: #22324a;
}

.twc-df-submit:disabled,
.twc-df-submit.is-loading {
    opacity: 0.7;
    cursor: default;
}

.twc-df-error {
    color: var(--twc-error);
    font-size: 0.85rem;
    min-height: 1em;
}

.twc-df-field.has-error input,
.twc-df-field.has-error select,
.twc-df-field.has-error textarea {
    border-color: var(--twc-error);
}

.twc-df-message {
    border-radius: var(--twc-radius);
    padding: 14px 16px;
    margin-bottom: 20px;
    font-weight: 500;
}

.twc-df-message.is-error {
    background: #fbeae9;
    color: #8a1c15;
    border: 1px solid #e9b7b3;
}

.twc-df-message.is-success {
    background: #eef3ee;
    color: var(--twc-indigo);
    border: 1px solid #cdd9cc;
}

.twc-df-thankyou {
    text-align: center;
    padding: 48px 20px;
}

.twc-df-thankyou h3 {
    font-family: var(--twc-font-display);
    color: var(--twc-indigo);
    font-size: 1.6rem;
    margin-bottom: 8px;
}

.twc-df-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

@media (max-width: 600px) {
    .twc-df-grid {
        grid-template-columns: 1fr;
    }
}

/* --- flatpickr calendar, themed to brand --- */
.flatpickr-day.selected,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
    background: var(--twc-indigo);
    border-color: var(--twc-indigo);
}
.flatpickr-day:hover {
    background: var(--twc-bg);
    border-color: var(--twc-bg);
}
.flatpickr-day.today {
    border-color: var(--twc-camel);
}
.flatpickr-day.today:hover {
    background: var(--twc-camel);
    border-color: var(--twc-camel);
    color: var(--twc-white);
}
.flatpickr-months .flatpickr-month,
.flatpickr-current-month input.cur-year,
.flatpickr-current-month .flatpickr-monthDropdown-months,
span.flatpickr-weekday {
    color: var(--twc-indigo);
    fill: var(--twc-indigo);
}
.flatpickr-months .flatpickr-prev-month svg,
.flatpickr-months .flatpickr-next-month svg {
    fill: var(--twc-indigo);
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
    color: var(--twc-border);
    text-decoration: line-through;
}

/* Avada's global Theme Builder footer can place a decorative image whose box
   overlaps the form and swallows clicks on the submit button. This stylesheet
   only loads on pages that render the form, so neutralise pointer events on
   those decorative footer images here. Any real links inside the footer keep
   working. */
.fusion-tb-footer .fusion-image-element {
    pointer-events: none;
}
.fusion-tb-footer .fusion-image-element a {
    pointer-events: auto;
}
