/* main.css */

/* These are the colors and fonts used throughout the webpage.
 * I've listed them here so that a user may easily
 * do a search-and-replace for these to change the site theme.
 *   'Roboto',sans-serif; Font for the title text
 *   'Roboto-Slab',serif; Font for the body text 
 *   #fafafa; Background color of the site
 *   #505050; Foreground (text) color of the site
 *   #52739e; Navy, "Template" in the logo, current page in navigation, special titles in the Program
 *   #b2132e; Reddish, "Conference" in the logo, hover color for links
 *   #813c54; Heading color, titles in the Program
 *   #b8860b; Dark Goldenrod, color for links
 */

@import url('https://fonts.googleapis.com/css?family=Roboto%7CRoboto+Slab');

* {
    border: 0;
    font: inherit;
    font-size: 1em;
    margin: 0;
    padding: 0;
    vertical-align: baseline;
}

body {
    background-color: #fafafa;
    background-size: cover;
    background-attachment: fixed;
    color: #505050;
    text-align: left;
    font-family: 'Roboto', sans-serif;
    font-size: 1em;
    line-height: 1.5em;
    margin: 60px auto;
    width: 1000px;
}

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

a.current {
    color: #52739e;
}

a.current:hover {
    color: #e82945;
}

a:hover {
    color: #b2132e;
}

a:active {
    color: #e82945;
}

h1,
h2,
h3,
h4 {
    clear: left;
    color: #813c54;
    margin: 1.5em 0em 1em 0em;
    font-family: 'Roboto Slab', serif;
    text-shadow: 1px 1px 2px #d0d0d0;
}

h1 {
    font-size: 2.67em;
}

h2 {
    font-size: 2.00em;
}

h3 {
    font-size: 1.67em;
}

h4 {
    font-size: 1.33em;
}

p {
    list-style: none;
    margin: 24px auto 24px auto;
    padding: 0px;
    width: 900px;
    text-align: left;
}

li a,
p a {
    text-decoration: underline;
    text-decoration-color: #b8860b;
}

ul {
    list-style: none;
    margin: 24px auto 24px auto;
    padding: 0px;
    width: 800px;
    text-align: left;
}

ul li {
    list-style: none;
    margin: 0px auto 0px auto;
    padding: 0px;
    text-align: left;
}

i,
em {
    font-style: italic;
}

b,
strong {
    font-weight: bold;
}

sup {
    vertical-align: super;
    font-size: 0.8em;
    line-height: 0;
}

sub {
    vertical-align: sub;
    font-size: 0.8em;
    line-height: 0;
}

table {
    width: 1000px;
    margin: 12px auto 24px auto;
    float: center;
    /* UNCOMMENT THIS FOR DEBUGGING THE ALIGNMENT */
    /*border: 1px solid black;*/
}

th,
td {
    text-align: left;
    /* UNCOMMENT THIS FOR DEBUGGING THE ALIGNMENT */
    /*border: 1px solid black;*/
}

/* Website Banner */
.banner {
    position: relative;
    font-family: 'Roboto Slab', serif;
}

.top-left {
    font-size: 2.83em;
    color: #505050;
    text-align: center;
    padding: 12px 0 12px 0;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    /* Stack logo and title-container */
    gap: 12px;
}

.top-left-logo {
    display: block;
    max-width: 260px;
}

.bottom-right {
    font-size: 2.33em;
    color: #505050;
    line-height: 1.5em;
    padding: 24px 0px 24px 0px;
    text-align: center;
}

/* Conference Title Logo */
.title-container {
    display: flex;
    justify-content: center;
    align-items: baseline;
    /* Align text baselines */
    gap: 12px;
    flex-wrap: wrap;
}

.title1 {
    color: #b2132e;
    text-shadow: 1px 1px 3px #c0c0c0;
}

.title2 {
    color: #52739e;
    text-shadow: 1px 1px 3px #c0c0c0;
}

.year {
    color: #52739e;
    font-size: 1.33em;
}

/* Navigation Links (Home, Registration, etc) */
table.navigation {
    width: 1000px;
}

