/* ── Variables ──────────────────────────────────────────────────────────────── */
:root {
  --teal:      #0e6e6d;
  --yellow:    #e5bc34;
  --green:     #4DAB36;
  --red:       #8c0405;
  --blue:      #016ba6;
  --bg:        #f0f0f0;
  --font:      Oswald, Arial, Helvetica, sans-serif;
  --paragraph: Roboto, Arial, Helvetica, sans-serif;
  --font-color: #444;
}

/* ── Reset ──────────────────────────────────────────────────────────────────── */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  position: relative;
}
[hidden] { display: none; }
html { height: 100%; scroll-behavior: smooth; }
body {
  min-height: 100%;
  background: var(--bg);
  color: var(--font-color);
  font: 400 62.5% var(--font);
  font-variant-ligatures: none;
}

/* ── Typography ─────────────────────────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6 {
  margin: 0; padding: 0;
  font-family: var(--font);
  font-weight: 400;
  line-height: 1.1;
}
h2 { color: var(--teal); font-size: 3.6em; margin-bottom: 0.5em; }
h3 { color: var(--teal); font-size: 2.4em; margin-bottom: 0.5em; }
h4 { font: 700 1.5em var(--font); text-transform: uppercase; margin-bottom: 0.25em; }

p {
  font: 400 1.6em var(--paragraph);
  line-height: 1.5;
  margin: 0 0 0.75em;
  overflow-wrap: break-word;
  word-break: break-word;
}
p + h3 { margin-top: 30px; }

@media screen and (max-width: 1024px) { p { font-size: 1.6em; } }

a {
  color: #404040;
  text-decoration: none;
  text-shadow: none;
  transition: all 0.15s ease-in-out;
  position: relative;
}
a:not([class]) {
  display: inline-block;
}
a:not([class])::after {
  content: "";
  position: absolute;
  background: rgba(229, 188, 52, 1);
  bottom: -1px; left: -2px; right: -2px;
  height: 2px;
  transition: all 0.15s ease-in;
}
a:not([class]):hover { color: #000; }
a:not([class]):hover::after {
  height: calc(100% + 2px);
  background: rgba(229, 188, 52, .3);
}
a:hover { color: var(--yellow); }

i, em { font-style: italic; }
b, strong { font-weight: 500; }

hr {
  display: block; clear: both; width: 100%;
  border: none; border-top: 2px dotted #cfcfcf;
  height: 0; margin: 30px 0;
}

blockquote {
  font: 400 2.8em var(--font);
  line-height: 1.5em;
  color: var(--teal);
  margin: 0 0 40px 0;
}

img, table, video, iframe { max-width: 100%; }
main img { padding: 6px; background: #fff; box-shadow: #afafaf 0 1px 4px; }

.center, .-center { text-align: center; }
.right, .-right   { text-align: right; }
.no-margin        { margin: 0; }
.hidden           { display: none !important; }
.not-visible      { visibility: hidden; }
.grey, .-grey     { color: #999; }
.teal             { color: var(--teal); }
.yellow           { color: var(--yellow); }
.red              { color: var(--red); }
.clear            { clear: both; }

/* ── Lists ──────────────────────────────────────────────────────────────────── */
ul, ol { list-style: none; }
ul, ol {
  clear: both;
  margin: 10px 0 20px 10px;
  font: 400 1.8em var(--font);
}
@media screen and (max-width: 1024px) { ul, ol { font-size: 1.6em; } }
li { margin-bottom: 9px; line-height: 1.4; font-weight: 300; }
ul li { margin-left: 14px; }
ul li::before {
  position: absolute; left: -22px; top: -2px;
  content: "→"; display: inline-block;
  margin-right: 6px; opacity: 0.6;
}

dl { font-weight: 300; }
dt, dd { font-style: normal; }

