/* ============================================================================
   Accessibility & Print Styles
   ============================================================================ */

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

@media (prefers-contrast: more) {
    :root {
        --border: oklch(0.15 0 0 / 0.25);
        --border-light: oklch(0.15 0 0 / 0.15);
    }

    .service-card { border-width: 2px; }
    a { text-decoration: underline; }
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 2px solid var(--foreground);
    outline-offset: 0.25rem;
}

.skip-to-content {
    position: absolute;
    top: -10rem;
    left: 0;
    background-color: var(--foreground);
    color: var(--background);
    padding: 0.5rem 1rem;
    z-index: 1000;
    font-family: var(--font-mono);
    font-size: 0.875rem;
}

.skip-to-content:focus {
    top: 0;
    outline: 2px solid var(--background);
    outline-offset: 0.25rem;
}

@media print {
    @page { margin: 1cm; }

    *,
    *::before,
    *::after {
        background: transparent !important;
        color: #000 !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }

    body {
        background-color: #fff !important;
        color: #000 !important;
    }

    .navbar,
    .floating-circle-1,
    .floating-circle-2,
    .mobile-menu-btn {
        display: none !important;
    }

    .hero {
        margin-top: 0;
        min-height: auto;
        padding: 2rem 0;
    }

    .hero-background { display: none; }

    a { text-decoration: underline; }

    a[href]::after {
        content: " (" attr(href) ")";
        font-size: 0.8em;
        color: #666;
    }

    h1, h2, h3 { page-break-after: avoid; }
    .service-card { page-break-inside: avoid; }
    img { max-width: 100%; page-break-inside: avoid; }
    .contact-form { display: none; }
}

@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    body { -webkit-font-smoothing: subpixel-antialiased; }
}
