/* Base reset */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center, dl, dt, dd, ol, ul, li,
fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary, time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font: inherit;
    vertical-align: baseline;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
    display: block;
}

body {
    line-height: 1;
    background: #fff;
    color: #5c5c5c;
    font-family: adobe-garamond-pro, Georgia, serif;
    font-size: 14px;
}

ol, ul {
    list-style: none;
}

a {
    color: #111;
    text-decoration: none;
}

a:hover {
    color: #444;
}

img {
    max-width: 100%;
    height: auto;
    border: 0;
    display: block;
    -webkit-user-drag: none;
    user-select: none;
}

.clear:after {
    content: "";
    display: table;
    clear: both;
}

#canvas {
    max-width: 1100px;
    margin: 0 auto;
    padding: 48px 36px 0;
    box-sizing: border-box;
    background: #fff;
}

#header, #hero, #page, .info-footer-wrapper, #footer {
    width: 100%;
}

.logo {
    text-align: center;
}

.logo img {
    margin: 0 auto;
    max-height: 155px;
    width: auto;
}

#topNav, #mobileNav {
    text-align: center;
}

#topNav ul, #mobileNav ul {
    display: inline-block;
}

#topNav li, #mobileNav li {
    display: inline-block;
    margin: 0 14px;
    font-family: adobe-garamond-pro, Georgia, serif;
    font-size: 12px;
    line-height: 1.6em;
    letter-spacing: 2px;
    text-transform: uppercase;
}

#mobileNav {
    max-height: 0;
    overflow: hidden;
}

#mobileMenuLink {
    display: none;
    text-align: center;
    margin: 0 0 15px;
}

#mobileMenuLink a {
    cursor: pointer;
    font-size: 16px;
}

#hero {
    margin-top: 28px;
}

#hero .page-image,
#hero .image-wrapper {
    text-align: center;
}

#hero .hero-img {
    margin: 0 auto;
    width: auto;
    max-width: 860px;
    max-height: 72vh;
}

#page {
    margin: 35px auto;
}

.sqs-layout {
    max-width: 860px;
    margin: 0 auto;
}

.sqs-block-content,
.sqs-block-content p {
    text-align: center;
    line-height: 1.45em;
}

p {
    margin: 0 0 0.8em;
}

h1, h2, h3 {
    color: #222;
}

h2 {
    font-size: 1.2em;
}

#projectPages {
    max-width: 960px;
    margin: 0 auto;
}

.project-title, .project-description {
    text-align: center;
}

.project-title {
    margin: 10px 0 8px;
}

.project-description {
    margin: 0 0 18px;
}

.image-list .image {
    display: block;
    margin: 0 auto 22px;
    text-align: center;
    visibility: visible;
    opacity: 1;
}

.image-list .image img {
    display: block;
    margin: 0 auto;
    max-width: 90%;
    height: auto;
}

.image-list .image-meta {
    width: 80%;
    margin: 8px auto 0;
    text-align: center;
}

.group-gallery {
    max-width: 980px;
    margin: 24px auto 0;
    text-align: center;
}

.group-gallery .gallery-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 18px;
}

.group-gallery .gallery-item {
    width: 300px;
}

.group-gallery .gallery-caption {
    margin-top: 8px;
    text-align: center;
}

#socialLinks {
    text-align: center;
    padding: 18px 0;
}

#footer {
    padding: 34px 0;
}

@media only screen and (max-width: 767px) {
    #canvas {
        padding: 24px 17px 0;
    }

    #header #topNav {
        display: none;
    }

    #mobileMenuLink {
        display: block;
    }

    #mobileNav.menu-open {
        max-height: 999px;
        overflow: visible;
    }

    #topNav li, #mobileNav li {
        margin: 0 8px;
    }

    #hero .hero-img {
        max-width: 100%;
        max-height: none;
    }
}

/* Public gallery pages: show hamburger at desktop widths (see inline slide-out nav on .aspx). */
body.mobile-style-available #mobileMenuLink {
    display: block !important;
}
body.mobile-style-available #header #topNav {
    display: none !important;
}

/* Ensure slide-out works on desktop (override base #mobileNav max-height / stacking). */
body.mobile-style-available #mobileNav {
    max-height: none !important;
    left: -280px;
    transition: left 0.28s ease;
}
body.mobile-style-available #mobileNav.menu-open {
    left: 0 !important;
}
