.hy-form-wrapper {
    /* Tailwind Reset for form only */

    font-family: "Inter" !important;

    line-height: 1.5;

    box-sizing: border-box;
}

.hy-form-wrapper *,
.hy-form-wrapper *::before,
.hy-form-wrapper *::after {
    box-sizing: border-box;

    transition: all 0.3s ease;
}

/* Typography */

.hy-form-wrapper .text-2xl {
    font-size: 1.5rem;

    line-height: 2rem;
}

.hy-form-wrapper .text-lg {
    font-size: 1.125rem;

    line-height: 1.75rem;
}

.hy-form-wrapper .text-sm {
    font-size: 0.875rem;

    line-height: 1.25rem;
}

/* Font weights */

.hy-form-wrapper .font-semibold {
    font-weight: 600;
}

.hy-form-wrapper .font-medium {
    font-weight: 500;
}

.hy-form-wrapper .font-bold {
    font-weight: 700;
}

/* Colors - Complete set */

.hy-form-wrapper .text-black {
    color: #000000;
}

.hy-form-wrapper .text-white {
    color: #ffffff;
}

.hy-form-wrapper .text-gray-400 {
    color: #9ca3af;
}

.hy-form-wrapper .text-gray-500 {
    color: #6b7280;
}

.hy-form-wrapper .text-gray-600 {
    color: #4b5563;
}

.hy-form-wrapper .text-gray-700 {
    color: #374151;
}

.hy-form-wrapper .text-gray-800 {
    color: #1f2937;
}

.hy-form-wrapper .text-gray-900 {
    color: #111827;
}

.hy-form-wrapper .text-green-500 {
    color: #10b981;
}

.hy-form-wrapper .text-green-600 {
    color: #059669;
}

.hy-form-wrapper .text-green-800 {
    color: #065f46;
}

.hy-form-wrapper .text-blue-600 {
    color: #2563eb;
}

.hy-form-wrapper .text-blue-700 {
    color: #1d4ed8;
}

.hy-form-wrapper .text-blue-800 {
    color: #1e40af;
}

.hy-form-wrapper .text-red-400 {
    color: #f87171;
}

.hy-form-wrapper .text-red-700 {
    color: #b91c1c;
}

.hy-form-wrapper .text-red-800 {
    color: #991b1b;
}

/* Background colors - Complete set */

.hy-form-wrapper .bg-white {
    background-color: #ffffff;
}

.hy-form-wrapper .bg-gray-50 {
    background-color: #f9fafb;
}

.hy-form-wrapper .bg-gray-100 {
    background-color: #f3f4f6;
}

.hy-form-wrapper .bg-gray-200 {
    background-color: #e5e7eb;
}

.hy-form-wrapper .bg-green-50 {
    background-color: #ecfdf5;
}

.hy-form-wrapper .bg-green-100 {
    background-color: #d1fae5;
}

.hy-form-wrapper .bg-green-600 {
    background-color: #059669;
}

.hy-form-wrapper .bg-blue-50 {
    background-color: #eff6ff;
}

.hy-form-wrapper .bg-blue-100 {
    background-color: #dbeafe;
}

.hy-form-wrapper .bg-red-50 {
    background-color: #fef2f2;
}

.hy-form-wrapper .bg-light-green {
    background-color: #afd645;
}

/* Hover colors - Complete set */

.hy-form-wrapper .hover\:bg-gray-200:hover {
    background-color: #e5e7eb;
}

.hy-form-wrapper .hover\:bg-lime-500:hover {
    background-color: #84cc16;
}

.hy-form-wrapper .hover\:bg-red-100:hover {
    background-color: #fee2e2;
}

.hy-form-wrapper .hover\:text-gray-600:hover {
    color: #4b5563;
}

.hy-form-wrapper .hover\:text-green-800:hover {
    color: #065f46;
}

.hy-form-wrapper .hover\:text-blue-800:hover {
    color: #1e40af;
}

.hy-form-wrapper .hover\:text-red-500:hover {
    color: #ef4444;
}

.hy-form-wrapper .hover\:border-green-500:hover {
    border-color: #10b981;
}

.hy-form-wrapper .hover\:bg-green-50:hover {
    background-color: #ecfdf5;
}

/* Layout - Complete set */

.hy-form-wrapper .max-w-md {
    max-width: 28rem;
}

.hy-form-wrapper .mx-auto {
    margin-left: auto;

    margin-right: auto;
}

.hy-form-wrapper .relative {
    position: relative;
}

.hy-form-wrapper .absolute {
    position: absolute;
}

.hy-form-wrapper .inset-0 {
    top: 0;

    right: 0;

    bottom: 0;

    left: 0;
}

.hy-form-wrapper .z-10 {
    z-index: 10;
}

