/* Shared styles for nksonline.

   developer:   marionm
   requires:    nothing
   ========================================================================== */

/* ==========================================================================
   gui.en.css overrides
   ========================================================================== */

#_noscript div {
    bottom: 0;
    position: fixed;
    top: auto;
}

/* ==========================================================================
   setup the environment
   ========================================================================== */

html {
    background: #ffcc66;
    font-family: 'PT Serif', Georgia, serif;
}

b,
optgroup,
strong { font-weight: 700; }

main { overflow-x: auto; } /* Safari herp derp */

main a { color: #892917; }

main a:hover { color: #ff002f; }

/* ==========================================================================
   header
   ========================================================================== */

#header {
    background: #3b3b3b;
    height: 70px;
}

#header h1 { margin-top: .4rem; }

#header h1 img { display: inline-block; }

#header h1 a:hover img { opacity: .65; }

/* nav
   ========================================================================== */

#nav {
    color: #d4d4d4;
    float: right;
    margin-top: 1rem;
}

#nav > * { white-space: nowrap; }

#nav > * > * { padding-left: 1.5rem; }

#nav a { color: #e0b867; }

#nav a:hover { color: #ffa858; }

#nav .icon {
    -webkit-transition: opacity .5s;
    cursor: pointer;
    display: inline-block;
    opacity: .5;
    transition: opacity .5s;
    vertical-align: middle;
}

#nav .hamburger-active .icon,
#nav .icon:hover { opacity: 1; }

/* size picker
   ================================== */

#nav .size-picker {
    position: relative;
    z-index: 9999999999;
}

html.toc #nav .size-picker { display: none; }

#nav .size-picker .icon {
    background: url('/nks/img/icon-font-size.png') no-repeat left top;
    background-size: 18px 26px;
    height: 13px;
    width: 18px;
}

#nav .size-picker .icon:hover { background-position: 0 -13px; }

#nav .size-picker ul {
    background: #565656;
    border-radius: 3px;
    box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.25);
    color: #d0d0d0;
    display: none;
    font-size: .75rem;
    font-weight: 400;
    left: -.5rem;
    line-height: 1.2;
    margin: .5rem 0 0;
    padding: .25rem 0;
    position: absolute;
}

#nav .size-picker ul li {
    background: #565656;
    cursor: pointer;
    padding: .25rem 1.5rem .25rem 2rem;
}

#nav .size-picker ul li:hover {
    background: #cb6f07;
    color: #fff;
}

#nav .size-picker ul li span { position: relative; }

#nav .size-picker ul li.checked span:before {
    color: #ffdd54;
    content: '\2713';
    left: -1rem;
    position: absolute;
}

/* search
   ================================== */

#nav .search {}

#nav .search .icon {
    background: url('/nks/img/icon-search.png') no-repeat left top;
    background-size: 19px 38px;
    height: 19px;
    width: 19px;
}

#nav .search .icon:hover { background-position: 0 -19px; }

/* toc
   ================================== */

#nav .toc {}

html.toc #nav .toc,
html.index #nav .toc,
html.names #nav .toc,
html.search #nav .toc { display: none; }

#nav .toc .icon {
    background: url('/nks/img/icon-toc.png') no-repeat left top;
    background-size: 15px 28px;
    height: 14px;
    width: 15px;
}

#nav .toc .icon:hover { background-position: 0 -14px; }

/* breadcrumbs
   ================================== */

#nav .breadcrumbs {
    font-size: .75rem;
    padding-left: .5rem;
}

#nav .breadcrumbs a,
#nav .breadcrumbs span > span {
    display: inline-block;
    padding: .25rem;
    position: relative;
}

html.toc #nav .breadcrumbs,
html.index #nav .breadcrumbs,
html.names #nav .breadcrumbs,
html.search #nav .breadcrumbs { display: none; }

#nav .breadcrumbs div > span:before {
    color: #909090;
    content: '›';
    font-size: 19px;
    line-height: 0;
    margin-right: .2rem;
    position: relative;
    top: 1px;
}

/* search
   ========================================================================== */

#search {
    background: #565656;
    display: none;
    left: 0;
    padding: .5rem;
    position: absolute;
    right: 0;
    text-align: center;
    top: 70px;
    width: 100%;
    z-index: 999999999;
}

