@charset "UTF-8";

/*-------------------------
 * Colours
 * Main Red #e2231a
 * Sec Red  #b3272d
 * Gray     #646469
 *
-------------------------*/

/*--------------------------------------------------------------
# {{{ Generic
--------------------------------------------------------------*/

/* {{{ Normalize
--------------------------------------------- */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  font-size: 1em;
  white-space: pre-wrap;
}

/* Text-level semantics
   ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}
/*  }}} */

/* {{{ Box sizing
--------------------------------------------- */

/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
  box-sizing: inherit;
}

html {
  box-sizing: border-box;
}
/*  }}} */


/*--------------------------------------------------------------
# }}} Generic
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Site styles (Fall 2026 refresh)
--------------------------------------------------------------*/

/* {{{ Tokens */
:root {
  --fan-red: #e2231a;
  --sec-red: #b3272d;
  --fan-grey: #646469;
  --border-grey: #707070;
  --bracket-grey: #b5b5b5;
  --paper: #ffffff;
  --box-grey: #ececec;
  --content-width: 900px;
  --column-width: 792px;
}
/* }}} Tokens */

/* {{{ Tags */
body {
  /* Paper texture fades to white at its bottom edge: show it once at the top,
     tiled sideways at half the viewport width so the grain stays fine; plain
     white continues below it on long pages. */
  background: #fff url(/images/page-texture.webp?v=20260922) center top / max(100%, 500px) auto repeat-x;
  color: #000;
  font: 16px/1.5 'Montserrat', sans-serif;
  margin: 0;
  padding: 0;
}

img { border: 0; padding: 0; width: 100%; display: block; }

h1, h2, h3, h4, h5, h6 { color: black; font-weight: 700; line-height: 1.2; margin: 0 0 0.5em; }
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { font-weight: inherit; text-decoration: none; }
h1 { font-size: 34px; }
h2 { font-size: 34px; font-weight: 500; color: var(--fan-red); }
h3 { font-size: 22px; }
h4 { font-size: 18px; }

