.tbf-wrap {
    --tbf-border: #dedede;
    --tbf-soft: #f7f7f5;
    --tbf-text: #252525;
    --tbf-muted: #6b6b6b;
    --tbf-accent: #9b6b27;
    --tbf-accent-dark: #76501d;
    max-width: 860px;
    margin: 2rem auto;
    color: var(--tbf-text);
    font-family: "Raleway", "Helvetica Neue", Arial, sans-serif;
}

.tbf-form {
    display: grid;
    gap: 1.25rem;
}

.tbf-card {
    background: #fff;
    border: 1px solid var(--tbf-border);
    border-radius: 14px;
    padding: clamp(1.25rem, 2.5vw, 2rem);
    box-shadow: 0 8px 28px rgba(0,0,0,.035);
}

.tbf-section-heading {
    margin-bottom: 1.4rem;
}

.tbf-section-heading h2,
.tbf-legend-title {
    display: block;
    margin: .2rem 0 .35rem;
    font-size: clamp(1.25rem, 2vw, 1.55rem);
    line-height: 1.25;
    font-weight: 650;
}

.tbf-section-heading p {
    margin: 0;
    color: var(--tbf-muted);
    font-size: .95rem;
}

.tbf-kicker {
    display: block;
    color: var(--tbf-accent-dark);
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.tbf-grid {
    display: grid;
    gap: 1rem;
}

.tbf-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tbf-grid-address {
    grid-template-columns: 2fr .65fr 1fr;
}

.tbf-field {
    display: grid;
    gap: .42rem;
}

.tbf-field label {
    font-size: .92rem;
    font-weight: 600;
}

.tbf-optional {
    color: var(--tbf-muted);
    font-weight: 400;
}

.tbf-field input,
.tbf-field textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #cfcfcf;
    border-radius: 8px;
    background: #fff;
    color: var(--tbf-text);
    padding: .78rem .9rem;
    font: inherit;
    line-height: 1.35;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.tbf-field input:focus,
.tbf-field textarea:focus {
    outline: none;
    border-color: var(--tbf-accent);
    box-shadow: 0 0 0 3px rgba(155, 107, 39, .14);
}

.tbf-fieldset {
    border: 0;
    margin: 0;
    padding: 0;
    min-width: 0;
}

.tbf-fieldset legend {
    width: 100%;
    margin: 0 0 1rem;
    padding: 0;
}

.tbf-choice-list {
    display: grid;
    gap: .75rem;
}

.tbf-choice {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: 1rem;
    border: 1px solid var(--tbf-border);
    border-radius: 10px;
    cursor: pointer;
    background: var(--tbf-soft);
}

.tbf-choice:hover {
    border-color: #bdbdbd;
}

.tbf-choice input {
    margin-top: .25rem;
}

.tbf-inline-choices {
    display: flex;
    gap: 1.4rem;
    margin-bottom: 1rem;
}

.tbf-inline-choices label {
    display: flex;
    align-items: center;
    gap: .45rem;
    font-weight: 600;
}

.tbf-childcare-details {
    margin-top: 1rem;
}

.tbf-submit-row {
    display: flex;
    align-items: center;
    gap: 1rem 1.25rem;
    flex-wrap: wrap;
}

.tbf-submit {
    appearance: none;
    border: 0;
    border-radius: 8px;
    background: var(--tbf-accent-dark);
    color: #fff;
    padding: .9rem 1.35rem;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    transition: transform .1s ease, opacity .15s ease;
}

.tbf-submit:hover {
    opacity: .92;
}

.tbf-submit:active {
    transform: translateY(1px);
}

.tbf-privacy-note {
    margin: 0;
    color: var(--tbf-muted);
    font-size: .88rem;
}

.tbf-message {
    border-radius: 10px;
    padding: 1rem 1.15rem;
    font-weight: 600;
}

.tbf-success {
    background: #eef7ee;
    border: 1px solid #bfdabf;
}

.tbf-error {
    background: #fff1f1;
    border: 1px solid #e2bcbc;
}

.tbf-honeypot {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

@media (max-width: 700px) {
    .tbf-grid-2,
    .tbf-grid-address {
        grid-template-columns: 1fr;
    }

    .tbf-card {
        border-radius: 10px;
    }

    .tbf-submit {
        width: 100%;
    }
}


/* =========================================
   REUSABLE TRINITY CONTACT FORM
   ========================================= */

.tcf-wrap {
    max-width: 760px;
}

.tcf-card {
    padding-bottom: 1.7rem;
}

.tcf-message-field {
    margin-top: 1rem;
}

.tcf-submit-row {
    margin-top: 1.25rem;
}


/* =========================================
   NEWSLETTER PHOTO UPLOAD
   ========================================= */

.tcf-photo-upload {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid #dedede;
}

.tcf-file-input {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: .7rem;
    border: 1px solid #cfcfcf;
    border-radius: 8px;
    background: #fff;
    font: inherit;
}

.tcf-photo-help,
.tcf-permission-note {
    display: block;
    margin-top: .35rem;
    color: #6b6b6b;
    font-size: .82rem;
    line-height: 1.45;
}

.tcf-photo-disclaimer {
    margin-top: 1rem;
    padding: .9rem 1rem;
    border-left: 3px solid #9b6b27;
    background: #f7f7f5;
}

.tcf-photo-disclaimer strong {
    display: block;
    margin-bottom: .2rem;
    color: #76501d;
    font-size: .82rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.tcf-photo-disclaimer p {
    margin: 0;
    color: #555;
    font-size: .9rem;
    line-height: 1.55;
}

.tcf-permission {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    margin-top: 1rem;
    font-size: .92rem;
    line-height: 1.45;
    cursor: pointer;
}

.tcf-permission input {
    margin-top: .2rem;
}


/* =========================================
   CLOUDFLARE TURNSTILE
   ========================================= */

.tcf-turnstile-wrap {
    margin-top: 1.25rem;
}

.tcf-turnstile-note {
    margin: .35rem 0 0;
    color: #777;
    font-size: .78rem;
}


/* =========================================
   FORM TYPOGRAPHY
   ========================================= */

.tbf-wrap,
.tbf-wrap input,
.tbf-wrap textarea,
.tbf-wrap select,
.tbf-wrap button,
.tbf-wrap label,
.tbf-wrap legend {
    font-family: "Raleway", "Helvetica Neue", Arial, sans-serif;
}

/* Keep body copy easy to read while matching the site. */
.tbf-wrap p,
.tbf-wrap small,
.tbf-field label {
    font-weight: 400;
}

/* Headings and buttons use Raleway's medium weight. */
.tbf-section-heading h2,
.tbf-legend-title,
.tbf-submit,
.tbf-choice strong {
    font-weight: 500;
}

/* Match the airy uppercase styling used elsewhere on the site. */
.tbf-kicker {
    font-weight: 500;
    letter-spacing: .12em;
}