td.navigation {
    font-size: 1.3em;
    white-space: nowrap;
    width: 10%;
    text-align: center;
    vertical-align: middle;
    padding: 0px 0px 0px 0px;
}

/* Sponsor Images */
table.sponsors {
    width: 800px;
}

td.sponsor {
    white-space: nowrap;
    width: 25%;
    text-align: center;
    vertical-align: middle;
    padding: 5px 5px 5px 5px;
}

td.sponsor img {
    width: 100%;
    max-height: 80px;
}

/* The Table on the Program Page */
td.room {
    padding: 4px 12px 4px 4px;
    width: 90%;
    vertical-align: bottom;
    font-size: 1.67em;
    color: #52739e;
    height: 32px;
}

td.date {
    white-space: nowrap;
    width: 130px;
    text-align: right;
    vertical-align: top;
    padding: 4px 16px 0px 0px;
}

td.title {
    padding: 4px 12px 4px 4px;
    width: 90%;
    vertical-align: top;
    font-size: 1.5em;
    color: #813c54;
    height: 32px;
    font-family: 'Roboto Slab', serif;
    text-shadow: 1px 1px 2px #d0d0d0;
}

td.title-special {
    padding: 4px 12px 4px 4px;
    width: 90%;
    vertical-align: top;
    font-size: 1.67em;
    color: #52739e;
    height: 32px;
    font-family: 'Roboto Slab', serif;
    text-shadow: 1px 1px 2px #d0d0d0;
}

td.speaker {
    padding: 4px 12px 4px 4px;
    font-style: italic;
    font-size: 1em;
    max-height: 999999px
}

.center-header {
    text-align: center;
}

td.abstract {
    padding: 4px 12px 12px 4px;
    font-size: 1em;
    max-height: 999999px
}

td.abstract img {
    display: block;
    margin: 4px auto 8px auto
}

table.plenary {
    padding-top: 8px;
    background: #ffffff;
}

/* Registration and Directions iframes and Images */
iframe.registration {
    display: block;
    margin: 1em auto 2em auto;
    width: 700px;
    height: 1400px;
    border: none;
}

iframe.directions {
    display: block;
    margin: 1em auto 2em auto;
    width: 800px;
    height: 400px;
    border: none;
}

img.center {
    display: block;
    width: 67%;
    margin: 1em auto 2em auto;
}

/* Flyer Images */
table.flyers {
    width: 800px;
}

td.flyer {
    white-space: nowrap;
    width: 50%;
    text-align: center;
    vertical-align: middle;
    padding: 0px 0px 0px 0px;
}

td.sponsor img {
    width: 100%
}

.partner-block {
    width: 100%;
    border-collapse: collapse;
    margin-top: 2em;
    margin-bottom: 2em;
}

.partner-block td {
    padding-top: 10px;
    padding-bottom: 10px;
}

footer {
    font-size: 0.875em;
    margin-top: 12em;
    text-align: center;
}

details {
    margin-top: 0.8em;
    margin-bottom: 0.8em;
    padding: 0.4em 0.6em;
    border: 1px solid #d0d0d0;
    border-radius: 6px;
    background: #fafafa;
}

summary {
    cursor: pointer;
    font-weight: 600;
    padding: 0.3em 0;
}

details details {
    background: #ffffff;
    margin-left: 2em;
}

.register-button {
    display: inline-block;
    padding: 14px 28px;
    font-size: 1.1em;
    font-weight: bold;
    text-decoration: none;
    background-color: #0b5fa5;
    color: white;
    border-radius: 8px;
}

.register-button:hover {
    background-color: #08497f;
}

/* My hacky way of making the site mobile-friendly */
@media only screen and (max-width: 1100px) {
    h2 {
        font-size: 3.00em;
    }

    p {
        font-size: 1.5em;
        line-height: 1.5em;
    }

    th,
    td,
    tr {
        font-size: 1.5em;
        line-height: 1.5em;
    }

    td.date {
        font-size: 1em;
        padding-top: 0.5em;
    }

    td.navigation {
        font-size: 1.5em;
        padding: 0px 20px 0px 20px;
    }

    table.footer {
        font-size: 0.33em;
    }
}

