.pvh-form-wrap,
.pvh-form-wrap * {
    box-sizing: border-box;
}

.pvh-form-wrap {
    --pvh-green: #00834A;
    --pvh-bg: #f7f6f2;
    --pvh-text: #202520;
    --pvh-heading: #143d2a;
    --pvh-muted: #667067;
    width: 100%;
    color: var(--pvh-text);
    font-family: inherit;
}

.pvh-honeypot {
    position: absolute !important;
    left: -99999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.pvh-contact-card,
.pvh-new-patient-card {
    width: 100%;
    margin: 0 auto;
    background: #fff;
    border: 1px solid var(--pvh-green);
    color: var(--pvh-text);
}

.pvh-contact-card {
    max-width: 748px;
    padding: 38px;
    border-radius: 18px;
}

.pvh-new-patient-card {
    max-width: 100%;
    padding: 34px;
    border-radius: 18px;
}

.pvh-contact-grid,
.pvh-grid {
    display: grid;
    gap: 16px 22px;
}

.pvh-contact-grid {
    grid-template-columns: 1fr;
    gap: 14px;
}

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

.pvh-field,
.pvh-field * {
    min-width: 0;
}

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

.pvh-field label,
.pvh-label {
    display: block;
    margin: 0 0 8px;
    color: var(--pvh-heading);
    font-family: inherit;
    font-size: 13px;
    line-height: 1.35;
    font-weight: 700;
}

.pvh-required {
    color: var(--pvh-green);
}

.pvh-field input[type="text"],
.pvh-field input[type="email"],
.pvh-field input[type="tel"],
.pvh-field input[type="date"],
.pvh-field select,
.pvh-field textarea {
    display: block;
    width: 100%;
    min-height: 48px;
    margin: 0;
    padding: 11px 15px;
    border: 1px solid var(--pvh-green);
    border-radius: 8px;
    background: var(--pvh-bg);
    color: var(--pvh-text);
    font-family: inherit;
    font-size: 14px;
    line-height: 1.4;
    outline: none;
    box-shadow: none;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.pvh-contact-grid .pvh-field input,
.pvh-contact-grid .pvh-field select {
    min-height: 48px;
    padding: 11px 15px;
    border-radius: 8px;
    font-size: 14px;
}

.pvh-contact-grid .pvh-field textarea {
    min-height: 118px;
    padding: 11px 15px;
    border-radius: 8px;
    font-size: 14px;
    resize: vertical;
}

.pvh-contact-grid .pvh-field label {
    margin-bottom: 7px;
    font-size: 13px;
    color: var(--pvh-heading);
}

.pvh-field input::placeholder,
.pvh-field textarea::placeholder {
    color: #68a587;
    opacity: 1;
}

.pvh-field input:focus,
.pvh-field select:focus,
.pvh-field textarea:focus {
    border-color: var(--pvh-green);
    box-shadow: 0 0 0 3px rgba(0, 131, 74, .12);
    background: #fff;
}

.pvh-section + .pvh-section {
    margin-top: 26px;
}

.pvh-section-title {
    margin: 0 0 18px;
    color: var(--pvh-heading);
    font-family: inherit;
    font-size: 22px;
    line-height: 1.2;
    font-weight: 700;
}

.pvh-choice-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 22px;
    min-height: 48px;
    padding: 9px 12px;
    border: 1px solid #d8e7de;
    border-radius: 8px;
    background: var(--pvh-bg);
}

.pvh-choice-compact {
    min-height: 48px;
}

.pvh-choice {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: var(--pvh-text);
    font-family: inherit;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
}

.pvh-choice input[type="radio"] {
    width: 17px;
    min-width: 17px;
    height: 17px;
    min-height: 17px;
    flex: 0 0 17px;
    margin: 0;
    padding: 0;
    align-self: center;
    vertical-align: middle;
    accent-color: var(--pvh-green);
}

.pvh-conditional[hidden] {
    display: none !important;
}

.pvh-pet-card,
.pvh-pets-actions {
    grid-column: 1 / -1;
    width: 100%;
}

.pvh-pet-card {
    padding: 20px;
    border: 1px solid #d8e7de;
    border-radius: 12px;
    background: var(--pvh-bg);
}

.pvh-pet-card + .pvh-pet-card {
    margin-top: 16px;
}

.pvh-pet-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.pvh-pet-header h3 {
    margin: 0;
    color: var(--pvh-heading);
    font-family: inherit;
    font-size: 18px;
    line-height: 1.3;
    font-weight: 700;
}

.pvh-remove-pet,
.pvh-file-remove {
    border: 0;
    background: transparent;
    color: #a52323;
    font-family: inherit;
    font-weight: 700;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.pvh-add-pet,
.pvh-upload-button {
    min-height: 42px;
    padding: 9px 16px;
    border: 1px solid var(--pvh-green);
    border-radius: 999px;
    background: #fff;
    color: var(--pvh-green);
    font-family: inherit;
    font-size: 13px;
    line-height: 1.2;
    font-weight: 700;
    cursor: pointer;
    transition: background .2s ease, color .2s ease;
}

.pvh-add-pet:hover,
.pvh-upload-button:hover {
    background: var(--pvh-green);
    color: #fff;
}

.pvh-add-pet {
    margin-top: 16px;
}

.pvh-upload-help {
    margin: 8px 0 0;
    color: var(--pvh-muted);
    font-size: 12px;
    line-height: 1.45;
}

.pvh-file-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 12px;
}

.pvh-file-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 9px 12px;
    border: 1px solid #d8e7de;
    border-radius: 10px;
    background: #fff;
    color: var(--pvh-text);
    font-size: 13px;
}