.hy-form-wrapper .z-50 {
    z-index: 50;
}

/* Flexbox - Complete set */

.hy-form-wrapper .flex {
    display: flex;
}

.hy-form-wrapper .inline-flex {
    display: inline-flex;
}

.hy-form-wrapper .flex-1 {
    flex: 1 1 0%;
}

.hy-form-wrapper .flex-col {
    flex-direction: column;
}

.hy-form-wrapper .flex-row {
    flex-direction: row;
}

.hy-form-wrapper .flex-shrink-0 {
    flex-shrink: 0;
}

.hy-form-wrapper .items-center {
    align-items: center;
}

.hy-form-wrapper .items-start {
    align-items: flex-start;
}

.hy-form-wrapper .justify-center {
    justify-content: center;
}

.hy-form-wrapper .justify-between {
    justify-content: space-between;
}

/* Grid - Complete set */

.hy-form-wrapper .grid {
    display: grid;
}

.hy-form-wrapper .grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.hy-form-wrapper .grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Margin */

.hy-form-wrapper .mb-1 {
    margin-bottom: 0.25rem;
}

.hy-form-wrapper .mb-2 {
    margin-bottom: 0.5rem;
}

.hy-form-wrapper .mb-3 {
    margin-bottom: 0.75rem;
}

.hy-form-wrapper .mb-4 {
    margin-bottom: 1rem;
}

.hy-form-wrapper .mb-6 {
    margin-bottom: 1.5rem;
}

.hy-form-wrapper .mb-7 {
    margin-bottom: 1.75rem;
}

.hy-form-wrapper .mt-1 {
    margin-top: 0.25rem;
}

.hy-form-wrapper .mt-2 {
    margin-top: 0.5rem;
}

.hy-form-wrapper .mt-4 {
    margin-top: 1rem;
}

.hy-form-wrapper .ml-3 {
    margin-left: 0.75rem;
}

.hy-form-wrapper .ml-auto {
    margin-left: auto;
}

.hy-form-wrapper .mx-auto {
    margin-left: auto;

    margin-right: auto;
}

/* Padding */

.hy-form-wrapper .p-3 {
    padding: 0.75rem;
}

.hy-form-wrapper .p-4 {
    padding: 1rem;
}

.hy-form-wrapper .p-6 {
    padding: 1.5rem;
}

.hy-form-wrapper .px-4 {
    padding-left: 1rem;

    padding-right: 1rem;
}

.hy-form-wrapper .px-6 {
    padding-left: 1.5rem;

    padding-right: 1.5rem;
}

.hy-form-wrapper .px-7 {
    padding-left: 1.75rem;

    padding-right: 1.75rem;
}

.hy-form-wrapper .py-3 {
    padding-top: 0.75rem;

    padding-bottom: 0.75rem;
}

.hy-form-wrapper .py-4 {
    padding-top: 1rem;

    padding-bottom: 1rem;
}

.hy-form-wrapper .py-5 {
    padding-top: 1.25rem;

    padding-bottom: 1.25rem;
}

.hy-form-wrapper .py-8 {
    padding-top: 2rem;

    padding-bottom: 2rem;
}

/* Spacing */

.hy-form-wrapper .gap-1 {
    gap: 0.25rem;
}

.hy-form-wrapper .gap-2 {
    gap: 0.5rem;
}

.hy-form-wrapper .gap-3 {
    gap: 0.75rem;
}

.hy-form-wrapper .gap-4 {
    gap: 1rem;
}

.hy-form-wrapper .space-y-3 > * + * {
    margin-top: 0.75rem;
}

.hy-form-wrapper .space-y-4 > * + * {
    margin-top: 1rem;
}

/* Width & Height */

.hy-form-wrapper .w-full {
    width: 100%;
}

.hy-form-wrapper .w-1\/4 {
    width: 25%;
}

.hy-form-wrapper .w-3 {
    width: 0.75rem;
}

.hy-form-wrapper .w-5 {
    width: 1.25rem;
}

.hy-form-wrapper .w-6 {
    width: 1.5rem;
}

.hy-form-wrapper .w-8 {
    width: 2rem;
}

.hy-form-wrapper .w-12 {
    width: 3rem;
}

.hy-form-wrapper .w-16 {
    width: 4rem;
}

.hy-form-wrapper .h-1\.5 {
    height: 0.375rem;
}

.hy-form-wrapper .h-3 {
    height: 0.75rem;
}

.hy-form-wrapper .h-5 {
    height: 1.25rem;
}

.hy-form-wrapper .h-6 {
    height: 1.5rem;
}

.hy-form-wrapper .h-8 {
    height: 2rem;
}

.hy-form-wrapper .h-12 {
    height: 3rem;
}