#search > div {
    color: #dadada;
    font-size: .875rem;
    line-height: 0;
    margin: 0 auto;
}

#search > div > div { padding: 0 1rem; }

#search input {
    -webkit-appearance: none; /* get rid of rounded caps in iOS */
    -webkit-transition: background .5s;
    background: rgba(255, 255, 255, 0.4);
    border-radius: 2px;
    border: none;
    font-weight: 400;
    line-height: 1.1;
    margin: 0 2rem 0 .5rem;
    padding: .25rem;
    text-align: left;
    transition: background .5s;
    width: 10rem;
}

#search input.filled,
#search input:focus,
#search input:hover { background: rgba(255, 255, 255, 1); }

#search #search-jump-input { width: 3rem; }

/* hamburger nav
   ========================================================================== */

#nav .nav-burger { display: none; }

#nav .nav-burger .hamburger { position: relative; }

#nav .nav-burger .hamburger .icon {
    background: url('/nks/img/icon-burger.png') no-repeat left top;
    background-size: 19px 18px;
    height: 18px;
    width: 19px;
}

#nav .nav-burger .burger-nav-l1 {
    background: #565656;
    display: none;
    left: 0;
    padding: 0;
    position: absolute;
    right: 0;
    text-align: left;
    top: 60px;
    z-index: 9999999999;
}

html.toc #nav .nav-burger .burger-nav-l1 > *:first-child,
html.index #nav .nav-burger .burger-nav-l1 > *:first-child,
html.names #nav .nav-burger .burger-nav-l1 > *:first-child,
html.search #nav .nav-burger .burger-nav-l1 > *:first-child { display: none; }

#nav .nav-burger .burger-nav-l1 > * { position: relative; }

#nav .nav-burger .burger-nav-l1 > *:hover,
#nav .nav-burger .burger-nav-l1 .burger-nav-active { background: #686868 !important; }

#nav .nav-burger .burger-nav-l1 > * > * { padding: .6rem 2rem .6rem .75rem; }

#nav .nav-burger .burger-nav-l1 .size-picker:after,
#nav .nav-burger .burger-nav-l1 .search:after {
    color: #ababab;
    content: '›';
    display: block;
    font-size: 2rem;
    font-weight: 300;
    line-height: 0;
    pointer-events: none;
    position: absolute;
    right: 1rem;
    top: 1rem;
}

#nav .nav-burger .burger-nav-l1 .burger-nav-active:after {
    -webkit-transition: rotate(90deg);
    color: #fff;
    top: 1.25rem;
    transform: rotate(90deg);
}

#nav .nav-burger .burger-nav-l1 .breadcrumbs { display: inline-block; }

#nav .nav-burger .burger-nav-tab-content { padding: .75rem 0 1rem 0; }

#nav .nav-burger .burger-nav-tab-content .burger-nav-l2 {
    border: none;
    display: block;
    font-size: 16px;
    padding: .75rem 2rem;
    text-align: left;
}

#nav .nav-burger .search #search {
    background: transparent;
    padding: 0;
    position: static;
    text-align: left;
    top: 0;
}

#nav .nav-burger .search #search > div {
    margin: 0;
    padding: .5rem;
}

#nav .nav-burger .search #search > div > div { padding: 0; }

#nav .nav-burger .size-picker ul {
    border-radius: 0;
    box-shadow: none;
    font-size: 1rem;
    margin: 0;
    position: static;
    padding: 0;
}

#nav .nav-burger .size-picker ul,
#nav .nav-burger .size-picker ul li,
#nav .nav-burger .search #search { background: transparent; }

#nav .nav-burger .size-picker ul { padding-bottom: .5rem; }

#nav .nav-burger .size-picker ul li.checked,
#nav .nav-burger .size-picker ul li:hover {
    background: #de8400;
    color: #fff;
}

#nav .nav-burger .size-picker ul li.checked span:before { left: -1.25rem; }

#nav .nav-burger .search #search > div > div:after {
    clear: both;
    content: '';
    display: table;
}

/* error stripe
   ========================================================================== */

#error-404 {
    background: #ffbc47;
    padding: .5rem;
    text-align: center;
    width: 100%;
}

