/* NY Computer Networks V02
   Landed controls the layout, typography, spacing, and animations.
   This stylesheet only adds NYCN colors, logo treatment, and form details. */
:root {
    --nycn-blue: #005881;
    --nycn-steel: #5d85a9;
    --nycn-teal: #4d989e;
    --nycn-light: #85c7cc;
}
/* Roboto is Landed's original, openly licensed font. */
body, input, select, textarea { font-size: 1rem; }
a { color: var(--nycn-light); }
a:hover { color: #b1e2e5 !important; }
#header a, #footer h2 { color: #fff; }
#logo {
    height: inherit;
    left: 1.25em;
    line-height: inherit;
    margin: 0;
    position: absolute;
    top: 0;
    font-weight: 300;
}
#logo a { border: 0; }
#nav a[aria-current="page"] { color: #b1e2e5; }
#banner .content header h1 {
    font-size: 2.5em;
    line-height: 1.5;
    margin: 0;
    letter-spacing: -.025em;
}
#banner .content header .actions { justify-content: flex-end; margin-top: 1.8em; }
#banner .content .image.brand-seal { background: #fff; overflow: hidden; }
#banner .content .image.brand-seal img {
    height: 100%;
    width: 100%;
    object-fit: contain;
    padding: 1.5em;
    border-radius: 0;
}
.hero-credentials { letter-spacing: .1em; font-size: .9em; color: #b1e2e5; }
input[type="submit"].primary,
input[type="reset"].primary,
input[type="button"].primary,
.button.primary { background-color: var(--nycn-blue); }
input[type="submit"].primary:hover,
.button.primary:hover { background-color: #126f96; }
.button:hover { box-shadow: inset 0 0 0 1px var(--nycn-light); color: #b1e2e5 !important; }
.spotlight.style1 .content { border-color: var(--nycn-steel); }
.spotlight.style2 .content { border-color: var(--nycn-blue); }
.spotlight.style3 .content { border-color: var(--nycn-teal); }
.wrapper.style2 { background: var(--nycn-blue); }
.wrapper.style2 .button.primary { color: var(--nycn-blue) !important; }
header.major::after { background: var(--nycn-teal); }
.icon.major::before { color: #b1e2e5; }
#main > .container > header.major h1 { font-size: 2em; line-height: 1.5; letter-spacing: -.025em; }
.page-image img { max-height: 400px; object-fit: cover; }
.eyebrow { font-size: .875rem; letter-spacing: .1em; text-transform: uppercase; color: #b1e2e5; margin-bottom: 1em; }
.text-link { display: inline-block; margin-bottom: 1em; }
address { font-style: normal; }
#footer h2 { font-size: 1.35em; margin-bottom: .5em; }
#footer address { line-height: 1.8; }
#footer .copyright { font-size: .875rem; }
#inquiry-form label { margin-bottom: .7em; font-size: 1rem; }
#inquiry-form input, #inquiry-form textarea, #inquiry-form select { margin-bottom: 1.5em; }
#inquiry-form label span { color: rgba(255,255,255,.65); font-weight: 300; }
#inquiry-form select option { color: #fff; background: #272833; }
#inquiry-form button { white-space: normal; height: auto; min-height: 48px; line-height: 1.5; padding-top: .8em; padding-bottom: .8em; }
#inquiry-form .form-note, .privacy-note p { font-size: .9rem; }
.privacy-note { border-top: 1px solid rgba(255,255,255,.25); padding-top: 2em; margin-top: 2em; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
#form-status:not(:empty) { margin: 1.5em 0 1em; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid #b1e2e5 !important; outline-offset: 4px; }
.skip-link { position: fixed; top: -100px; left: 1rem; z-index: 10001; background: #fff; color: #111; padding: .75em; }
.skip-link:focus { top: 1rem; }
/* A useful fallback when JavaScript is disabled. */
@media (max-width: 736px) {
    #banner .content header h1 { font-size: 1.8em; }
    #banner .content header .actions { justify-content: center; }
    #banner .content .image.brand-seal img { padding: .8em; }
    .page-image img { max-height: 250px; }
    #footer a { overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; }
    .spotlight, #banner { background-attachment: scroll; }
    .spotlight.inactive .content,
    .wrapper.inactive > .container { opacity: 1 !important; transform: none !important; }
}

/* Brighter scroll control; Landed's placement and behavior are retained. */
.goto-next,
#banner .goto-next {
    width: 4.5em;
    height: 4.5em;
    box-sizing: border-box;
    aspect-ratio: 1 / 1;
    bottom: 1.4em;
    margin-left: -2.25em;
    border: 2px solid rgba(255, 255, 255, .95);
    border-radius: 50%;
    background: rgba(0, 88, 129, .85);
    box-shadow: 0 0 0 5px rgba(255, 255, 255, .12);
}
.goto-next::before {
    width: 2em;
    height: 1.25em;
    margin: -.625em 0 0 -1em;
    background-image: url('images/arrow-bold.svg');
}
.goto-next:hover, .goto-next:focus-visible {
    background: #005881;
    box-shadow: 0 0 0 7px rgba(255, 255, 255, .22);
}
/* Keep the bottom spotlight's scroll control clear of its text panel. */
.spotlight.bottom .goto-next { bottom: auto; top: 2em; }
#footer .icons { margin-bottom: 1.5em; }
.email-link { color: var(--nycn-light); }
#content > section + section { margin-top: 2.5em; }

/* Give the stacked biography columns breathing room on phones/tablets. */
@media screen and (max-width: 980px) {
    .nycn-bio .col-8 + aside {
        margin-top: 2em;
    }
}