.hy-form-wrapper .h-16 {
    height: 4rem;
}

.hy-form-wrapper .h-64 {
    height: 16rem;
}

.hy-form-wrapper .h-full {
    height: 100%;
}

/* Borders */

.hy-form-wrapper .border {
    border-width: 1px;
}

.hy-form-wrapper .border-2 {
    border-width: 2px;
}

.hy-form-wrapper .border-b {
    border-bottom-width: 1px;
}

.hy-form-wrapper .border-gray-200 {
    border-color: #e5e7eb;
}

.hy-form-wrapper .border-green-500 {
    border-color: #10b981;
}

.hy-form-wrapper .border-blue-200 {
    border-color: #dbeafe;
}

.hy-form-wrapper .border-red-200 {
    border-color: #fecaca;
}

.hy-form-wrapper .border-red-500 {
    border-color: #ef4444;
}

/* Border radius */

.hy-form-wrapper .rounded-lg {
    border-radius: 0.5rem;
}

.hy-form-wrapper .rounded-xl {
    border-radius: 0.75rem;
}

.hy-form-wrapper .rounded-3xl {
    border-radius: 1.5rem;
}

.hy-form-wrapper .rounded-full {
    border-radius: 9999px;
}

/* Form inputs */

.hy-form-wrapper input,
.hy-form-wrapper textarea,
.hy-form-wrapper button {
    font-family: inherit;
}

.hy-form-wrapper input[type="text"],
.hy-form-wrapper input[type="email"],
.hy-form-wrapper input[type="tel"] {
    appearance: none;

    -webkit-appearance: none;

    -moz-appearance: none;
}

.hy-form-wrapper .px-4 {
    padding-left: 1rem;

    padding-right: 1rem;
}

.hy-form-wrapper .py-4 {
    padding-top: 1rem;

    padding-bottom: 1rem;
}

.hy-form-wrapper .px-6 {
    padding-left: 1.5rem;

    padding-right: 1.5rem;
}

.hy-form-wrapper .py-8 {
    padding-top: 2rem;

    padding-bottom: 2rem;
}

/* Borders */

.hy-form-wrapper .border-2 {
    border-width: 2px;
}

.hy-form-wrapper .border-gray-200 {
    border-color: #e5e7eb;
}

.hy-form-wrapper .border-green-500 {
    border-color: #10b981;
}

.hy-form-wrapper .border-red-500 {
    border-color: #ef4444;
}

/* Border radius */

.hy-form-wrapper .rounded-xl {
    border-radius: 0.75rem;
}

.hy-form-wrapper .rounded-3xl {
    border-radius: 1.5rem;
}

.hy-form-wrapper .rounded-full {
    border-radius: 9999px;
}

/* Shadow - Complete set */

.hy-form-wrapper .shadow-lg {
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.hy-form-wrapper .shadow-xl {
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

/* Opacity - Complete set */

.hy-form-wrapper .opacity-50 {
    opacity: 0.5;
}

.hy-form-wrapper .opacity-80 {
    opacity: 0.8;
}

/* Overflow - Complete set */

.hy-form-wrapper .overflow-hidden {
    overflow: hidden;
}

.hy-form-wrapper .overflow-y-auto {
    overflow-y: auto;
}

.hy-form-wrapper .overflow-x-auto {
    overflow-x: auto;
}

/* Display - Complete set */

.hy-form-wrapper .hidden {
    display: none;
}

.hy-form-wrapper .block {
    display: block;
}

.hy-form-wrapper .sr-only {
    position: absolute;

    width: 1px;

    height: 1px;

    padding: 0;

    margin: -1px;

    overflow: hidden;

    clip: rect(0, 0, 0, 0);

    white-space: nowrap;

    border: 0;
}

/* Cursor - Complete set */

.hy-form-wrapper .cursor-pointer {
    cursor: pointer;
}

.hy-form-wrapper .cursor-not-allowed {
    cursor: not-allowed;
}

/* Outline & Focus - Complete set */

.hy-form-wrapper .focus\:outline-none:focus {
    outline: 2px solid transparent;

    outline-offset: 2px;
}

.hy-form-wrapper .focus\:border-green-500:focus {
    border-color: #10b981;
}

/* Transitions - Complete set */

.hy-form-wrapper .transition-all {
    transition-property: all;

    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);

    transition-duration: 150ms;
}

.hy-form-wrapper .transition-colors {
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;

    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);

    transition-duration: 150ms;
}

.hy-form-wrapper .transition-transform {
    transition-property: transform;

    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);

    transition-duration: 300ms;
}

.hy-form-wrapper .duration-300 {
    transition-duration: 300ms;
}