/* ── Tables ─────────────────────────────────────────────────────────────────── */
table {
  width: 100%; border-collapse: collapse;
  margin: 10px 0; table-layout: fixed; max-width: 100%;
}
thead th { background: #e0e0e0; }
tbody tr:hover { background: rgba(255,255,255,0.5); }
th, td {
  text-align: left;
  border-left: 1px dotted #e0e0e0;
  border-right: 1px dotted #e0e0e0;
}
th {
  font: 700 1.2em var(--font);
  line-height: 1em; text-transform: uppercase; color: #444;
  padding: 10px; border-bottom: 2px solid #e0e0e0;
}
td {
  font: 400 1.6em var(--font);
  border-top: 1px solid #e0e0e0;
  border-bottom: 1px solid #e0e0e0;
  padding: 15px 10px; line-height: 1.4; vertical-align: middle;
}
td p { font-size: 1em; margin: 0; line-height: 1.4; }

/* ── Layout — Header ────────────────────────────────────────────────────────── */
header {
  background: linear-gradient(to right, var(--teal), rgba(14,110,109,0.8));
  padding: 0 40px;
  display: flex;
  z-index: 10;
}
@media screen and (max-width: 1024px) { header { padding: 0 20px; } }

.logo {
  padding: 10px 0; margin: 0;
  flex: 0 0 400px;
}
@media screen and (max-width: 1024px) { .logo { flex: 1 0; } }

.logo-link {
  display: block;
  background: transparent url("/adapt2play--white.svg") no-repeat 0 50%;
  width: 290px; height: 140px;
  background-size: contain;
}
@media screen and (max-width: 1024px) { .logo-link { margin: auto; } }
.logo-link span { display: inline-block; text-indent: -9999px; }

/* ── Layout — Nav ───────────────────────────────────────────────────────────── */
nav {
  flex: 1 0;
  display: flex;
  justify-content: flex-end;
  transition: all 0.15s ease-out;
}
@media screen and (max-width: 1024px) {
  nav {
    position: absolute;
    top: 160px; left: 0;
    width: 100vw;
    background: linear-gradient(var(--teal), rgba(14,110,109,0.9));
    flex-direction: column;
    justify-content: center;
    align-items: center;
    max-height: 0;
    padding: 0;
    overflow: hidden;
  }
}
nav a {
  display: block;
  line-height: 160px;
  padding: 0 40px;
  text-transform: uppercase;
  font-size: 1.8em;
  color: #fff;
  border-left: 1px solid rgba(0,0,0,0.05);
  border-right: 1px solid rgba(255,255,255,0.05);
}
@media screen and (max-width: 1024px) {
  nav a {
    width: 100%; flex: 0 0;
    margin: 0; text-align: center; line-height: 3;
  }
}
nav a:hover { background-color: rgba(14,110,109,0.25); color: #fff; }
nav a.current { background: rgba(14,110,109,0.5); color: var(--yellow); }
nav a::after { display: none; }

.instagram-link, .facebook-link {
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: 18px;
  padding: 0 20px;
  opacity: 1;
}
@media screen and (max-width: 1024px) {
  .instagram-link, .facebook-link { flex: 0 0 50px; }
}
.instagram-link { background-image: url("/instagram.svg"); }
.facebook-link  { background-image: url("/facebook.svg"); }

/* ── Mobile Nav Toggle ──────────────────────────────────────────────────────── */
#mobile-nav {
  position: absolute; top: 0; left: 0;
  z-index: 1; display: none; opacity: 0.01;
}
.mobile-bars {
  position: absolute; right: 10px;
  height: 18px; width: 24px;
  top: calc(50% - 9px);
  transform-origin: 50% 50%;
  margin: 0; display: none;
}
.bar {
  position: absolute; height: 3px; width: 100%;
  background: #fff; border-radius: 1.5px;
}
.bar1 { top: 0; }
.bar2 { top: calc(50% - 1.5px); }
.bar3 { top: calc(100% - 3px); }

#mobile-nav:checked ~ nav {
  max-height: 100vh;
  padding: 40px 0;
  transition: all 0.2s ease-in;
}
#mobile-nav:checked ~ .mobile-bars .bar {
  top: calc(50% - 1.5px);
  transition: top .15s, transform .15s .2s;
}
#mobile-nav:checked ~ .mobile-bars .bar:nth-of-type(even) { transform: rotate(45deg); }
#mobile-nav:checked ~ .mobile-bars .bar:nth-of-type(odd)  { transform: rotate(-45deg); }
#mobile-nav:not(:checked) ~ .mobile-bars .bar {
  transition: transform .15s, top .15s .2s;
}

@media screen and (max-width: 1024px) {
  #mobile-nav  { display: block; }
  .mobile-bars { display: flex; }
}

