/* Small layout refinements; original palette, type and shadows retained. */
html { scroll-padding-top: 120px; }
.site-header { gap: 24px; box-shadow: 0 8px 0 #1c1c17; }
.site-header .site-logo, .site-header > .btn-brutal { flex-shrink: 0; white-space: nowrap; }
.site-header nav { gap: clamp(12px, 2vw, 32px); align-items: center; }
#menu-btn { font-size: 32px !important; width: 44px; height: 44px; flex-shrink: 0; }
#mobile-nav { max-height: calc(100dvh - 104px); overflow-y: auto; box-shadow: 0 8px 0 #1c1c17; }
#mobile-nav a { min-height: 44px; display: flex; align-items: center; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 3px solid #2e5bff; outline-offset: 5px;
}
.skip-link { position: fixed; top: 12px; left: 20px; z-index: 100; padding: 12px 18px; background: #fcf9f1; color: #1c1c17; transform: translateY(-180%); }
.skip-link:focus { transform: none; }
.neo-btn, .neo-btn-lg { display: inline-flex; justify-content: center; align-items: center; text-align: center; min-height: 52px; }
.grid > *, .form-input { min-width: 0; }
.form-input { width: 100%; text-transform: none; border: 2px solid #1c1c17; }
textarea.form-input { resize: vertical; min-height: 140px; }
.contact-email { display: inline-block; max-width: 100%; font-size: clamp(16px, 1.8vw, 24px); text-decoration: underline; text-underline-offset: 5px; overflow-wrap: anywhere; }
.portfolio-card { min-width: 0; }
.portfolio-card .portfolio-img-wrap { height: 250px; overflow: hidden; }
.portfolio-card.is-featured .portfolio-img-wrap { height: 300px; }
.portfolio-img-wrap .portfolio-img { height: 100%; min-width: 0; object-fit: contain; object-position: top; }
.portfolio-card h3 { overflow-wrap: normal; }
.portfolio-card:focus-visible .portfolio-img { filter: none; }
#portfolio-filters button { min-height: 44px; }
@media (max-width: 1279px) {
    .site-header { padding-inline: 24px; }
    #services > .grid { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
    .site-header { padding-inline: 20px; }
    main > section:first-child { min-height: auto; }
    main.mt-24 > section:first-child { padding-block: 56px 64px; }
    main.pt-40 { padding-top: 144px; }
    main.pt-40 > section:first-child { margin-bottom: 48px; }
    h1.hero-display { line-height: 1.08 !important; }
    .hero-display .neo-badge { padding: .22em .4em !important; }
    .neo-btn-lg { width: 100%; padding-inline: 18px !important; }
    #contact-form { scroll-margin-top: 120px; }
    main > .grid > .neo-animate { padding: 24px; }
    #contact-form .neo-form-field { opacity: 1; transform: none; }
    .contact-email { font-size: clamp(15px, 4.4vw, 22px); }
    .portfolio-card.is-featured .portfolio-img-wrap { height: auto; }
    .portfolio-card.is-featured .portfolio-img { height: auto; max-height: 280px; }
    .portfolio-card h3 { font-size: 1.25rem !important; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
    .neo-enter, .neo-badge, .neo-accent-line, .neo-animate, .neo-form-field { opacity: 1 !important; transform: none !important; }
}

.material-symbols-outlined.text-3xl { font-size: 30px; }
@media (min-width: 1280px) { #menu-btn { display: none; } }
/* Entrance effects must not create horizontal scrollbars. */
html, body { overflow-x: clip; }
