
/* ===============================
   GLOBAL ACCESSIBILITY SETTINGS
   WCAG 2.2 AA Compliant
================================= */

body {
    font-family: 'Poppins', Arial, sans-serif;
    background-color: #0f172a;
    color: #f8fafc;
    margin: 0;
    line-height: 1.8; /* WCAG 1.4.12 */
    letter-spacing: 0.5px;
    font-size: 18px;
}

/* ===============================
   ACCESSIBLE INTERACTIVE TARGETS
   WCAG 2.5.8 Target Size
================================= */

a,
button,
input,
textarea {
    min-height: 44px;
    min-width: 44px;
}

/* ===============================
   LINKS
================================= */

a {
    color: #38bdf8;
    padding: 6px;
    text-decoration: underline;
}

a:hover {
    color: #facc15;
}

/* Strong visible focus indicator */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
    outline: 4px solid #facc15;
    outline-offset: 3px;
    border-radius: 6px;
}

/* ===============================
   HEADER & FOOTER
================================= */

header,
footer {
    background-color: #1e293b;
    padding: 20px;
    text-align: center;
}

/* ===============================
   HEADINGS
================================= */

h1,
h2,
h3 {
    color: #f97316;
}

/* ===============================
   LAYOUT CONTAINERS
================================= */

.container {
    padding: 24px;
    max-width: 1100px;
    margin: auto;
}

.section {
    margin-bottom: 40px;
    padding: 24px;
    background-color: #1e293b;
    border-radius: 12px;
}

/* ===============================
   CHARACTER GRID
================================= */

.character-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 24px;
}

/* ===============================
   IMAGES
================================= */

img {
    width: 100%;
    height: auto;
    border-radius: 8px;
}

/* ===============================
   VIDEO
================================= */

iframe {
    width: 100%;
    height: 400px;
    border-radius: 8px;
}

/* ===============================
   SKIP LINK (WCAG 2.4.1)
================================= */

.skip-link {
    position: absolute;
    top: -60px;
    left: 0;
    background: #facc15;
    color: black;
    padding: 10px;
    z-index: 100;
    font-weight: bold;
}

.skip-link:focus {
    top: 10px;
}

/* ===============================
   FORMS
================================= */

label {
    display: block;
    margin-top: 15px;
    font-weight: 600;
}

input,
textarea {
    width: 100%;
    padding: 12px;
    margin-top: 6px;
    border-radius: 8px;
    border: 2px solid #38bdf8;
    font-size: 16px;
}

button {
    margin-top: 20px;
    padding: 12px;
    background-color: #f97316;
    border: none;
    border-radius: 8px;
    font-size: 16px;
    cursor: pointer;
}

button:hover {
    background-color: #facc15;
    color: black;
}

/* Error messages (ARIA live regions) */
.error {
    color: #ff6b6b;
    font-weight: bold;
    margin-top: 8px;
}

/* ===============================
   REDUCED MOTION SUPPORT
   WCAG 2.3.3
================================= */

@media (prefers-reduced-motion: reduce) {
    * {
        transition: none !important;
        animation: none !important;
        scroll-behavior: auto !important;
    }
}

/* ===============================
   MOBILE RESPONSIVENESS
================================= */

@media (max-width: 600px) {
    iframe {
        height: 250px;
    }

    .container {
        padding: 16px;
    }

    .section {
        padding: 16px;
    }
}