.hy-form-wrapper .ease-in-out {
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Ensure the transform classes work properly */

.hy-form-wrapper .transform {
    transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0))
        rotate(var(--tw-rotate, 0)) skewX(var(--tw-skew-x, 0)) skewY(var(--tw-skew-y, 0))
        scaleX(var(--tw-scale-x, 1)) scaleY(var(--tw-scale-y, 1));
}

.hy-form-wrapper .translate-x-full {
    --tw-translate-x: 100%;

    transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0))
        rotate(var(--tw-rotate, 0)) skewX(var(--tw-skew-x, 0)) skewY(var(--tw-skew-y, 0))
        scaleX(var(--tw-scale-x, 1)) scaleY(var(--tw-scale-y, 1));
}

/* Text styles - Complete set */

.hy-form-wrapper .text-center {
    text-align: center;
}

.hy-form-wrapper .underline {
    text-decoration-line: underline;
}

.hy-form-wrapper .leading-relaxed {
    line-height: 1.625;
}

/* Placeholder styles */

.hy-form-wrapper .placeholder-gray-400::placeholder {
    color: #9ca3af;
}

/* Form specific states */

.hy-form-wrapper .completed {
    border-color: #10b981 !important;

    background-color: #f0fdf4 !important;
}

/* Animations */

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes pulse {
    50% {
        opacity: 0.5;
    }
}

.hy-form-wrapper .animate-spin {
    animation: spin 1s linear infinite;
}

.hy-form-wrapper .animate-pulse {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* Mobile responsiveness */

@media screen and (max-width: 420px) {
    .hy-form-wrapper .mobile-flex-col {
        flex-direction: column-reverse;
    }

    .hy-form-wrapper .py-8 {
        padding-top: 1.25rem;

        padding-bottom: 1.25rem;
    }

    .hy-form-wrapper .px-7 {
        padding-left: 1rem;

        padding-right: 1rem;
    }
}

/* Google Places Autocomplete - Scoped to form area */

.pac-container {
    border-radius: 12px !important;

    border: 1px solid #e5e7eb !important;

    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1) !important;

    margin-top: 4px !important;

    font-family: system-ui, -apple-system, sans-serif !important;

    z-index: 9999 !important;
}

.hy-form-wrapper ~ .pac-container .pac-item {
    padding: 12px 16px !important;

    border-bottom: 1px solid #f3f4f6 !important;

    cursor: pointer !important;

    font-size: 14px !important;
}

.hy-form-wrapper ~ .pac-container .pac-item:hover {
    background-color: #f9fafb !important;
}

.hy-form-wrapper ~ .pac-container .pac-item-query {
    font-weight: 600 !important;

    color: #111827 !important;
}

.hy-form-wrapper ~ .pac-container .pac-matched {
    font-weight: 700 !important;

    color: #059669 !important;
}

@media screen and (max-width: 768px) {
    .step_name {
        font-size: 14px;
    }
}

.hy-button-bottom-note {
    font-size: 14px;
    margin-top: 12px;
    text-align: center;
    color: #374151;
}

/* Checkbox styling */
.hy-form-wrapper input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 1.25rem;
    height: 1.25rem;
    border: 2px solid #d1d5db;
    border-radius: 0.25rem;
    background-color: #ffffff;
    cursor: pointer;
    position: relative;
    flex-shrink: 0;
}

.hy-form-wrapper input[type="checkbox"]:checked {
    background-color: #10b981;
    border-color: #10b981;
}

.hy-form-wrapper input[type="checkbox"]:checked::after {
    content: "";
    position: absolute;
    left: 0.375rem;
    top: 0.125rem;
    width: 0.375rem;
    height: 0.625rem;
    border: solid white;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.hy-form-wrapper input[type="checkbox"]:focus {
    outline: 2px solid #10b981;
    outline-offset: 2px;
}

.hy-form-wrapper input[type="checkbox"]:hover:not(:checked) {
    border-color: #10b981;
}

/* Consent wrapper error state */
.hy-form-wrapper .border-red-500.bg-red-50 {
    background-color: #fef2f2;
    animation: shake 0.3s ease-in-out;
}

@keyframes shake {
    0%,
    100% {
        transform: translateX(0);
    }
    25% {
        transform: translateX(-5px);
    }
    75% {
        transform: translateX(5px);
    }
}
/* Consent checkbox links */
.hy-form-wrapper .text-blue-600 {
    color: #2563eb;
}

.hy-form-wrapper .hover\:text-blue-800:hover {
    color: #1e40af;
}

.hy-form-wrapper a {
    text-decoration: underline;
    transition: color 0.2s ease;
}

.hy-form-wrapper a:hover {
    text-decoration: underline;
}

/* Prevent label click from affecting links */
.hy-form-wrapper label a {
    pointer-events: auto;
}
