

/* Form Sections */
.form-section {
 padding: 80px 0;
 background-color: #f9f9f9;
}

.form-wrapper {
 max-width: 800px;
 margin: 0 auto;
 background-color: white;
 padding: 40px;
 border-radius: 8px;
 box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
}

.form-wrapper h1 {
 font-size: 2rem;
 margin-bottom: 10px;
 color: var(--dark);
}

.form-wrapper p {
 margin-bottom: 30px;
 color: var(--gray);
}

/* Form Elements */
fieldset {
 border: 1px solid #eee;
 border-radius: 8px;
 padding: 20px;
 margin-bottom: 30px;
}

legend {
 padding: 0 10px;
 font-weight: 600;
 color: var(--dark);
}

.form-group {
 margin-bottom: 20px;
}

.form-row {
 display: flex;
 gap: 20px;
 margin-bottom: 20px;
}

.form-col {
 flex: 1;
}

label {
 display: block;
 margin-bottom: 8px;
 font-weight: 600;
 color: var(--dark);
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="date"],
input[type="password"],
select,
textarea {
 width: 100%;
 padding: 12px 15px;
 border: 1px solid #ddd;
 border-radius: 4px;
 font-size: 16px;
 transition: all 0.3s ease;
}

input:focus,
select:focus,
textarea:focus {
 border-color: var(--secondary);
 outline: none;
 box-shadow: 0 0 5px rgba(52, 152, 219, 0.3);
}

textarea {
 min-height: 120px;
 resize: vertical;
}

.radio-group {
 display: flex;
 flex-wrap: wrap;
 gap: 15px;
 margin-top: 10px;
}

.radio-group label {
 display: flex;
 align-items: center;
 font-weight: normal;
 cursor: pointer;
}

.radio-group input {
 margin-right: 8px;
}

.checkbox-container {
 display: flex;
 align-items: center;
}

.checkbox-container input {
 margin-right: 10px;
}

.terms-group {
 margin: 30px 0;
}

.error-message {
 color: var(--accent);
 font-size: 14px;
 margin-top: 5px;
 display: block;
}

/* Form Status Messages */
#formStatus, #contactFormStatus {
 padding: 15px;
 border-radius: 4px;
 margin-top: 20px;
 display: none;
}

.success-message {
 background-color: #d4edda;
 color: #155724;
 border: 1px solid #c3e6cb;
}

.error-message {
 background-color: #f8d7da;
 color: #721c24;
 border: 1px solid #f5c6cb;
}

/* Contact Page Specific */
.contact-hero {
 background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('../images/contact-hero.jpg');
 background-size: cover;
 background-position: center;
}

.contact-grid {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 40px;
 margin-bottom: 40px;
}

.contact-form {
 background-color: white;
 padding: 30px;
 border-radius: 8px;
 box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
}

.contact-info {
 background-color: var(--dark);
 color: white;
 padding: 30px;
 border-radius: 8px;
}

.info-card {
 display: flex;
 gap: 15px;
 margin-bottom: 25px;
}

.info-icon {
 font-size: 1.5rem;
 color: var(--secondary);
}

.info-content h3 {
 color: white;
 margin-bottom: 5px;
 font-size: 1.2rem;
}

.info-content p {
 color: #ddd;
 margin-bottom: 5px;
}

.social-links {
 margin-top: 30px;
}

.social-icons {
 display: flex;
 gap: 15px;
 margin-top: 15px;
}

.social-icons a {
 display: flex;
 align-items: center;
 justify-content: center;
 width: 40px;
 height: 40px;
 border-radius: 50%;
 background-color: rgba(255, 255, 255, 0.1);
 color: white;
 transition: all 0.3s ease;
}

.social-icons a:hover {
 background-color: var(--secondary);
 color: white;
}

.map-container {
 margin-top: 40px;
 border-radius: 8px;
 overflow: hidden;
 box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

/* FAQ Section */
.faq-accordion {
 max-width: 800px;
 margin: 0 auto;
}

.faq-item {
 margin-bottom: 15px;
 border: 1px solid #eee;
 border-radius: 8px;
 overflow: hidden;
}

.faq-question {
 width: 100%;
 text-align: left;
 padding: 15px 20px;
 background-color: white;
 border: none;
 cursor: pointer;
 display: flex;
 justify-content: space-between;
 align-items: center;
 font-weight: 600;
 font-size: 1.1rem;
}

.faq-question i {
 transition: transform 0.3s ease;
}

.faq-question.active i {
 transform: rotate(180deg);
}

.faq-answer {
 padding: 0 20px;
 max-height: 0;
 overflow: hidden;
 transition: max-height 0.3s ease, padding 0.3s ease;
}

.faq-answer.active {
 padding: 0 20px 20px;
 max-height: 500px;
}

/* Responsive Styles */
@media (max-width: 992px) {
 .contact-grid {
   grid-template-columns: 1fr;
 }
 
 .contact-info {
   order: -1;
 }
}

@media (max-width: 768px) {
 .form-wrapper {
   padding: 30px 20px;
 }
 
 .form-row {
   flex-direction: column;
   gap: 0;
 }
 
 .radio-group {
   flex-direction: column;
   gap: 10px;
 }
}

@media (max-width: 576px) {
 .form-section {
   padding: 50px 0;
 }
}