#error-404 span {
    background: url('/nks/img/icon-error.png') no-repeat left center;
    background-size: 27px 27px;
    display: inline-block;
    font-size: 1.25rem;
    line-height: 27px;
    min-height: 27px;
    padding-left: 32px;
    text-align: left;
}

/* ==========================================================================
   shared sub-page styles
   ========================================================================== */

/* reactions to size picker
   ========================================================================== */

.thin-wrapper,
.wide-wrapper {
    margin: 0 auto;
    padding: 3rem 4rem;
    width: 100%;
}

.thin-wrapper { max-width: 900px; }
.wide-wrapper { max-width: 1128px; }

.thin-padding { padding: 4rem; }
.wide-padding { padding: 2rem 8rem; }

/* small
   ================================== */

html.size-small .thin-wrapper,
html.size-small .wide-wrapper { max-width: 778px; }

html.size-small .thin-padding,
html.size-small .wide-padding {
    padding-left: 4rem;
    padding-right: 4rem;
}

html.image-version.size-small #content .small { display: block; }
html.image-version.size-small #content .xlarge,
html.image-version.size-small #content .large,
html.image-version.size-small #content .medium { display: none; }

html:not(.size-auto).size-small .text-content { font-size: .75rem; }

/* medium
   ================================== */

html.size-medium .thin-wrapper,
html.size-medium .wide-wrapper { max-width: 878px; }

html.size-medium .thin-padding,
html.size-medium .wide-padding {
    padding-left: 4rem;
    padding-right: 4rem;
}

html.image-version.size-medium #content .medium { display: block; }
html.image-version.size-medium #content .xlarge,
html.image-version.size-medium #content .large,
html.image-version.size-medium #content .small { display: none; }

html:not(.size-auto).size-medium .text-content { font-size: 1rem; }

/* large
   ================================== */

html.size-large .thin-wrapper,
html.size-large .wide-wrapper { max-width: 978px; }

html.size-large .thin-padding,
html.size-large .wide-padding {
    padding-left: 6rem;
    padding-right: 6rem;
}

html.image-version.size-large #content .large { display: block; }
html.image-version.size-large #content .xlarge,
html.image-version.size-large #content .medium,
html.image-version.size-large #content .small { display: none; }

html:not(.size-auto).size-large .text-content { font-size: 1.25rem; }

/* xlarge
   ================================== */

html.size-xlarge .thin-wrapper,
html.size-xlarge .wide-wrapper { max-width: 1178px; }

html.size-xlarge .thin-padding,
html.size-xlarge .wide-padding {
    padding-left: 8rem;
    padding-right: 8rem;
}

html.image-version.size-xlarge #content .xlarge { display: block; }
html.image-version.size-xlarge #content .large,
html.image-version.size-xlarge #content .medium,
html.image-version.size-xlarge #content .small { display: none; }

html:not(.size-auto).size-xlarge .text-content { font-size: 1.5rem; }

/* footer
   ================================== */

.no-related-notes {
    color: #838383;
    font-size: .875rem;
    font-style: italic;
}

/* navigation
   ========================================================================== */

#previous,
#next { position: relative; }

#next { float: right; }

#previous a,
#next a {
    bottom: 0;
    height: 100%;
    position: fixed;
    top: 70px;
    width: 4rem;
    z-index: 999999998;
}

#previous a { margin-left: -4rem; }

#previous a span,
#next a span {
    color: #fff;
    display: block;
    font-family: 'Source Sans Pro', Arial, sans-serif;
    font-size: 9rem;
    height: 1.5em;
    line-height: 0;
    opacity: .5;
    position: fixed;
    text-align: center;
    top: 50%;
    width: 4rem;
}

#previous a:hover span,
#next a:hover span { opacity: 1; }

/* page content
   ========================================================================== */

#content {
    background: #fff;
    position: relative;
}

#content hr {
    background: #d5d5d5;
    border: none;
    display: block;
    height: 1px;
    margin: 1rem 0;
    width: 100%;
}

/* headings
   ================================== */

#content .main-heading {
    color: #000;
    font-size: 1.875rem;
    margin-bottom: 1rem;
}

#content .chapter-heading {
    color: #646464;
    font-size: 1.5rem;
    margin-bottom: 2rem;
}

#content .section-heading {
    color: #646464;
    font-size: 1.25rem;
    margin-bottom: 1rem;
}

