/* Base typography adjustments */
body { font-family: 'Poppins', sans-serif; -webkit-font-smoothing: antialiased; background-color: #FFFFFF; color: #4A5568; }
h1, h2, h3, h4, h5, h6 { color: #023558; }

/* Subtle Animations */
.reveal { opacity: 0; transform: translateY(30px); transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1); }
.reveal.active { opacity: 1; transform: translateY(0); }
.fade-in { opacity: 0; transition: opacity 0.6s ease-in-out; }
.fade-in.active { opacity: 1; }

/* Custom Image Placeholders */
img.placeholder { background-color: #F4F7F9; color: transparent; position: relative; overflow: hidden; display: block; }
img.placeholder::after {
    content: "Image Placeholder"; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
    color: #989A9B; font-size: 0.875rem; font-weight: 500; font-family: 'Poppins', sans-serif;
}

/* Form styling */
.form-input {
    width: 100%; padding: 0.875rem 1rem; border: 1px solid #B4B6B8; border-radius: 0.375rem;
    outline: none; transition: border-color 0.3s, box-shadow 0.3s; background-color: #FAFAFA;
    font-family: 'Poppins', sans-serif; font-size: 0.95rem;
}
.form-input:focus { border-color: #023558; box-shadow: 0 0 0 3px rgba(2, 53, 88, 0.1); background-color: #FFFFFF; }

/* Accordion Details */
details > summary { list-style: none; cursor: pointer; }
details > summary::-webkit-details-marker { display: none; }
details[open] summary ~ * { animation: fadeInDown 0.3s ease-in-out; }
@keyframes fadeInDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }

/* Navigation active state */
.nav-link { position: relative; }
.nav-link::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 0; height: 2px; background-color: #FFCC2A; transition: width 0.3s ease; }
.nav-link:hover::after, .nav-link.active::after { width: 100%; }

/* Buttons */
.btn-primary { background-color: #023558; color: #FFFFFF; transition: all 0.3s ease; border: 2px solid #023558; }
.btn-primary:hover { background-color: #FFFFFF; color: #023558; }
.btn-accent { background-color: #FFCC2A; color: #023558; transition: all 0.3s ease; border: 2px solid #FFCC2A; }
.btn-accent:hover { background-color: #E6B826; border-color: #E6B826; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(255, 204, 42, 0.3); }
.btn-outline { background-color: transparent; color: #023558; border: 2px solid #023558; transition: all 0.3s ease; }
.btn-outline:hover { background-color: #023558; color: #FFFFFF; }