/* Post-event website updates: gallery and conference materials */
.post-event-note {
    width: 900px;
    margin: 1.4em auto 1.8em auto;
    padding: 1em 1.2em;
    background: #eef5fc;
    border-left: 5px solid #0b5fa5;
    border-radius: 8px;
    color: #333;
    text-align: justify;
}

.post-event-note strong {
    color: #0b5fa5;
}

.action-links {
    text-align: center;
    margin: 1em auto 2em auto;
}

.action-links a,
.media-button {
    display: inline-block;
    margin: 0.25em 0.35em;
    padding: 0.55em 0.85em;
    border-radius: 999px;
    background: #0b5fa5;
    color: white !important;
    font-weight: 700;
    text-decoration: none !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.action-links a.secondary,
.media-button.secondary {
    background: #b8860b;
}

.live-gallery-section {
    width: 900px;
    margin: 2em auto;
}

.live-gallery {
    margin: 1em auto 1.5em auto;
    background: #ffffff;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    padding: 1em;
    box-shadow: 0 2px 14px rgba(0, 0, 0, 0.08);
}

.gallery-stage {
    position: relative;
    width: 100%;
    background: #f3f3f3;
    border-radius: 10px;
    overflow: hidden;
    text-align: center;
}

.gallery-stage img {
    width: 100%;
    max-height: 560px;
    object-fit: contain;
    display: block;
    background: #f3f3f3;
}

.gallery-caption {
    margin-top: 0.65em;
    color: #333;
    text-align: center;
    font-weight: 600;
}

.gallery-controls {
    display: flex;
    justify-content: center;
    gap: 0.6em;
    margin-top: 0.7em;
}

.gallery-controls button {
    cursor: pointer;
    padding: 0.45em 0.8em;
    border-radius: 999px;
    background: #52739e;
    color: white;
    font-weight: 700;
}

.gallery-thumbs {
    display: flex;
    gap: 0.55em;
    margin-top: 0.9em;
    overflow-x: auto;
    padding-bottom: 0.25em;
}

.gallery-thumbs button {
    flex: 0 0 auto;
    width: 96px;
    height: 68px;
    border-radius: 7px;
    overflow: hidden;
    cursor: pointer;
    opacity: 0.72;
    outline: 3px solid transparent;
    background: #eee;
}

.gallery-thumbs button.active {
    opacity: 1;
    outline-color: #b8860b;
}

.gallery-thumbs img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.photo-grid {
    width: 900px;
    margin: 1.5em auto 2em auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1em;
}

.photo-grid figure {
    background: white;
    border: 1px solid #e0e0e0;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}

.photo-grid img {
    width: 100%;
    height: 170px;
    object-fit: cover;
    display: block;
}

.photo-grid figcaption {
    padding: 0.65em 0.75em;
    font-size: 0.95em;
    color: #333;
}

.presentation-media {
    display: none;
    margin-top: 0.9em;
    padding-top: 0.75em;
    border-top: 1px solid #e5e5e5;
    text-align: center;
}

.presentation-media.has-content {
    display: block;
}

.presentation-links {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5em;
    margin: 0.9em 0 1em;
}

.presentation-media figure {
    width: 100%;
    max-width: 640px;
    margin: 0 auto;
    background: white;
    border: 1px solid #e3e3e3;
    border-radius: 10px;
    overflow: hidden;
}

.presentation-media img {
    width: 100%;
    height: auto;
    object-fit: contain;
    display: block;
}

.presentation-media figcaption {
    display: none;
}

.materials-note {
    width: 900px;
    margin: 1em auto 1.5em auto;
    padding: 0.9em 1em;
    background: #fff8dc;
    border-left: 5px solid #b8860b;
    border-radius: 8px;
    text-align: justify;
}

@media (max-width: 1040px) {

    body,
    table.navigation,
    table {
        width: 94%;
    }

    p,
    ul,
    .post-event-note,
    .live-gallery-section,
    .photo-grid,
    .materials-note {
        width: 94%;
    }

    td.navigation {
        display: inline-block;
        width: auto;
        padding: 0.35em 0.55em;
        font-size: 1.05em;
    }

    .presentation-media figure {
        width: 100%;
    }
}