#content .chapter-heading + .section-heading { margin-top: -2rem; }

#content .chapter-heading span,
#content .section-heading span { color: #000; }

#content .chapter-heading a,
#content .section-heading a { color: #646464; }

#content .chapter-heading a:hover,
#content .section-heading a:hover { color: #000; }

#content .chapter-heading a:hover span,
#content .section-heading a:hover span { color: #892917; }

/* notes tab
   ================================== */

#content .notes {
    position: absolute;
    right: -3.5rem;
    top: 3rem;
    z-index: 999999998;
}

#content .notes a {
    -webkit-transform: rotate(-90deg);
    background: #de8200;
    border-bottom-left-radius: 3px;
    border-bottom-right-radius: 3px;
    color: #fff;
    display: inline-block;
    padding: .5rem .75rem;
    text-transform: uppercase;
    transform: rotate(-90deg);
    z-index: 999999999;
}

#content .notes a:hover { background: #3b3b3b; }

/* two-column sets of links
   ================================== */

#content .page-links > * { padding-bottom: 1rem; }

#content .page-links > *:nth-child(odd) { padding-right: 1rem; }
#content .page-links > *:nth-child(even) { padding-left: 1rem; }

/* text content snowflakes
   ================================== */

.smallcaps { font-variant: small-caps; }
.overline { text-decoration: overline; }
.sqrt { font-style: normal !important; }

#content .text-content img {
    display: inline-block;
    height: auto;
    max-width: 100%;
}

#content sub,
#content sup { font-style: italic; }

#content .text-content .border {
    display: block;
    margin: 1rem auto;
}

#content code,
#content .maintextcode,
#content .displaycode,
#content .inlinecode,
#content .capcode {
    font-family: 'Source Sans Pro', Arial, sans-serif;
    font-style: italic;
    font-weight: 600;
}

#content .text-content .displaycode {
    margin: 1rem 2rem;
    word-wrap: break-word;
}

#content .text-content .wedge { display: none; }

#content span[class^='spacer-']:before {
    clear: right;
    content: '';
    display: block;
}

#content span[class^='spacer-']:after {
    content: '';
    display: inline-block;
}

#content .spacer-1:after { width: .25rem; }
#content .spacer-2:after { width: .5rem; }
#content .spacer-3:after { width: .75rem; }
#content .spacer-4:after { width: 1rem; }
#content .spacer-5:after { width: 1.25rem; }
#content .spacer-6:after { width: 1.5rem; }
#content .spacer-7:after { width: 1.75rem; }
#content .spacer-8:after { width: 2rem; }
#content .spacer-9:after { width: 2.25rem; }
#content .spacer-10:after { width: 2.5rem; }
#content .spacer-11:after { width: 2.75rem; }
#content .spacer-12:after { width: 3rem; }
#content .spacer-13:after { width: 3.25rem; }
#content .spacer-14:after { width: 3.5rem; }
#content .spacer-15:after { width: 3.75rem; }
#content .spacer-16:after { width: 4rem; }

/* ==========================================================================
   thick footer
   ========================================================================== */

#footer {
    background: #fff;
    margin-top: 3px;
}

html.notes-section #footer,
html.notes-page #footer {
    background: none;
    margin-top: 0;
    padding: 0;
}

#footer a { color: #951500; }

#footer a:hover { color: #000; }

/* headings and lists
   ========================================================================== */

#footer h2 {
    color: #454545;
    margin-bottom: 1rem;
    text-transform: uppercase;
}

#footer li { margin-bottom: .5rem; }

#footer li:nth-child(odd) > span { margin-right: 1rem; }
#footer li:nth-child(even) > span { margin-left: 1rem; }

#footer li a {
    display: inline-block;
    padding-left: .75rem;
    position: relative;
}

#footer li a:before {
    color: #951500;
    content: '»';
    left: 0;
    position: absolute;
}

#footer hr {
    border: none;
    display: block;
    height: 1px;
    background: #d5d5d5;
    margin: 2rem 0 1rem;
    width: 100%;
}

#footer #details-view .grid > * {
    font-size: .75rem;
    margin-right: .5rem;
    text-align: center;
}

#footer #details-view img { border: 1px solid #f4662e; }

/* ==========================================================================
   inline footer
   ========================================================================== */

