@charset "utf-8";
/* CSS Document */

form {
    display: flex;
    flex-direction: column;
}
label {
    margin-top: 20px;
    margin-bottom: 5px;
    font-weight: bold;
}
input[type="text"], input[type="email"], input[type="tel"], textarea {
    width: 100%;
    padding: 10px;
    border: 1px solid #002851;
    border-radius: 4px;
    box-sizing: border-box;
}
textarea {
    height: 120px;
    resize: vertical;
}
/* --- New Symbol Layout Styles --- */
.symbol-group {
    border: 1px solid #ddd;
    padding: 15px;
    margin-top: 10px;
    border-radius: 4px;
    background-color: #f9f9f9;
}
.symbol-group-content {
    display: flex; /* Arrange dropzone and textarea side-by-side (default for large screens) */
    flex-direction: row;
    align-items: center;
    gap: 15px; /* Space between dropzone and textarea */
}
.symbol-group > label {
    margin-top: 0;
}
.symbol-group textarea {
    height: 120px; /* Match height of the dropzone */
    flex-grow: 1; /* Allow textarea to fill remaining space */
}
.drop-zone {
    width: 120px;  /* Smaller, fixed width */
    height: 120px; /* Same as width to make it square */
    flex-shrink: 0; /* Prevent the dropzone from shrinking */
    border: 2px solid #002851;
    border-radius: 5px;
    padding: 5px; /* Reduced padding */
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-weight: bold;
    color: #ccc;
    cursor: pointer;
    position: relative;
}

/* --- Responsive Override for Small Screens --- */
@media (max-width: 767px) {
.symbol-group-content {
    flex-direction: column; /* Stack vertically */
    align-items: stretch; /* Stretch items to fill the width */
    gap: 0; /* Remove gap */
}
.drop-zone {
    width: 100%; /* Dropzone takes full width */
    height: 150px; /* Increase height for better tap target */
    flex-shrink: 1;
}
.symbol-group textarea {
    width: 100%;
    margin-top: 15px; /* Add space between dropzone and textarea */
    height: 150px; /* Increase height */
}
}
/* --- End New Symbol Layout Styles --- */

.drop-zone.dragover {
    background-color: #e0e0e0;
    border-color: #333;
}
.drop-zone__input {
    display: none;
}
.drop-zone__prompt {
    display: block;
    font-size: 14px; /* Slightly smaller text */
}
.drop-zone__thumb {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 5px;
}
.remove-btn {
    position: absolute;
    top: 5px;
    right: 5px;
    width: 24px;
    height: 24px;
    background: rgba(0, 0, 0, 0.6);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Helvetica', sans-serif;
    font-weight: bold;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    z-index: 10;
}
.remove-btn:hover {
    background: rgba(0, 0, 0, 0.8);
}
.copy-option {
    margin-top: 25px;
    padding-top: 15px;
    border-top: 1px solid #eee;
}
.copy-option label {
    margin-top: 0;
    display: flex;
    align-items: center;
    font-weight: normal;
}
.copy-option input[type="checkbox"] {
    margin-right: 10px;
}
#email-field-container {
    margin-top: 10px;
    display: none;
}
/* input[type="submit"] {
            background-color: #2c3e50;
            color: white;
            padding: 15px 20px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            font-size: 16px;
            margin-top: 30px;
        } */
.intro-text {
    margin-bottom: 20px;
}
/* Add this to your <style> block or forms.css */
.validation-error-message {
    color: #dc3545; /* Standard red color, often used by Bootstrap */
    font-size: 0.875em; /* Smaller text size */
    margin-top: 5px;
    display: none; /* Hidden by default */
}
/* --- Validation Styles --- */

/* 1. Red border and ICON for required fields (text, email, textarea) */
input[type="text"].is-invalid, input[type="email"].is-invalid, textarea.is-invalid {
    border-color: #dc3545 !important;

    padding-right: 2.5rem; /* Make space for the icon */
    /* Ensure the icon is present */
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M6 3v5'/%3e%3cpath stroke-linecap='round' d='M6 9h.01'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    /* **THIS IS THE KEY CHANGE:** Adjusting the vertical position to 0.4rem from the top */
    background-position: right 0.75rem top 0.4rem;
    background-size: 1.2rem 1.2rem;
}
/* 2. Red border for drop fields (applied to the drop-zone container) */
.drop-zone.is-invalid {
    border-color: #dc3545 !important;
    border-style: solid !important;
    border-width: 2px !important;
}
/* 3. Red error message text (already exists, but we ensure placement) */
.validation-error-message {
    color: #dc3545;
    font-size: 0.875em;
    margin-top: 5px;
    display: none;
}
/* 4. Right-alignment for error messages inside symbol groups */
.symbol-group .validation-error-message {
    text-align: left;
    width: 100%;
    margin-top: 5px;
    display: none;
}