.pvh-file-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pvh-submit-button {
    width: 100%;
    min-height: 54px;
    padding: 12px 22px;
    border: 0;
    border-radius: 6px;
    background: var(--pvh-green);
    color: #fff;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.3;
    font-weight: 700;
    cursor: pointer;
    box-shadow: none;
    transition: transform .2s ease, filter .2s ease, opacity .2s ease;
}

.pvh-submit-button:hover {
    filter: brightness(.93);
    transform: translateY(-1px);
}

.pvh-submit-button:disabled {
    opacity: .6;
    cursor: not-allowed;
    transform: none;
}

.pvh-new-patient-submit {
    margin-top: 18px;
}

.pvh-form-message {
    display: none;
    max-width: 980px;
    margin: 16px auto 0;
    padding: 13px 16px;
    border-radius: 10px;
    font-size: 14px;
    line-height: 1.5;
}

.pvh-form-message.is-error {
    display: block;
    border: 1px solid #d8a4a4;
    background: #fff1f1;
    color: #a52323;
}

.pvh-form-message.is-success {
    display: block;
    border: 1px solid rgba(0, 131, 74, .35);
    background: #f3faf6;
    color: var(--pvh-green);
    font-weight: 700;
}

@media (max-width: 767px) {
    .pvh-contact-card,
    .pvh-new-patient-card {
        padding: 24px 18px;
        border-radius: 16px;
    }

    .pvh-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .pvh-field-full {
        grid-column: auto;
    }

    .pvh-pet-card {
        padding: 18px 14px;
    }

    .pvh-pet-header {
        align-items: flex-start;
    }

    .pvh-contact-grid .pvh-field label {
        font-size: 16px;
    }

    .pvh-contact-grid .pvh-field input,
    .pvh-contact-grid .pvh-field select,
    .pvh-contact-grid .pvh-field textarea {
        font-size: 16px;
    }
}

/* Form engine compatibility classes. */
.pvh-file-input { display: none !important; }
.pvh-contact-form-field.is-full,
.pvh-contact-form-section.is-full,
.pvh-contact-form-submit-wrap { grid-column: 1 / -1; }
.pvh-contact-form-choices { display:flex; flex-wrap:wrap; gap:10px 22px; }
.pvh-contact-form-choice { display:inline-flex; align-items:center; gap:8px; cursor:pointer; }
.pvh-contact-form-choice input[type="radio"] { accent-color:var(--pvh-green); }
.pvh-contact-form-submit-wrap { width:100%; }
.pvh-contact-form-message { width:100%; }