#inline-footer {
    border-top: 1px solid #d5d5d5;
    font-size: .875rem;
    margin-top: 2rem;
    padding-top: 1rem;
    text-align: center;
}

#inline-footer a {
    color: #020202;
    display: inline-block;
}

#inline-footer a:hover { color: #951500; }

#inline-footer div:not(:last-of-type) a { margin-right: 2rem; }

#inline-footer .mini-t img {
    margin-right: .5rem;
    position: relative;
    top: -2px;
    vertical-align: middle;
}

#inline-footer .pdf-link {
    color: #020202;
    display: inline-block;
    position: relative;
}

#inline-footer .tooltip {
    background: #fff;
    border-radius: .25rem;
    box-shadow: 0 0 1rem rgba(0, 0, 0, .2);
    display: none;
    left: 0;
    line-height: 1.5;
    padding: .75rem 1rem;
    position: absolute;
    text-align: left;
    top: -1.5rem;
    white-space: nowrap;
    z-index: 9999999;
}

#inline-footer .tooltip .close {
    background: #fff;
    border-radius: 1rem;
    box-shadow: 0 0 1rem rgba(0, 0, 0, .2);
    color: #892917;
    cursor: pointer;
    font-size: .5rem;
    height: 16px;
    line-height: 16px;
    position: absolute;
    right: -.3rem;
    text-align: center;
    top: -.3rem;
    width: 16px;
    z-index: 99999999;
}

#inline-footer .tooltip a { color: #892917; }

#inline-footer .tooltip a:hover { color: #ff002f; }

/* ==========================================================================
   citation
   ========================================================================== */

#citation {
    color: #646464;
    font-size: .75rem;
    margin-top: .5rem;
}

/* ==========================================================================
   responsive breakpoint styles
   ========================================================================== */

/* styles for large screens (1200px)
   ========================================================================== */

@media all and (max-width: 1200px) {}

/* styles for medium screens (900px)
   ========================================================================== */

@media all and (max-width: 900px) {
    #nav > * > * { padding-left: 1rem; }
    #nav .size-picker ul { left: -1rem; }

    #nav .breadcrumbs { font-size: .75rem; }

    #search form {
        display: block;
        margin: .25rem 0;
    }

    .wide-padding { padding: 2rem 4rem !important; }
    .thin-padding { padding: 2rem !important; }

    #footer { padding: 2rem 4rem; }
}

/* styles for small screens (600px)
   ========================================================================== */

@media all and (max-width: 600px) {
    #header { height: 60px; }
    #header h1 img { width: 300px; }
    #search { top: 60px; }
    #error-404 span {
        background-size: 19px 19px;
        font-size: .9rem;
        padding-left: 23px;
    }

    #nav { margin-top: .5rem; }
    #nav > * > * { padding-left: .75rem; }
    #nav .nav-main { display: none; }
    #nav .nav-burger { display: table-row; }

    #content .notes { display: none; }

    .wide-wrapper,
    .thin-wrapper,
    .wide-padding,
    .thin-padding { padding: 1rem !important; }

    #previous a,
    #next a {
        margin-left: 0;
        width: 0;
        z-index: 999999999;
    }

    #previous a:hover span,
    #next a:hover span { opacity: 0; }

    #previous a span,
    #next a span {
        -webkit-transition: opacity .5s;
        color: #3d3d3d;
        display: none;
        font-size: 23rem;
        height: 1em;
        opacity: 0;
        transition: opacity .5s;
        width: 10rem;
    }

    #next a span { right: 1rem; }

    #previous .half,
    #next .half,
    #previous a:hover span.half,
    #next a:hover span.half {
        display: block;
        opacity: .5;
    }

    #content .page-links > *:nth-child(odd) { padding-right: 0; }
    #content .page-links > *:nth-child(even) { padding-left: 0; }

    #inline-footer div:not(:last-of-type) a { margin-right: 0; }

    #footer { padding: 2rem; }
    #footer li { margin-bottom: 0; }
    #footer li:nth-child(odd) span { margin-right: 0; }
    #footer li:nth-child(even) span { margin-left: 0; }
}

/* styles for minimum supported screen width (320px)
   ========================================================================== */

@media all and (max-width: 320px) {}

/* printer styles
   ========================================================================== */

@media print {}