h2.black { color: #000; font-weight: 700; text-transform: uppercase; text-align: center; }

p { margin: 0 0 1em; }

a, a:visited { color: var(--fan-red); }
a:hover, a:focus { color: var(--sec-red); }

ul { list-style: none; padding-left: 30px; }
ul li { margin: 0 0 8px 0; }
ul li::before {
  content: "•";
  color: var(--fan-red);
  font-size: 50px;
  line-height: 0;
  vertical-align: middle;
  display: inline-block;
  width: 30px;
  margin-left: -30px;
}
ul.tri > li::before {
  content: "\25B6 \FE0E";
  font-size: 14px;
  width: 20px;
  margin-left: -24px;
}

/* Lists with a bold red lead-in instead of a bullet */
ul.leadins { padding-left: 0; }
ul.leadins li { margin: 0 0 16px; }
ul.leadins li::before { content: none; }
ul.leadins li b { color: var(--fan-red); }
ul.leadins.stacked li b { display: block; }

ol { list-style: none; counter-reset: ol-counter; }
ol li { counter-increment: ol-counter; }
ol li::before {
  content: counter(ol-counter) ". ";
  color: var(--fan-red);
  font-weight: bold;
  margin-left: -1em;
}
/* }}} Tags */

/* {{{ Buttons */
a.btn, .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 303px;
  min-height: 70px;
  padding: 12px 30px;
  margin: 0;
  font-family: 'Montserrat', sans-serif;
  font-size: 23px;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  color: #fff;
  touch-action: manipulation;
  cursor: pointer;
  border: 0;
  border-radius: 0;
  user-select: none;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.btn:focus, .btn:active:focus { outline: 3px solid rgba(0,0,0,0.4); outline-offset: 2px; }
.btn:hover, .btn:focus { color: #fff; text-decoration: none; }
.btn.disabled, .btn[disabled], fieldset[disabled] .btn { cursor: not-allowed; opacity: 0.65; }

.btn-primary, a.btn-primary, a.btn-primary:visited { color: #fff; background-color: var(--fan-red); }
.btn-primary:hover, .btn-primary:focus, a.btn-primary:hover, .btn-primary:active { color: #fff; background-color: var(--sec-red); }

.btn-black, .btn-secondary, a.btn-black, a.btn-secondary,
a.btn-black:visited, a.btn-secondary:visited { color: #fff; background-color: #000; }
.btn-black:hover, .btn-black:focus, .btn-secondary:hover, .btn-secondary:focus,
a.btn-black:hover, a.btn-secondary:hover { color: #fff; background-color: #333; }

.btn.btn-small, .btn.btn-sm { min-width: 0; min-height: 0; padding: 8px 20px; font-size: 14px; }
a.btn-large { width: 100%; max-width: 303px; margin: 0 auto 20px; }

.btn-test, a.btn-test:visited { color: #fff; background-color: #f0f; }
.btn-test:hover, .btn-test:focus, a.btn-test:hover { color: #fff; background-color: #7f007f; }

@media only screen and (max-width: 650px) {
  a.btn, .btn { min-width: 0; width: 100%; max-width: 400px; font-size: 20px; padding: 12px 16px; }
}
/* }}} Buttons */

/* {{{ Layout */
.content { width: 100%; max-width: var(--content-width); margin: 0 auto; position: relative; }
.column { width: 100%; max-width: var(--column-width); margin: 0 auto; }
.inner-content { max-width: var(--column-width); margin: 0 auto; }

/* Thin grey corner brackets (top-left, bottom-right) around a content block */
.framed { position: relative; padding: 50px 0 60px; }
.framed::before, .framed::after {
  content: "";
  position: absolute;
  width: 90px;
  height: 70px;
  pointer-events: none;
}
.framed::before { top: 0; left: -40px; border-top: 2px solid var(--bracket-grey); border-left: 2px solid var(--bracket-grey); }
.framed::after { bottom: 0; right: -40px; border-bottom: 2px solid var(--bracket-grey); border-right: 2px solid var(--bracket-grey); }

@media only screen and (max-width: 990px) {
  .framed::before { left: 8px; }
  .framed::after { right: 8px; }
}
@media only screen and (max-width: 650px) {
  .column { padding-left: 16px; padding-right: 16px; }
  .framed { padding: 40px 16px 50px; }
  .framed::before, .framed::after { width: 50px; height: 40px; }
  .framed::before { left: 0; }
  .framed::after { right: 0; }
}
/* }}} Layout */

/* {{{ Header */
header {
  width: 100%;
  background: var(--fan-red) url(/images/header-bg.webp?v=20260922) center / cover no-repeat;
  height: clamp(150px, 27.5vw, 331px);
  position: relative;
  overflow: hidden;
}
header .content { height: 100%; display: flex; align-items: center; }

header .vlogo {
  position: absolute;
  left: 20px;
  top: 12%;
  width: clamp(28px, 4vw, 48px);
  height: clamp(122px, 17.5vw, 210px);
  display: block;
}
header .vlogo img {
  width: clamp(122px, 17.5vw, 210px);
  height: auto;
  position: absolute;
  top: 0;
  left: 0;
  transform-origin: top left;
  transform: rotate(90deg) translateY(-100%);
}

header h1 {
  flex: 1;
  margin: 0;
  padding: 0 40px 0 90px;
  text-align: center;
  font-size: clamp(38px, 7vw, 85px);
  font-weight: 400;
  line-height: 1;
  color: #fff;
}
header h1 a, header h1 a:visited, header h1 a:hover { color: #fff; text-decoration: none; }

header .bracket { position: absolute; width: clamp(30px, 6vw, 75px); height: clamp(28px, 5.5vw, 70px); pointer-events: none; }
header .bracket-tr { top: 14%; right: 30px; border-top: 3px solid #fff; border-right: 3px solid #fff; }
header .bracket-bl { bottom: 16%; left: 100px; border-bottom: 3px solid #fff; border-left: 3px solid #fff; }

@media only screen and (max-width: 650px) {
  header .vlogo { left: 10px; }
  header h1 { padding: 0 20px 0 50px; }
  header .bracket-tr { right: 12px; }
  header .bracket-bl { left: 50px; }
}

#times { text-align: center; padding: clamp(30px, 8vw, 90px) 10px 30px; }
#times h1 {
  font-weight: 700;
  font-size: clamp(18px, 4vw, 37px);
  margin: 0 0 6px;
}
#times .menu {
  color: var(--fan-red);
  font-weight: 700;
  font-size: clamp(14px, 2.6vw, 24px);
  margin: 0;
}

@media only screen and (max-width: 450px) {
  body { overflow-x: hidden; }
}
/* }}} Header */

/* {{{ Two-column text + image blocks */
.split { display: flex; gap: 40px; align-items: flex-start; }
.split .text { flex: 1; min-width: 0; }
.split .image { flex: none; }
.split .image img { width: 100%; height: 100%; object-fit: cover; }

@media only screen and (max-width: 650px) {
  .split { flex-direction: column; align-items: center; gap: 20px; }
  .split .image { width: 100% !important; max-width: 400px; height: auto !important; }
  .split .image img { height: auto; }
}
/* }}} Two-column text + image blocks */

/* {{{ Home - intro */
#home-intro .image { width: 260px; }
#home-intro .text p:last-child b { color: var(--fan-red); }
/* }}} */

/* {{{ Home - register-now */
#register-now { margin: 40px 0; }
#register-now fieldset {
  width: 100%;
  max-width: var(--column-width);
  margin: 0 auto;
  padding: 0 40px 40px;
  background: #fff;
  border: 1px solid var(--border-grey);
  text-align: center;
}
/* Floated so it leaves the border notch and spans the top of the box */
#register-now .contest-banner {
  float: left;
  width: calc(100% + 80px);
  max-width: none;
  margin: 0 -40px 30px;
  padding: 18px 20px 20px;
  background: var(--fan-red);
  color: #fff;
  text-transform: uppercase;
  line-height: 1.1;
}
#register-now .contest-banner + * { clear: both; }
#register-now .contest-banner .lead { display: block; font-size: 24px; font-weight: 500; }
#register-now .contest-banner .win { display: block; margin-top: 4px; font-size: 40px; font-weight: 700; }
#register-now .contest-banner sup { font-size: 0.45em; font-weight: 500; vertical-align: top; position: relative; top: 0.3em; }
#register-now .legal { font-size: 12px; font-style: italic; text-align: left; }
#register-now .contest-rules {
  max-width: var(--column-width);
  margin: 8px auto 0;
  font-size: 12px;
  text-align: left;
}
#register-now .contest-rules a { color: var(--fan-red); text-decoration: underline; }

@media only screen and (max-width: 650px) {
  #register-now fieldset { width: calc(100% - 20px); padding: 0 15px 30px; }
  #register-now .contest-banner { width: calc(100% + 30px); margin: 0 -15px 20px; padding: 14px 10px 16px; }
  #register-now .contest-banner .lead { font-size: 15px; }
  #register-now .contest-banner .win { font-size: 26px; }
  #register-now .contest-rules { width: calc(100% - 20px); }
}
/* }}} Home - register-now */

/* {{{ Home - explore */
#explore { padding-top: 40px; }
#explore .image { width: 300px; height: 294px; }
#explore .image img { object-position: 55% center; }
/* }}} Home - explore */

/* {{{ CTA box (grey textured band with buttons) */
.cta-box {
  background: var(--box-grey) url(/images/page-texture.webp?v=20260922) center / cover no-repeat;
  padding: 40px 20px;
  margin: 40px auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 30px;
  text-align: center;
}
.cta-box h2 {
  width: 100%;
  margin: 0 0 6px;
  color: #000;
  font-size: 34px;
  font-weight: 700;
  text-transform: uppercase;
}
.cta-box:empty { display: none; }
.cta-plain { text-align: center; padding: 10px 20px 20px; }

@media only screen and (max-width: 650px) {
  .cta-box { padding: 30px 16px; gap: 20px; }
  .cta-box h2 { font-size: 26px; }
}
/* }}} CTA box */

/* {{{ Thank-you */
#thank-you .notice { font-size: 14px; font-style: italic; font-weight: 500; }

/* Add-to-calendar widget (ouical) styled as a red button */
#calendar-button { margin: 0 auto; }
#calendar-button .add-to-calendar { position: relative; }
.add-to-calendar-checkbox {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 303px;
  min-height: 70px;
  padding: 12px 30px;
  background: var(--fan-red);
  color: #fff;
  font-size: 23px;
  font-weight: 600;
  text-align: center;
  cursor: pointer;
  transition: background-color 0.3s ease;
}
.add-to-calendar-checkbox:hover { background: var(--sec-red); }
input[type=checkbox].add-to-calendar-checkbox { position: absolute; left: -9999px; }
.add-to-calendar-checkbox ~ a { display: none; }
.add-to-calendar-checkbox:checked ~ a {
  display: block;
  width: 303px !important;
  margin: 8px auto 0 !important;
  padding: 8px 12px !important;
  background: #fff;
  border: 1px solid var(--border-grey);
  text-align: left;
  text-decoration: none;
  font-weight: 600;
  color: #000;
}
.add-to-calendar-checkbox:checked ~ a:hover { color: var(--fan-red); }

@media only screen and (max-width: 650px) {
  .add-to-calendar-checkbox { min-width: 0; width: 100%; max-width: 400px; font-size: 20px; }
  .add-to-calendar-checkbox:checked ~ a { width: 100% !important; max-width: 400px; }
}
/* }}} Thank-you */

/* {{{ Welcome */
#welcome h1 { text-align: center; text-transform: uppercase; font-size: 34px; margin-bottom: 30px; }
#welcome .option { text-align: center; padding: 10px 0; }
#welcome .option p.lead { font-size: 18px; margin: 0 0 20px; }
#welcome hr.rule { border: 0; border-top: 1px solid #000; width: 100%; margin: 20px auto; }
/* }}} Welcome */

/* {{{ Itinerary - where do I start */
.btn-choices {
  display: flex;
  justify-content: center;
  gap: 24px;
  margin: 0 auto;
  padding: 10px 0;
}
.btn-choices .btn { flex: 0 1 303px; white-space: normal; }

@media only screen and (max-width: 650px) {
  .btn-choices { flex-direction: column; align-items: center; gap: 16px; }
  .btn-choices .btn { flex: none; }
}
/* }}} Itinerary - where do I start */

/* {{{ Itinerary - search */
#live-sessions h2 { margin-top: 30px; }

#sessionSeachBox {
  border: 1px solid var(--border-grey);
  background: #fff;
  height: 44px;
  margin: 8px 0 20px;
}
#sessionSeachBox .searchbar { display: flex; align-items: stretch; height: 100%; }
#sessionSeach { flex: 1; min-width: 0; border: 0; padding: 0 12px; font: 16px 'Montserrat', sans-serif; background: transparent; }
#sessionSeach:focus { outline: none; }
#search-action {
  display: flex;
  align-items: center;
  padding: 0 14px;
  color: var(--fan-red);
  background: transparent;
}

label.p { display: inline-block; font-weight: 700; font-size: 14px; margin: 0; }

.searchcats { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 20px; }
.searchcats > *:nth-child(2) { width: 444px; max-width: 60%; }
.searchcats select, #location {
  width: 100%;
  height: 44px;
  padding: 0 40px 0 12px;
  border: 1px solid var(--border-grey);
  border-radius: 0;
  background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='M1 1l7 7 7-7' fill='none' stroke='%23e2231a' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 14px center;
  font: 14px 'Montserrat', sans-serif;
  color: #000;
  appearance: none;
  -webkit-appearance: none;
}
optgroup[label], optgroup { color: var(--fan-red); font-weight: 700; text-align: center; }
option { color: black; font-weight: 400; text-align: left; }

@media only screen and (max-width: 650px) {
  .searchcats { flex-direction: column; align-items: stretch; gap: 8px; }
  .searchcats > *:nth-child(2) { width: 100%; max-width: none; }
}

#session-listing {
  max-height: 500px;
  min-height: 100px;
  overflow: auto;
  padding: 0;
  background: #fff;
  border: 1px solid var(--border-grey);
  position: relative;
}
#session-listing::-webkit-scrollbar { width: 14px; }
#session-listing::-webkit-scrollbar-track { background: #fff; border-left: 1px solid var(--border-grey); }
#session-listing::-webkit-scrollbar-thumb { background: #000; }

.event-item { padding: 12px 14px; display: none; }
.event-item.active { display: block; }
.event-item:nth-child(even of .active) { background: #f4f4f4; }
.event-item:hover { background: #ededed; }
.event-item .bold { font-weight: 700; font-size: 14px; }
.event-item i { font-size: 14px; }
.event-item p { margin: 0; }
.event-item .searchable { display: none; }
#showsearchxt:checked ~ .event-item .searchable { display: block; }
#live-sessions #session-listing .event-item .category { display: none; }

#no-results { display: none; padding: 10px; }
#no-results.active { display: block; }

#fade {
  background: linear-gradient(0deg, rgba(255,255,255,1) 0%, transparent 100%);
  position: sticky;
  bottom: -10px;
  width: 100%;
  height: 50px;
  z-index: 3;
}
/* }}} Itinerary - search */

/* {{{ Itinerary - campus accordions */
.section-header {
  background: var(--fan-red);
  color: #fff;
  min-height: 70px;
  padding: 12px 20px;
  margin: 18px auto 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
}
.section-header h2 { color: #fff; font-size: 23px; font-weight: 600; text-transform: uppercase; margin: 0; }
.section-header h3 { color: #fff; font-size: 18px; font-weight: 600; margin: 0; }

.section-header div.section-expand-icon {
  font-weight: 400;
  font-size: 40px;
  line-height: 1;
  min-width: 25px;
  text-align: right;
  transition: transform 0.3s ease;
  transform-origin: center;
}
.section-header.open div.section-expand-icon { transform: rotate(45deg); }

.section-header + div.section-content { max-height: 0; overflow: hidden; opacity: 0; transition: all 0.5s linear; }
.section-header.open + div.section-content { max-height: 4000px; opacity: 1; }
div.section-content h3 + p { margin-top: 0; }

.grey-content { background: #fff; border: 1px solid var(--border-grey); border-top: 0; padding: 20px 30px; }
.grey-content > h3 { margin-top: 0; }
.white-content { background: #fff; padding: 20px 30px; }

.call-out {
  color: #fff;
  background: var(--fan-red);
  margin: 10px auto;
  width: 90%;
  padding: 10px 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  text-align: center;
}
.call-out a { color: #fff; }

@media only screen and (max-width: 650px) {
  .section-header h2 { font-size: 18px; }
  .grey-content { padding: 16px; }
}
/* }}} Itinerary - campus accordions */

/* {{{ Itinerary - getting here */
#getting-here { padding-top: 40px; }
#getting-here .image { width: 300px; }
#getting-here .image img { height: auto; }
#getting-here ul { padding-left: 0; }
#getting-here ul li::before { content: none; }
#getting-here ul li { margin-bottom: 14px; }
/* }}} Itinerary - getting here */

/* {{{ Footer */
footer { width: 100%; display: block; background: var(--fan-red); padding: 24px 0; margin-top: 30px; }
footer .content { display: flex; justify-content: space-between; align-items: center; padding: 0 20px; }
footer .logo { display: block; width: 180px; }
.socialwrap { display: flex; flex-direction: row; align-items: center; gap: 18px; }
.socialwrap a {
  color: #fff;
  font-size: 22px;
  line-height: 1;
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.socialwrap a:hover { color: #fff; opacity: 0.75; }

@media only screen and (max-width: 650px) {
  footer .content { flex-direction: column; gap: 20px; }
  .socialwrap { gap: 14px; }
}
/* }}} Footer */

/* {{{ Misc. Classes */
.desktop-only { display: initial !important; }
.mobile-only { display: none !important; }
@media screen and (max-width: 650px) {
  .desktop-only { display: none !important; }
  .mobile-only { display: initial !important; }
}

.center { text-align: center; }
.red { color: var(--fan-red); }
.sec-red { color: var(--sec-red); }
.group:after { content: ""; display: table; clear: both; }

.welcome-option { text-align: center; width: 95%; max-width: 600px; margin: 30px auto; }
/* }}} Misc. Classes */

/* {{{ Form Alert - Borrowed From Bootstap */
.alert {
  padding: 15px;
  margin: 20px auto;
  border: 1px solid transparent;
  border-radius: 4px;
  width: 100%;
  max-width: 1200px;
}
.alert h4 { margin-top: 0; color: inherit; }
.alert .alert-link { font-weight: bold; }
.alert > p, .alert > ul { margin-bottom: 0; }
.alert > p + p { margin-top: 5px; }
.alert-dismissable, .alert-dismissible { padding-right: 35px; }
.alert-dismissable .close, .alert-dismissible .close { position: relative; top: -2px; right: -21px; color: inherit; }
.alert-success { background-color: #dff0d8; border-color: #d6e9c6; color: #468847; }
.alert-success hr { border-top-color: #c9e2b3; }
.alert-success .alert-link { color: #356635; }
.alert-info { background-color: #d9edf7; border-color: #bce8f1; color: #3a87ad; }
.alert-info hr { border-top-color: #a6e1ec; }
.alert-info .alert-link { color: #2d6987; }
.alert-warning { background-color: #fcf8e3; border-color: #fbeed5; color: #c09853; }
.alert-warning hr { border-top-color: #f8e5be; }
.alert-warning .alert-link { color: #a47e3c; }
.alert-danger { background-color: #f2dede; border-color: #eed3d7; color: #b94a48; }
.alert-danger hr { border-top-color: #e6c1c7; }
.alert-danger .alert-link { color: #953b39; }

.close {
  float: right;
  font-size: 21px;
  font-weight: bold;
  line-height: 1;
  color: #000000;
  text-shadow: 0 1px 0 #fff;
  opacity: 0.2;
}
.close:hover, .close:focus { color: #000000; text-decoration: none; cursor: pointer; opacity: 0.5; }
button.close { padding: 0; cursor: pointer; background: transparent; border: 0; -webkit-appearance: none; appearance: none; }
/* }}} Form Alert - Borrowed From Bootstap */

/* {{{ Text Colors - Borrowed From Bootstap*/
.text-muted { color: #999999; }
.text-primary { color: #446e9b; }
a.text-primary:hover, a.text-primary:focus { color: #345578; }
.text-success { color: #468847; }
a.text-success:hover, a.text-success:focus { color: #356635; }
.text-info { color: #3a87ad; }
a.text-info:hover, a.text-info:focus { color: #2d6987; }
.text-warning { color: #c09853; }
a.text-warning:hover, a.text-warning:focus { color: #a47e3c; }
.text-danger { color: #b94a48; }
a.text-danger:hover, a.text-danger:focus { color: #953b39; }
.help-block { color: #646469; }
/* }}} Text Colors - Borrowed From Bootstap*/
