/* Consistent justified copy in every page, column, card, and footer. */
img { max-width: 100%; }
html body :is(p, blockquote, li, td, figcaption) {
    text-align: justify !important;
    text-align-last: left !important;
    text-justify: inter-word;
    word-spacing: normal !important;
    letter-spacing: normal;
    hyphens: auto !important;
    -webkit-hyphens: auto !important;
    hyphenate-limit-chars: 6 3 3;
    overflow-wrap: break-word;
    word-break: normal;
}
.grid > *, .flex > div { min-width: 0; }
section img, .reveal-img, .motion-card:hover img { filter: none; }
button:disabled { opacity: .65; cursor: wait; }
:where(a, button, input, select, textarea):focus-visible { outline: 2px solid #00AEEF; outline-offset: 4px; }
.contact-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
#quote-form select { text-overflow: ellipsis; }
#quote-form textarea { min-height: 10rem; resize: vertical; }
#form-success { line-height: 1.6; }
#quote-form label { color: #aeb8c8; }
#quote-form input::placeholder, #quote-form textarea::placeholder { color: #94a3b8; opacity: 1; }
@media (max-width: 640px) {
    header .font-display { font-size: 1rem !important; letter-spacing: .08em; }
    header a > div:first-child { flex-shrink: 0; }
    header a { gap: .65rem !important; }
    header a span + span.text-brand-cyan { font-size: .65rem !important; letter-spacing: .08em; }
    header > div { gap: .75rem; }
    #menu-btn { flex-shrink: 0; }
    #quote-form { font-size: 1rem; }
    #quote-form .grid { gap: 1.5rem; }
    #quote-form button[type="submit"] { font-size: .85rem !important; letter-spacing: .06em; padding-inline: .75rem; }
    main .lg\:col-span-7 > div { padding: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
    [data-aos] { opacity: 1 !important; transform: none !important; }
}