/* ── Layout — Main & Footer ─────────────────────────────────────────────────── */
main {
  padding: 40px;
  min-height: calc(100vh - 220px);
}
@media screen and (max-width: 1024px) { main { padding: 40px 20px; } }
@media screen and (max-width: 560px)  { main { padding: 40px 10px; } }

.main-flex {
  display: flex;
}
@media screen and (max-width: 1024px) { .main-flex { flex-direction: column; } }
.main-flex article { flex: 1 0; }
@media screen and (max-width: 1024px) { .main-flex article { flex: 0 0; order: 1; } }
.main-flex aside {
  flex: 0 0 360px; background: #eaeaea;
  padding: 20px; margin-left: 40px; border-radius: 3px;
}
@media screen and (max-width: 1024px) {
  .main-flex aside { order: 2; flex: 0 0; margin: 20px 0 0; }
}

footer {
  padding: 20px 40px;
  min-height: 70px;
}
@media screen and (max-width: 560px) { footer { padding: 10px; } }
footer p {
  margin: 0; color: #444;
  font: 300 1.4em var(--font);
  text-align: right;
}
footer a { color: #444; }
footer a::after { display: none; }

.back-to-top {
  display: block;
  position: fixed; z-index: 9999;
  bottom: -20px; right: 5px;
  width: 40px; height: 40px;
  background: #fff url("/top.svg") no-repeat 50% 25%;
  background-size: 25px;
  box-shadow: #cfcfcf 0 1px 4px;
  transition: all 0.2s ease-in;
  cursor: pointer;
}
.back-to-top::after { display: none; }
.back-to-top:hover { bottom: 0; background-position: 50% 50%; }

/* ── Flash Notices ──────────────────────────────────────────────────────────── */
.flash {
  width: 100%;
  font: 700 1.2em var(--font);
  color: #fff;
  text-align: center;
  text-transform: uppercase;
  line-height: 1.8em;
  padding: 0; z-index: 2;
  position: absolute; top: 6px; left: 0;
}
.flash.notice, .flash.flash_success { background: var(--yellow); color: #444; }
.flash.alert,  .flash.flash_error   { background: var(--red); }

/* ── Flex Utilities ─────────────────────────────────────────────────────────── */
.flex {
  clear: both;
  display: flex;
}
@media screen and (max-width: 1024px) { .flex { flex-wrap: wrap; } }
.flex.wrap, .flex.-wrap     { flex-wrap: wrap; }
.flex.nowrap, .flex.-nowrap { flex-wrap: nowrap; }
@media screen and (max-width: 560px) { .flex > * { flex: 1 0 100% !important; } }
.flex > *.-half  { flex: 1 0 50% !important; }
.flex > .flex-full { flex: 1 0 100%; margin-bottom: 0; }

.field-flex { display: flex; }
.field-flex .field { flex: 1 0; }
.flex-v { display: flex; flex-direction: column; }
.flex-full { flex: 1 0 100%; }

/* ── Buttons ────────────────────────────────────────────────────────────────── */
.button, .add-button, .back-button, .calendar-button {
  display: inline-block;
  font-family: var(--font);
  font-weight: 400;
  line-height: 3;
  border-radius: 3px;
  padding: 0 20px;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
  margin: 0;
  transition: all 0.15s ease-in-out;
}
.button, .add-button, .back-button, .calendar-button { color: #fcfcfc; }
.button::after, .add-button::after, .back-button::after, .calendar-button::after { display: none; }

.button {
  font-size: 1.8em;
  border: 1px solid #117675;
  background: linear-gradient(var(--teal), #0b5857);
  color: #fcfcfc;
}
.button:hover { background: #0b5857; box-shadow: 0 0 5px 0 inset #0a4a49; color: #fff; }

.add-button, .back-button, .calendar-button {
  font-size: 1.4em;
  border: 1px solid #ddd;
  background: linear-gradient(#f0f0f0, #e4e4e4);
  color: var(--teal);
}
.add-button:hover, .back-button:hover, .calendar-button:hover {
  background: #e4e4e4;
  box-shadow: 0 0 5px 0 inset #d8d8d8;
  color: var(--teal);
}
.calendar-button { margin-left: 5px; }

.cancel {
  font: italic 300 1.6em var(--font);
  color: #999; margin: 0 10px;
}

/* Buttons flex bar */
.buttons-flex, .buttons-left, .buttons-right {
  display: flex; align-items: center;
}
.buttons-flex { margin-top: 20px; }
@media screen and (max-width: 560px) {
  .buttons-flex { margin: 0; flex-wrap: wrap; }
}
.buttons-left, .buttons-right { flex: 1 0; }
@media screen and (max-width: 560px) {
  .buttons-left, .buttons-right { flex: 1 0 100%; }
  .buttons-left  { order: 2; }
  .buttons-right { order: 1; }
}
.buttons-right { justify-content: flex-end; }
.buttons-right a {
  display: inline-block;
  font-family: var(--font);
  font-size: 1em; font-weight: 400;
  line-height: 3; color: var(--teal);
  border: 1px solid rgba(204,204,204,0.1);
  background: linear-gradient(rgba(204,204,204,0.1), rgba(180,180,180,0.1));
  border-radius: 3px; padding: 0 20px;
  cursor: pointer; text-align: center;
  margin: 0 0 0 5px;
}

/* ── Forms ──────────────────────────────────────────────────────────────────── */
fieldset {
  padding: 30px; margin: 20px 0;
  background: #f5f5f5;
  border: 1px solid #e0e0e0; border-radius: 3px;
}
fieldset.blank { padding: 0; border: none; background: none; }
fieldset:first-of-type { margin-top: 0; }

.fieldset-heading {
  margin: -30px 0 10px -30px;
  border-top-left-radius: 3px; border-top-right-radius: 3px;
}
.form-heading {
  padding: 10px 20px;
  margin: -30px -30px 20px;
  font-size: 1.4em;
  text-transform: uppercase;
  background: linear-gradient(#f0f0f0, #efefef);
  color: #aaa;
  border-bottom: 1px solid #e0e0e0;
  border-top-left-radius: 3px; border-top-right-radius: 3px;
  font-family: var(--font);
}

.field {
  width: 100%; clear: both;
  margin: 3px 0 20px;
  padding: 0 20px 0 0;
}
.field.no-bottom { margin-bottom: 0; }
.field.half { width: 50%; }
.field.no-label { padding-top: 35px; }
.field.margin_10 { margin-bottom: 10px; }

label {
  display: block;
  font: 700 1.5em var(--font);
  font-variant-ligatures: none;
  margin-bottom: 0.5em;
  text-transform: uppercase;
}
label.optional::after {
  content: "(optional)"; color: #999;
  font-size: 0.8em; display: inline-block;
  margin-left: 4px; font-style: italic; font-weight: 200;
}
label.required::after {
  content: "(required)"; color: var(--yellow);
  font-size: 0.8em; display: inline-block;
  margin-left: 4px; font-style: italic; font-weight: 200;
}
label.no-margin { margin-bottom: 0; }

input[type="date"],
input[type="email"],
input[type="number"],
input[type="password"],
input[type="tel"],
input[type="text"],
input[type="time"],
input[type="url"],
select,
textarea {
  font: 400 1.8em var(--paragraph);
  font-variant-ligatures: none;
  width: 100%;
  padding: 0 0 0 0.5em;
  border: 1px solid #cccccc;
  border-radius: 2px;
  background: #fff;
  box-shadow: rgba(153,153,153,0.25) 6px 6px 0;
  transition: all 0.15s ease-in-out;
}
input[type="date"],
input[type="email"],
input[type="number"],
input[type="password"],
input[type="tel"],
input[type="text"],
input[type="time"],
input[type="url"] {
  line-height: 3;
}
input::placeholder { color: #c0c0c0; font-weight: 200; }
input:focus, select:focus, textarea:focus {
  outline-color: var(--yellow);
  box-shadow: rgba(153,153,153,0.35) 8px 8px 0;
}
input:focus::placeholder { color: transparent; }

select {
  color: #444;
  line-height: 3;
  min-height: 58px;
}

textarea {
  font-size: 1.6em;
  line-height: 1.6;
  padding: 0.5em;
  width: 100%;
  height: 160px; min-height: 160px; max-height: 260px;
}
textarea::placeholder { color: #c0c0c0; font-weight: 200; }

input[type="checkbox"] + label,
input[type="radio"]   + label {
  font-weight: 400;
  margin-right: 15px; margin-left: 5px;
  text-transform: none; display: inline;
}

input[type="submit"].button {
  width: auto;
  font-size: 1.8em;
  border: 1px solid #117675;
  background: linear-gradient(var(--teal), #0b5857);
  color: #fcfcfc;
  line-height: 3;
  padding: 0 20px;
}

.date-flex { display: flex; }
.date-field { flex: 0 0 200px; }
.time-field { flex: 0 0 200px; }

/* Validation errors */
.field_with_errors label { font-weight: 400; }
.field_with_errors input,
.field.fix input, .field.fix textarea {
  border-color: var(--yellow);
  box-shadow: var(--yellow) 6px 6px 0;
  background: rgba(229,188,52, 0.05);
}

/* ── Tags ───────────────────────────────────────────────────────────────────── */
.tag {
  display: inline-block;
  font: 400 1.2em var(--font);
  text-transform: uppercase;
  color: #fff;
  margin: 0 5px 5px 0;
  background: var(--teal);
  padding: 4px;
  border-radius: 3px;
  border: 1px solid var(--teal);
  line-height: 1;
}

/* Tag checkboxes */
.tag-fields {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  margin-top: 5px;
  max-height: calc(100vh - 490px);
  overflow: auto;
  padding-bottom: 30px;
}
.tag-fields .field { margin: 0; }
.tags-container { padding: 0; }
.tags-container::after {
  content: "";
  position: absolute; bottom: 0; left: 0;
  width: 100%; height: 30px;
  background: linear-gradient(rgba(195,218,217,0), rgba(215,223,223,0.8));
  z-index: 1; pointer-events: none;
}

input.tag-checkbox {
  position: absolute; z-index: 1; opacity: 0.01;
}
input.tag-checkbox + label.tag-label {
  display: inline-block;
  font: 400 1.4em var(--font);
  text-transform: uppercase;
  color: var(--teal);
  cursor: pointer;
  margin: 0 2px 2px 0;
  background: rgba(255,255,255,0.75);
  padding: 4px; border-radius: 3px;
  border: 1px solid rgba(14,110,109,0.5);
  line-height: 1;
}
input.tag-checkbox + label.tag-label:hover { background: rgba(255,255,255,1); }
input.tag-checkbox:checked + label.tag-label { background: var(--teal); color: #fff; }

/* ── Icons ──────────────────────────────────────────────────────────────────── */
.icon {
  display: inline-block;
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: 0 0;
  background-size: contain;
  width: 20px; height: 20px;
  opacity: 0.5; margin: 0 5px;
  border: none; vertical-align: middle; cursor: pointer;
}
.icon:hover { opacity: 1; }
.icon span { display: inline-block; text-indent: 9999px; width: 0.01px; white-space: nowrap; }

.edit-icon     { background-image: url("/edit.svg"); }
.delete-icon   { background-image: url("/delete.svg"); }
.reimport-icon { background-image: url("/refresh.svg"); top: -1px; }

form.button_to { display: inline-block; }

/* ── Pagination ─────────────────────────────────────────────────────────────── */
.pagination { display: flex; }
.pagination span,
.pagination em,
.pagination a {
  display: inline-block;
  background: rgba(255,255,255,0.25);
  font: 400 1.8em var(--font);
  font-variant-ligatures: no-common-ligatures;
  line-height: 2.25;
  padding: 0 15px;
  margin: 0 10px 0 0;
  z-index: 1;
  border: 1px solid transparent;
}
@media screen and (max-width: 1024px) {
  .pagination span, .pagination em, .pagination a {
    font-size: 1.4em; padding: 0; flex: 1 0; text-align: center;
  }
}
.pagination span, .pagination em { color: #ccc; }
.pagination span.current, .pagination em.current {
  border: 1px solid var(--yellow);
  font-weight: 700; background: var(--yellow); color: #444;
}
.pagination a { color: #444; border-color: #c0c0c0; }
.pagination a:hover { background: #fff; color: #333; }
.pagination a::after { display: none; }

/* ── Flash Notices summary ──────────────────────────────────────────────────── */
.summary { margin: 20px 0; }
.summary h3 { margin: 0; }

/* ── Notification text ──────────────────────────────────────────────────────── */
.info-text, .venue-text {
  margin: 10px 0; position: relative;
  clear: both; padding: 10px;
  border: 1px dashed; font-size: 1.3em;
  font-style: italic; line-height: 1.4;
  border-radius: 2px; text-transform: uppercase;
}
.info-text  { border-color: var(--teal); color: var(--teal); background: rgba(14,110,109,0.1); }
.venue-text { border-color: var(--red);  color: var(--red);  background: rgba(140,4,5,0.1); }

/* ── Table actions ──────────────────────────────────────────────────────────── */
.table-actions {
  display: flex; align-items: center; justify-content: flex-end;
}

/* ── Loading spinner ────────────────────────────────────────────────────────── */
@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.loading {
  border: 2px solid #999;
  width: 60px; height: 60px;
  border-radius: 50%;
  border-color: #999 #999 transparent;
  margin: 50px auto 0;
  display: block;
  animation: spin 1s linear infinite;
}

/* ════════════════════════════════════════════════════════════════════════════ */
/* HOMEPAGE                                                                     */
/* ════════════════════════════════════════════════════════════════════════════ */
.homepage main { padding: 0 0 0; }

.masthead {
  margin: 0; height: 600px;
  background: #fff url("/masthead3.svg") no-repeat 100% 50%;
  background-size: 50%;
  padding: 20px calc(50vw + 30px) 20px 40px;
  display: flex; flex-direction: column; justify-content: center;
}
@media screen and (max-width: 1024px) { .masthead { height: 560px; } }
@media screen and (max-width: 768px) {
  .masthead {
    height: auto;
    padding: 520px 20px 10px;
    background-size: 90vw;
    background-position: 50% 10px;
  }
}
@media screen and (max-width: 560px) {
  .masthead {
    margin: 0;
    padding: 300px 20px 10px;
    background-position: 50% 10px;
    background-size: 100vw;
  }
}
.masthead::after {
  content: "";
  position: absolute; bottom: -6px; left: 0;
  width: 100vw; height: 3px; background: #fff;
}
.masthead h2 { font-size: 6em; }
.masthead h3 { color: var(--teal); }
@media screen and (max-width: 560px) { .masthead h2 { font-size: 4em; } }
.masthead .field { padding: 0; }
.masthead p { font-size: 2.1em; }

input.search-input {
  font-size: 2.4em;
}
@media screen and (max-width: 560px) { input.search-input { font-size: 1.8em; } }
input.search-button {
  display: inline-block;
  font: 400 2.4em var(--font);
  line-height: 2.25;
  color: #fff;
  border: 1px solid #0b5857;
  background: linear-gradient(var(--teal), #0b5857);
  border-radius: 3px; padding: 0 20px; cursor: pointer;
  position: absolute; top: 10px; right: 6px;
}
@media screen and (max-width: 560px) { input.search-button { font-size: 1.8em; line-height: 2; } }

.popular-tags { padding: 0 40px; margin-top: 20px; }
@media screen and (max-width: 560px) { .popular-tags { padding: 20px; } }
.popular-tags .flex { justify-content: space-between; }
.popular-tags .flex a { text-transform: uppercase; }

.popular-tag {
  display: flex; flex-direction: column;
  flex: 0 0 24%;
  align-items: center; justify-content: center; text-align: center;
  font: 400 3em var(--font); line-height: 1;
  border: 1px solid #ccc; border-radius: 3px;
  box-shadow: rgba(153,153,153,0.25) 6px 6px 0;
  background: #fff; padding: 40px; min-height: 240px;
  color: var(--teal);
}
.popular-tag::after { display: none; }
@media screen and (max-width: 1024px) { .popular-tag { font-size: 2.4em; min-height: 160px; } }
@media screen and (max-width: 768px)  { .popular-tag { font-size: 2.1em; min-height: 120px; } }
@media screen and (max-width: 560px)  { .popular-tag { margin: 0 0 10px; } }
.popular-tag:hover { background: #fff; box-shadow: rgba(153,153,153,0.35) 8px 8px 0; }

/* ════════════════════════════════════════════════════════════════════════════ */
/* EVENTS                                                                       */
/* ════════════════════════════════════════════════════════════════════════════ */
.events-body main { padding: 0; }

.events-flex {
  display: flex;
  min-height: calc(100vh - 150px);
  align-items: flex-start;
}
@media screen and (max-width: 1024px) { .events-flex { flex-wrap: wrap; } }

aside.events-form {
  flex: 0 0 400px;
  background: linear-gradient(rgba(14,110,109,0.2) 0%, rgba(14,110,109,0.1) calc(100vh - 160px));
  padding: 20px 10px 20px 40px;
  align-self: stretch;
  margin-bottom: -70px;
}
@media screen and (max-width: 1024px) {
  aside.events-form { padding-left: 20px; flex: 0 0 320px; margin: 0; }
}
@media screen and (max-width: 768px) { aside.events-form { flex: 1 0 100%; } }
@media screen and (max-width: 1024px) { aside.events-form input { font-size: 1.6em; } }

.form-stick { position: sticky; top: 20px; }

article.events-list { flex: 1 0; padding: 20px; }
@media screen and (max-width: 560px) { article.events-list { padding: 20px 10px; } }

.event-filters { display: flex; align-items: center; }
.viewing {
  flex: 1 0;
  font: 700 1.5em var(--font);
  text-transform: uppercase;
  margin-bottom: 0.25em;
}
.event-buttons a { margin-left: 5px; }

.reset {
  display: inline-block; margin-left: 10px;
  font: 300 1.6em var(--font); color: #999;
}
.reset::after { display: none; }

/* Event table (definition list layout) */
.event-table {
  margin-top: 15px;
}
.event-table .event {
  display: flex; align-items: center;
  background: #fff;
  box-shadow: rgba(0,0,0,0.1) 1px 1px 3px;
  margin: 0 0 10px;
}
@media screen and (max-width: 560px) { .event-table .event { flex-direction: column; } }
.event-table p { font-size: 1.6em; margin: 0 0 0.75em; }

dt.date, .event-date {
  text-align: center;
  flex: 0 0 100px;
  line-height: 1.1;
  padding: 15px 10px;
}
dt.date > *, .event-date > * { display: block; text-transform: uppercase; font-weight: 500; }
.month { font-size: 2.1em; }
.day   { font-size: 3.6em; }
.day-of-the-week { font-size: 1.4em; }
.year  { font-size: 1.3em; }

dd.event-summary {
  flex: 1 0;
  border-left: 3px solid #e6e6e6;
  padding: 15px 10px;
}
@media screen and (max-width: 560px) {
  dd.event-summary { width: 100%; border-left: none; border-top: 3px solid #e6e6e6; }
}
dd.event-summary p { font-size: 1.6em; }
@media screen and (max-width: 560px) { dd.event-summary p { font-size: 1.4em; } }
dd.event-summary p:last-of-type { margin: 0; }

.summary-title {
  display: block;
  font-size: 2.4em; line-height: 1.1; font-weight: 500;
}
.event-tags { text-align: right; margin-top: 20px; }

/* Sponsors sidebar */
.sponsors {
  flex: 0 0 360px;
  padding: 20px 40px 60px 20px;
}
@media screen and (max-width: 1024px) {
  .sponsors {
    flex: 1 0 100%; padding: 20px 20px 60px;
    columns: 2; margin: 20px 0 0;
    border-top: 1px dotted #ccc;
  }
}
@media screen and (max-width: 560px) { .sponsors { columns: 1; padding: 20px 10px 60px; } }
.sponsor {
  background: #fff; padding: 5px; margin-bottom: 10px;
  box-shadow: #cfcfcf 0 1px 4px; text-align: center;
}

/* Single event show */
.single-event {
  background: #fff;
  box-shadow: rgba(0,0,0,0.1) 1px 1px 3px;
  padding: 40px; margin: 20px 0;
}
@media screen and (max-width: 560px) { .single-event { margin: 10px 0; padding: 40px 10px 20px; } }
.event-title {
  font: 400 3.6em var(--font);
  line-height: 1.1; margin: 0 0 10px;
}

/* ════════════════════════════════════════════════════════════════════════════ */
/* ORGANIZATIONS                                                                */
/* ════════════════════════════════════════════════════════════════════════════ */
.organizations-body main { padding: 0; }

.organizations-fullflex {
  display: flex;
  min-height: calc(100vh - 140px);
  align-items: flex-start;
}
@media screen and (max-width: 1024px) { .organizations-fullflex { flex-wrap: wrap; } }

aside.organizations-form {
  flex: 0 0 400px;
  background: linear-gradient(rgba(14,110,109,0.2) 0%, rgba(14,110,109,0.1) calc(100vh - 160px));
  padding: 20px 10px 20px 40px;
  align-self: stretch;
  margin-bottom: -70px;
}
@media screen and (max-width: 1024px) {
  aside.organizations-form { padding-left: 20px; flex: 0 0 320px; margin: 0; }
}
@media screen and (max-width: 768px) { aside.organizations-form { flex: 1 0 100%; } }

.organizations-list { margin: 0; }
.organizations-list li { margin: 0 0 0 20px; }
.organizations-list a { display: block; line-height: 1.5; }
.organizations-list a::after { display: none; }
.organizations-list a:hover { color: var(--teal); }

article.organizations-index { flex: 1 0; padding: 20px; }
@media screen and (max-width: 560px) { article.organizations-index { padding: 20px 10px; } }

.organization-actions {
  display: flex; align-items: center; margin-bottom: 20px;
}
@media screen and (max-width: 560px) { .organization-actions { flex-wrap: wrap; } }
.organization-actions h2 { flex: 1 0; margin: 0; }
.organization-buttons { display: flex; }

dl.organizations { margin: 20px 0; }
dfn.organization {
  display: block;
  margin-bottom: 5px; background: #fff;
  padding: 40px; box-shadow: rgba(0,0,0,0.1) 1px 1px 3px;
}
@media screen and (max-width: 560px) { dfn.organization { padding: 20px; } }
dfn.organization dt { font-size: 2.4em; font-weight: 400; margin-bottom: 0.25em; }
dfn.organization dd { margin: 0 0 0.75em; }

dd.organization-tags { font-size: 1em; margin: 0 0 5px; }

/* Organization show */
.organization-card {
  background: #fff; padding: 40px;
  box-shadow: rgba(0,0,0,0.1) 1px 1px 3px;
  margin: 20px 0;
}
@media screen and (max-width: 560px) { .organization-card { padding: 20px; } }

dl.organization-show { font-size: 1em; }
dl.organization-show dt,
dl.organization-show dd { display: block; font-size: 1em; }
dl.organization-show dt { margin-bottom: 10px; }
dl.organization-show dd { margin-bottom: 15px; }

.organization-title h2 { font: 400 3.6em var(--font); margin: 0; }
dd.organization-show-tags { font-size: 1em; }

/* Organization events list */
.organization-events { font-size: 1.6em; }
.organization-events dfn {
  display: flex; margin: 5px 0 5px 10px;
}
.organization-events dfn:last-of-type { margin-bottom: 20px; }
@media screen and (max-width: 560px) { .organization-events dfn { flex-direction: column; margin-bottom: 10px; } }
.organization-events dt, .organization-events dd { margin: 0 10px 0 0; }
.organization-events dt { font-weight: 400; }

/* Location marker */
.location-marker::before {
  content: "";
  background: transparent url("/map.svg") no-repeat 50% 50%;
  background-size: contain;
  height: 20px; width: 20px;
  display: inline-block; position: relative;
  margin-left: -6px; margin-right: 2px; top: 3px;
}

/* ════════════════════════════════════════════════════════════════════════════ */
/* SOURCES                                                                      */
/* ════════════════════════════════════════════════════════════════════════════ */
.sources-flex {
  display: flex;
  min-height: calc(100vh - 140px);
  align-items: flex-start;
  padding: 20px;
}
@media screen and (max-width: 1024px) { .sources-flex { flex-wrap: wrap; } }
.sources-flex article { flex: 1 0; }

table.sources-table { margin: 20px 0; }
table.sources-table th:last-child,
table.sources-table td:last-child {
  text-align: right; white-space: nowrap; width: 120px;
}
table.sources-table tbody tr:nth-child(even) { background: rgba(255,255,255,0.2); }
table.sources-table tbody tr:hover { background: rgba(229,188,52,0.05); }

/* ════════════════════════════════════════════════════════════════════════════ */
/* SUBMIT                                                                       */
/* ════════════════════════════════════════════════════════════════════════════ */
.submit-flex {
  display: flex;
  min-height: calc(100vh - 140px);
  align-items: flex-start;
  padding: 20px;
}
@media screen and (max-width: 1024px) { .submit-flex { flex-wrap: wrap; } }

article.submit-index { flex: 1 0; padding: 20px; }
@media screen and (max-width: 560px) { article.submit-index { padding: 20px 10px; } }
