/* V4 Base Styles */

:root {
  /* Fonts */
  --font-icon: "FontAwesome";
  --font-size-xs: 12px;
  --font-size-sm: 14px;
  --font-size-md: 16px;
  --font-size-lg: 18px;
  --font-size-xl: 20px;
  --font-weight-light: 300;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-bold: 700;
  --font-weight-heavy: 900;

  /* Colors */
  --color-text: #212529;
  --color-muted: #6c757d;
  --color-light: #fff;
  --color-light-alt: #f5f5f5;
  --color-light-muted: #e9ecef;
  --color-muted-on-light: #495057;
  --color-border: #d1d5db;
  --color-primary: var(--color-text);
  --color-primary-rgb: 33, 37, 41;
  --color-secondary: var(--color-muted);
  --color-secondary-rgb: 108, 117, 125;
  --opacity-high: 0.9;
  --opacity-medium: 0.6;
  --opacity-low: 0.3;

  /* Buttons */
  --color-button-primary-bg: #0d6efd;
  --color-button-primary-bg-on-dark: #0d6efd;
  --color-button-primary-hover: #0a58ca;
  --color-button-primary-focus: #3184fd80;
  --color-button-secondary-bg: var(--color-muted);
  --color-button-secondary-hover: #5c636a;
  --color-button-secondary-focus: #adb5bd;

  /* Spacing scale */
  --space-xs: 8px;
  --space-sm: 12px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;  
  --space-xxl: 48px;

  /* Borders */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-xxl: 20px;

  /* Layers */
  --z-base: 1;
  --z-dropdown: 100;
  --z-overlay: 1000;
  --z-modal: 10000;

  /* Transitions */
  --transition-fast: 0.2s ease;
  --transition-normal: 0.3s ease;
}

textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="string"],
input[type="tel"],
input[type="color"],
.uneditable-input,
select {
  background-color: var(--color-light);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset;
  transition: border 0.2s linear 0s, box-shadow 0.2s linear 0s;
  padding: var(--space-xs);
  outline: 0;
  max-width: 100%;
}

select {
  max-width: 100%;
}

input[type="file"] {
  line-height: 20px;
  margin: 3px 0;
  font-size: var(--font-size-md);
}

textarea:focus,
input[type="text"]:focus,
input[type="string"]:focus,
input[type="password"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="time"]:focus,
input[type="week"]:focus,
input[type="number"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="color"]:focus,
.uneditable-input:focus {
  border-color: var(--color-secondary);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset,
    0 0 8px rgba(82, 168, 236, 0.6);
  outline: 0 none;
}

input:focus:invalid,
textarea:focus:invalid,
select:focus:invalid {
  border-color: #ee5f5b;
  color: #b94a48;
}

input:focus:invalid:focus,
textarea:focus:invalid:focus,
select:focus:invalid:focus,
select.requiredInput:focus,
input.requiredInput[type="text"]:focus,
input.requiredInput[type="email"]:focus,
textarea.requiredInput:focus {
  border-color: #e9322d;
  box-shadow: 0 0 6px #f8b9b7;
}

/* Buttons
   ========================================================================== */

/* Primary buttons */
.btn,
button,
.JobBoardTool a,
input[type="submit"],
input[type="button"],
input[type="reset"],
.button,
span.button a,
input.cancel,
.contactButtons a,
.gotoProfileLink,
.program .list-group a,
table.profile_security td a,
.info .button {
  font-size: var(--font-size-md);
  display: inline-block;
  line-height: normal;
  vertical-align: middle;
  text-align: center;
  padding: var(--space-sm) var(--space-lg);
  color: var(--color-light);
  background-color: var(--color-button-primary-bg);
  font-weight: var(--font-weight-medium);
  border: 0;
  text-decoration: none;
  border-radius: var(--radius-sm);
  transition: var(--transition-fast);
}

.body-content .contactButtons a,
.body-content .gotoProfileLink {
    text-decoration: none;
}

.contactButtons a,
table.profile_security td a {
  font-size: var(--font-size-sm);
  padding: var(--space-xs) var(--space-sm);
}

/* Secondary buttons */
.formCancel,
.formReset,
input.cancel,
button#CartUpdateButton,
input[type="reset"],
.commentBox .commentCancelButton,
input[value=" Cancel "],
button#CartCancelButton,
.formButton.cancel,
.block__tools .blockAction2 {
  background: var(--color-button-secondary-bg);
  border: none;
}

/* TinyMCE special class buttons */
span.button,
span.button:hover,
span.button:active,
span.button:focus {
  background: none;
  padding: 0;
  border: none;
  color: var(--color-text);
}

/* Primary button hover */
.btn:hover,
.btn:active,
button:hover,
button:active,
input[type="submit"]:hover,
input[type="submit"]:active,
input[type="button"]:hover,
input[type="button"]:active,
.button:hover,
.button:active,
span.button a:hover,
span.button a:active,
.btn-primary:not(:disabled):not(.disabled):active,
span.EvtFeeRegLink a:hover,
span.EvtFeeRegLink a:active,
span.EvtFeeRegDone a:hover,
span.EvtFeeRegDone a:active,
.btn.focus,
.JobBoardTool a:hover,
.JobBoardTool a:active,
.contactButtons a:hover,
.contactButtons a:active,
.gotoProfileLink:hover,
.gotoProfileLink:active,
.program .list-group a:hover,
.program .list-group a:active,
table.profile_security td a:hover,
table.profile_security td a:active {
  background-color: var(--color-button-primary-hover);
  color: var(--color-light);
  text-decoration: none;
  border: none;
}

/* Secondary button hover */
.formCancel:hover,
.formCancel:active,
.formReset:hover,
.formReset:active,
input.cancel:hover,
input.cancel:active,
input[type="button"].cancel:hover,
input[type="button"].cancel:active,
input[type="reset"]:hover,
input[type="reset"]:active,
.commentBox .commentCancelButton:hover,
.commentBox .commentCancelButton:active,
input[value="Cancel"]:hover,
input[value="Cancel"]:active,
input[value=" Cancel "]:hover,
input[value=" Cancel "]:active,
input#CartCancelButton:hover,
input#CartCancelButton:active,
button#CartCancelButton:hover,
button#CartCancelButton:active,
input#CartUpdateButton:hover,
input#CartUpdateButton:active,
button#CartUpdateButton:hover,
button#CartUpdateButton:active,
.formButton.cancel:hover,
.formButton.cancel:active,
.block__tools .blockAction2:hover,
.block__tools .blockAction2:active {
  background-color: var(--color-button-secondary-hover);
  color: var(--color-light);
  text-decoration: none;
  border: none;
}


/* Primary button focus */
.btn:focus,
button:focus,
input[type="button"]:focus,
input[type="reset"]:focus,
input[type="submit"]:focus,
.button:focus,
span.button a:focus,
.btn-primary:not(:disabled):not(.disabled):active:focus,
span.EvtFeeRegLink a:focus,
span.EvtFeeRegDone a:focus,
.contactButtons a:focus,
.gotoProfileLink:focus,
.program .list-group a:focus,
table.profile_security td a:focus {
  color: var(--color-light);
  background-color: var(--color-button-primary-hover);
  box-shadow: 0 0 0 4px var(--color-button-primary-focus);
  outline: 0;
}

/* Secondary button focus */
.formCancel:focus,
.formReset:focus,
input.cancel:focus,
button#CartUpdateButton:focus,
input[type="reset"]:focus,
.formButton[type="reset"]:focus,
.commentBox .commentCancelButton:focus,
input[value=" Cancel "]:focus,
button#CartCancelButton:focus,
.LoginForm input.cancel:focus,
.formButton.cancel:focus,
.block__tools .blockAction2:focus {
  color: var(--color-light);
  background-color: var(--color-button-secondary-hover);
  box-shadow: 0 0 0 4px var(--color-button-secondary-focus);
  outline: 0;
}

button.mfp-close:hover,
button.mfp-close:active,
button.mfp-close:focus {
  color: var(--color-text);
  background: none;
  box-shadow: none;  
}

.formButtons {
  margin: var(--space-lg) 0;
}

.btn-xs {
  padding: var(--space-xs) var(--space-sm);
  font-size: 12px;
  border-radius: var(--radius-sm);
  border: none;
}

.commentBox .commentCancelButton {
  margin-left: 4px;
}

form .formButton,
input.paynow,
input.paylater {
  margin-right: 4px;
}

.toolbar {
  margin-bottom: var(--space-lg);
}

.toolbar .btn-toolbar .btn {
  color: var(--color-text);
  font-size: var(--font-size-sm);
  background: var(--color-light);
  padding: var(--space-xs) var(--space-sm);
  border: 1px solid var(--color-border);
  text-transform: none;
}

.toolbar .btn-toolbar .btn:hover,
.toolbar .btn-toolbar .btn:active,
.toolbar .btn-toolbar .btn:focus,
.btn-toolbar .btn-primary:not(:disabled):not(.disabled):active:focus {
  background: var(--color-light-muted);
  color: var(--color-text);
  border: 1px solid transparent;
  box-shadow: none;
}

.toolbar .btn-toolbar .btn:hover img {
  opacity: 1;
}

.toolbar .btn-toolbar .btn-primary {
    background: var(--color-light-muted);
}

.toolbar .btn-toolbar .btn .toolicon {
  padding-right: var(--space-xs);
}

@media (max-width: 991px) {
  .btn-group {
    display: block;
  }
}

/* TinyMCE Buttons */
.mce-btn button {
  text-transform: none;
  letter-spacing: normal;
  border: none;
  background: none;
  border-radius: 0;
  box-shadow: none;
  line-height: normal !important;
}
button.mce-close,
.mce-btn button:hover,
.mce-btn button:active,
.mce-btn button:focus {
  background: none !important;
  box-shadow: none !important;
}
button.mce-close {
  color: #858585 !important;
}
button.mce-close:hover {
  color: #adadad !important;
}
.mce-foot .mce-last button:hover {
  color: var(--color-text);
}

/* Image align
   ========================================================================== */

img[align="left"],
img[style*="float: left;"],
img[style*="float:left;"] {
  margin: 0 var(--space-lg) var(--space-lg) 0;
}

img[align="right"],
img[style*="float: right;"],
img[style*="float:right;"] {
  margin: 0 0 var(--space-lg) var(--space-lg);
}

@media screen and (max-width: 767px) {
  img[align="left"],
  img[align="right"],
  img[style*="float: left;"],
  img[style*="float:left;"],
  img[style*="float: right;"],
  img[style*="float:right;"] {
    float: none;
    max-width: 100%;
    margin: 0 0 var(--space-lg);
  }
}

/* Job Board
   ========================================================================== */

.job_board .JobBoardTool {
  display: inline-block;
}
.job_board .JobBoardTool a {
  display: block;
}
.job_board .JobBoardTools .JobBoardTool:last-child {
  display: none; /* hide RSS */
}
.job_board .Index .jobSummary {
  margin-top: var(--space-lg);
  padding-top: var(--space-lg);
  border-top: 1px solid var(--color-border);
  font-style: italic;
  font-size: var(--font-size-sm);
}
.job_board .Index .jobSummary:first-child {
  border-top: none;
}
.job_board .Index .jobSummary .jobAbout {
  color: #888;
  margin: var(--space-xs) 0;
}
.job_board .Index .jobSummary .jobTitle {
  font-style: normal;
  font-size: var(--font-size-lg);
}


/* Calendar
   ========================================================================== */

.EventSummary,
.eventDescription {
    padding-top: var(--space-lg);
    margin-top: var(--space-lg);
    border-top: 1px solid var(--color-border);
}

.eventDate {
    color: #888;
}

.Calendar .EventSummary:first-of-type {
    border: none;
    margin-top: 0;
}

dt {
  font-size: var(--font-size-md);
  margin-top: 25px;
}

/* month view */

table.calendarMonth {
  border-collapse: collapse;
  margin-bottom: 25px;
}
table.calendarMonth caption {
  font-size: 24px;
  color: var(--color-text);
  text-align: center;
  margin: 0;
  font-weight: var(--font-weight-bold);
}
table.calendarMonth td {
  margin: 0px;
  padding: var(--space-xs);
  border: 1px solid var(--color-border);
  width: 100px;
  height: 80px;
  vertical-align: top;
  font-size: var(--font-size-sm);
  background-color: white;
}
table.calendarMonth th {
  font-size: var(--font-size-sm);
  text-align: center;
  text-transform: uppercase;
  padding: var(--space-sm);
  background: #f2f2f2;
  border: 1px solid var(--color-border);
}
.calendarNextMonth,
.calendarPrevMonth {
  font-size: var(--font-size-sm);
  position: relative;
  top: 13px;
}
.calendarNextMonth {
  float: right;
}
.calendarPrevMonth {
  float: left;
}
table.eventSchedule {
  margin-top: var(--space-sm);
  margin-bottom: var(--space-sm);
}
table.eventSchedule td {
  padding: var(--space-md);
  border: 1px solid var(--color-border);
}
table.eventSchedule caption {
  text-align: left;
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size-lg);
}
table.eventSchedule td {
  padding-right: var(--space-md);
}

p.vCalendarLink {
  padding-left: var(--space-xxl);
  background-image: url(add_small.png);
  background-repeat: no-repeat;
  background-position: left center;
  margin-top: 25px;
  height: 45px;
  font-size: var(--font-size-sm);
  display: table;
}

p.vCalendarLink a {
  display: table-cell;
  vertical-align: middle;
}

/* Blog
   ========================================================================== */
.blogTitle,
.BlogArchive h1 {
    margin-top: 0;
}

.Blog .article,
.Blog .stickyArticles {
  padding-bottom: var(--space-xl);
  margin-bottom: var(--space-xl);
  border-bottom: 1px solid var(--color-border);
}

.Blog .article:last-child {
  border: none;
  padding: 0;
  margin: 0;
}

.Blog .article h2 {
    margin-top: 0;
}

.articleAbout,
.Blog .articleBody {
    margin-bottom: var(--space-lg);
}

.articleAbout {
    font-size: var(--font-size-sm);
    color: var(--color-muted);
}

.articleReadMore {
  margin: 0;
}

.blogPagination {
    margin-top: var(--space-lg);
    width: 100%;
}

a.blogPaginationNewer {
  float: left;
}

a.blogPaginationOlder {
  float: right;
}

.blogPagination:after {
  display: block;
  clear: both;
  content: "";
}

.BlogTools {
  margin-bottom: var(--space-lg);
}

.BlogTools a {
    font-size: var(--font-size-sm);
}

/* Event Registration
   ========================================================================== */

.feeIndex {
  margin-top: var(--space-sm);
  border-bottom: 1px dotted grey;
}

.FeeSummary {
  padding-top: var(--space-sm);
  padding-bottom: var(--space-sm);
  border-top: 1px dotted var(--color-light-alt);
}

.CurrentRegistrant,
.NewRegistrant {
  border: 1px dotted grey;
  background-color: white;
  padding: var(--space-lg);
  margin-bottom: var(--space-sm);
}

a.feeLink {
  display: inline-block;
  text-align: center;
  padding: 3px 6px;
  margin-left: var(--space-sm);
  border-radius: var(--radius-sm);
  background-color: green;
  color: white;
  text-decoration: none !important;
  font-size: var(--font-size-sm);
}
a.feeLink:hover,
a.feeLink:active,
a.feeLink:focus {
  background-color: #0a0;
  color: var(--color-light);
}
.FeeSummary:after {
  display: block;
  clear: both;
  content: "";
}

.ticketStatus {
  display: block;
}
.ticketPurchase {
  display: block;
  font-size: var(--font-size-sm);
}

/* feeIndex */

.FeeIndex {
  border-top: 1px grey dotted;
  margin-top: var(--space-sm);
  margin-bottom: var(--space-sm);
  max-width: 750px;
}
.FeeIndex .FeeSummary {
  border-bottom: 1px grey dotted;
  padding-top: var(--space-sm);
  padding-bottom: var(--space-sm);
}
.feeAccess {
  color: red;
  display: block;
  font-size: var(--font-size-sm);
  font-style: italic;
}
.feeName,
.priceCost {
  font-size: var(--font-size-sm);
  text-transform: uppercase;
}
span.priceCost {
  font-weight: var(--font-weight-bold);
}
.feeBuyInfo {
  float: right;
}
.FeeAbout {
  margin-bottom: 1rem;
}
.feeDescr {
  clear: both;
}

@media (max-width: 1199px) {
  .feeBuyInfo {
    float: none;
    display: block;
  }
  a.feeLink {
    float: right;
  }
}
@media (max-width: 991px) {
  span.feeCost,
  a.feeLink {
    float: none;
  }
  span.feeCost {
    display: block;
  }
  a.feeLink {
    margin: var(--space-xs) 0 0;
  }
  .FeeSummary {
    padding: var(--space-md) 0 var(--space-lg);
  }
  .feeDescr {
    margin-top: var(--space-sm);
  }
}

/**** Event Reg ****/

.FeeAdminOnly,
.FeeHidden {
  background-color: var(--color-light-alt) !important;
  color: #999;
}

.FeeHidden .EvtFeeRegLink a,
.FeeAdminOnly .EvtFeeRegLink a {
  background-color: #a3c59d !important;
  border: 1px #666 dashed;
}

.evt_hidden {
  color: #a2a2a2;
}

.evt_hidden::after,
.FeeHidden .EvtFeeName::after,
.FeeAdminOnly .EvtFeeName::after {
  content: url(hidden.png);
  margin-left: 7px;
}

.RegisterResume {
  padding: var(--space-sm) var(--space-md);
  border: 2px solid red;
  font-weight: var(--font-weight-bold);
  color: red;
  font-size: var(--font-size-xl);
  margin: var(--space-sm) 0;
  background: #fffcd5;
  line-height: 1.5;
}

/* Job Postings ---------------------------------- */

.jobImage {
  float: right;
  padding-left: var(--space-sm);
}

/* Shopping Cart
   ========================================================================== */

table.Receivable {
  width: 100%;
  font-size: var(--font-size-sm);
  border-collapse: collapse;
  margin-bottom: var(--space-md);
  margin-top: var(--space-md);
}

table.Receivable th {
  color: white;
  background-color: #213c73;
  padding: var(--space-xs);
  font-size: var(--font-size-sm);
  text-transform: uppercase;
  border: 1px solid var(--color-border);
}

table.Receivable tfoot {
  background-color: var(--color-light-alt);
  padding: var(--space-xs);
}

table.Receivable td {
  padding: var(--space-xs);
  border: 1px solid var(--color-border);
}

table.Receivable td div.total {
  font-weight: var(--font-weight-bold);
}

table.Receivable div.number {
  text-align: right;
}

.ReceivableBuyer {
  background-color: var(--color-light-alt);
  border: 1px solid var(--color-border);
  padding: var(--space-sm) var(--space-sm) 0;
  margin-top: var(--space-md);
}

/* Default Form styles
   ========================================================================== */

.requiredPrompt {
  background-image: url(asterisk.png);
  background-position: top right;
  background-repeat: no-repeat;
  padding-right: var(--space-sm);
  font-weight: var(--font-weight-bold) !important;
}

.requiredPrompt label {
  font-weight: var(--font-weight-bold);
}

input[type="text"].requiredInput,
input[type="email"].requiredInput,
input[type="number"].requiredInput,
input[type="url"].requiredInput,
select.requiredInput {
  background-color: #cfc;
}
.missingInput {
  background-color: #f99;
}
.missingPrompt {
  color: red;
}
.formErrors {
  border: 2px solid red;
  padding: var(--space-sm) var(--space-lg);
  background-color: #f99;
}
.error {
  color: #721c24;
  background-color: #f8d7da;
  border-color: #f5c6cb;
  padding: var(--space-md) var(--space-lg);
}

/* Form Submit */

.formButtons,
.credit-card-box .form-row,
.CartCheckoutButtons,
table.cart_form tr td.input,
.Donation {
  position: relative;
}

.formSubmitted {
  position: absolute;
  top: -4px;
  left: -4px;
  padding-top: var(--space-sm);
  height: 62px;
  background-color: white;
  width: 100%;
}

.job_search .formButtons {
  clear: both;
}

/* datePicker */

a.dp-choose-date {
  width: 16px;
  height: 16px;
  padding: 0;
  margin: var(--space-xs) 3px 0;
  display: inline-block;
  text-indent: -2000px;
  overflow: hidden;
  background: url(date.png) no-repeat;
}
a.dp-choose-date.dp-disabled {
  background-position: 0 -20px;
  cursor: default;
}

/* Web Forms
   ========================================================================== */

a.ResponseButton {
  font-size: var(--font-size-xs);
  border: 1px outset #999;
  background-color: var(--color-button-secondary-bg);
  text-decoration: none;
  padding: 1px 4px 1px 4px;
  font-weight: var(--font-weight-normal);
  color: black;
}

a.ResponseButton:hover {
  background-color: var(--color-light-alt);
  text-decoration: none;
}

.ResponseButtonBox {
  text-align: right;
  width: 150px;
  float: right;
  padding: 2px;
}

div.bar {
  color: #006;
  background-color: #006;
  overflow: hidden;
}

a.popup {
  color: grey;
  font-size: var(--font-size-sm);
}

.MagPopup-inline {
  display: inline;
}

.MagPopup-inline a {
  color: grey;
  font-size: var(--font-size-sm);
  text-decoration: none;
}

.MagPopup-inline a:hover {
  color: blue;
}

table.filterdates td {
  border: 0px white solid;
}

div.Forms_question {
  padding: var(--space-sm);
  margin-bottom: var(--space-xs);
}

form div.A {
  background-color: white;
}

form div.B {
  background-color: var(--color-light-alt);
}

table.Forms_question_group td {
  padding: 3px;
}

table.Forms_question_group th {
  padding-right: var(--space-sm);
}

a.liblink {
  color: grey;
  text-decoration: none;
}

a.liblink:hover {
  color: blue;
}

span.Forms_prompt {
  font-size: var(--font-size-lg);
}

span.select_question {
  color: blue;
  text-decoration: underline;
  cursor: pointer;
}

.selected {
  padding-left: var(--space-lg);
  background: url(check.png) no-repeat;
}

.delQuestion {
  padding-left: var(--space-lg);
  margin-left: var(--space-xs);
  background: url(cancel.png) no-repeat;
}

.success {
  border-radius: var(--radius-sm);
  color: green;
  padding: var(--space-md) var(--space-lg);
  background: url(check.png) no-repeat #cfc;
  background-position: var(--space-xs) var(--space-xs);
}

/* new question form */

#new_question p {
  margin-right: 25px;
}

.format_help {
  display: inline-block;
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--radius-sm);
  background: #9c9;
  color: #060;
}

#question_prompt {
  margin-bottom: var(--space-sm);
}

/* config forms */

table.Forms_question_config td {
  padding-bottom: var(--space-sm);
}

div#questionPopup {
  position: relative;
  background: var(--color-light);
  padding: var(--space-lg);
  width: auto;
  max-width: 500px;
  margin: var(--space-lg) auto;
  border: 1px solid var(--color-border);
}

.addQuestion:hover {
  text-decoration: underline;
}

h3.ui-accordion-header span.ui-icon {
  position: relative;
  top: 3px;
}

/* executive summary */
.QA_execsumm h1 {
  color: #349;
  font-size: 24pt;
}
.QA_execsumm h2 {
  color: #349;
  font-size: 16pt;
}
.QA_execsumm h3 {
  color: #349;
  font-size: 12pt;
}
.execsumm_question {
  border: 1px solid var(--color-border);
  border-radius: 20px;
  padding: var(--space-xs) var(--space-md) var(--space-sm) 25px;
  background-color: white;
  margin-bottom: var(--space-md);
}
.answer_overview {
  border-bottom: 1px dotted var(--color-light-alt);
}
.answer_summary {
  border-top: 1px dotted var(--color-light-alt);
  padding: var(--space-xs);
  font-size: var(--font-size-xs);
  font-style: italic;
  color: grey;
  background-color: white;
}

table.QA_confirmation {
  font-size: var(--font-size-sm);
  border-collapse: collapse;
  margin-bottom: var(--space-lg);
}

table.QA_confirmation caption {
  text-align: left;
  padding-left: 3px;
  padding-bottom: var(--space-md);
  font-weight: var(--font-weight-bold);
}

table.QA_confirmation td {
  font-weight: var(--font-weight-normal);
  border: 1px solid var(--color-border);
  padding: var(--space-xs) var(--space-md);
}

table.QA_confirmation tr.B {
  background-color: var(--color-light-alt);
}

table.QA_confirmation th {
  border: 1px solid var(--color-border);
  background-color: #2d3a5a;
  color: white;
  padding: var(--space-xs) var(--space-md);
}

div.QA_question {
  padding-bottom: var(--space-md);
  margin-bottom: var(--space-md);
}

table.QA_question_group td {
  padding: 3px;
}

div.QA_question table {
  margin-bottom: 0;
}

tr.QA_question_group_odd {
  background-color: var(--color-light-alt);
}

.QA th {
  padding: 0 var(--space-xs);
}
.QA input[type="radio"] {
  margin: 0 var(--space-xs);
}

/* Responsive Image List
   ========================================================================== */

ul.image_list {
  list-style: none;
  margin: 0px;
  padding: 0px;
  font-size: var(--font-size-sm);
}

ul.image_list img {
  display: block;
  margin-bottom: 7px;
}

ul.image_list li {
  float: left;
  width: 150px;
  padding-right: var(--space-md);
  min-height: 200px;
}

/* Address Cards
   ========================================================================== */

div.ContactPreview .ContactEditTip {
  color: #999;
  font-style: italic;
  font-size: var(--font-size-sm);
}

#help1 {
  display: none;
}

.Membership .popup_close {
  float: right;
}

.Membership .popup_close:hover {
  background-color: transparent;
}

.Membership .help_hotspot {
  background: none repeat scroll 0 0 #f5f5f5;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  color: var(--color-text);
  cursor: pointer;
  display: inline-block;
  font-size: var(--font-size-sm);
  margin: 0 0 var(--space-lg);
  padding: 0 var(--space-sm);
}

.Membership .help_popup ul {
  margin-bottom: var(--space-lg);
  padding-left: var(--space-lg);
}

a.ContactDeleteLink {
  padding: var(--space-xs) var(--space-md);
  background: #cc0000;
  text-align: center;
  margin: 3px 0;
  text-decoration: none !important;
  color: var(--color-light);
  display: inline-block;
  border-radius: var(--radius-sm);
}

a.ContactDeleteLink:hover {
  color: var(--color-light);
  background: #666;
  text-decoration: none;
}

.Contact,
.membership_type_summary {
  border: 1px solid var(--color-border);
  padding: var(--space-sm);
  margin-bottom: var(--space-sm);
  background-color: var(--color-light-alt);
  border-radius: var(--radius-sm);
}

.Contact .ContactInfo,
.membership_type_link {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-bold);
  margin: 0 0 var(--space-xs);
  padding: 0 0 var(--space-xs);
  border-bottom: 1px solid var(--color-border);
  display: block;
}

.Contact p:last-child {
  margin: 0;
  padding: 0;
  border: none;
}

.contactType,
.ContactPhone,
.ContactNet,
.ContactVcard {
  margin: 0;
  color: var(--color-muted-on-light);
}

.contactButtons {
  margin-top: var(--space-lg);
}

.ContactVcard {
  margin-bottom: var(--space-md);
}

.ContactAddress {
  margin: 0;
}

a.contactEditBtn {
  margin: 0 0 var(--space-lg);
  display: inline-block;
}

.Contact a.contactEditBtn {
  margin-bottom: 0;
}

/* Bootstrap
   ========================================================================== */
textarea {
  max-width: 100%;
}

label {
  font-weight: var(--font-weight-normal);
}

.bg-danger {
  color: var(--color-light);
  padding: var(--space-sm) var(--space-md);
  background-color: rgb(220, 53, 69);
}

/* Renew Now Button
   ========================================================================== */

a.renew {
  border: 0px solid #e93e3a;
  color: var(--color-light);
  background-color: #d9534f;
  border-color: #d43f3a;
  border-radius: var(--radius-sm);
  font-weight: var(--font-weight-normal);
  padding: var(--space-xs) 6px;
  text-decoration: none;
  display: inline-block;
  margin-left: var(--space-sm);
  cursor: pointer;
}

a.renew:hover {
  border: 0px solid #e93e3a;
  background-color: #c9302c;
  border-color: #ac2925;
}

/* Login
   ========================================================================== */

table.LoginForm td {
  padding: 0 var(--space-xs) var(--space-xs) 0;
}

form table {
  margin-bottom: 0;
}

/* Search
   ========================================================================== */

div.Search dl {
  margin: var(--space-lg) 0 var(--space-xxl);
}
div.Search dt {
  font-weight: var(--font-weight-bold);
}
div.Search dd {
  border-bottom: 1px solid #efefef;
  padding-bottom: var(--space-md);
  margin-bottom: var(--space-md);
  font-size: var(--font-size-sm);
}
div.Search dd:last-child {
  border: none;
  padding: 0;
}
div.Search dd {
  font-style: normal;
}
span.searchdetails {
  font-size: var(--font-size-xs);
  display: block;
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
}

.termWeight {
  color: grey;
  font-size: var(--font-size-sm);
}
.searchdetails {
  font-style: italic;
  color: grey;
}
.searchRelevanceBar {
  display: inline-block;
  height: 8px;
  width: 100px;
  background-color: var(--color-light-alt);
  margin-left: var(--space-xs);
}
.searchRelevance {
  display: inline-block;
  float: left;
  height: 8px;
  background-color: green;
}

/* File Server
   ========================================================================== */

div.FileServerSearch {
  margin-bottom: var(--space-lg);
}

/* Photo Galleries
   ========================================================================== */

.gallery {
  padding-left: 0;
  list-style-type: none;
}

ul.gallery li {
  display: inline-block !important;
  margin: 0 var(--space-sm) var(--space-sm) 0;
  background: none;
  padding: 0;
}

/* Board Member Pages
   ========================================================================== */

.Book {
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  -o-flex-wrap: wrap;
  flex-wrap: wrap;
}
.Book .officers_article {
  width: 33.333%;
  display: inline-block;
  vertical-align: top;
  font-size: var(--font-size-sm);
  margin-right: -4px; /* inline-block fix */
  padding: var(--space-sm);
}
.Book .officers_article h3 {
  font-size: var(--font-size-xl);
}
@media (max-width: 991px) {
  .Book .officers_article {
    width: 50%;
  }
}
@media (max-width: 480px) {
  .Book {
    display: block;
  }
  .Book .officers_article {
    width: 100%;
    display: block;
    margin-bottom: var(--space-lg);
    padding: 0;
  }
}

/* Files
   ========================================================================== */

.MyFiles .File {
  border-bottom: 1px solid var(--color-border);
  border-left: 1px solid var(--color-border);
  border-right: 1px solid var(--color-border);
  padding: var(--space-md);
}
.MyFiles .File:first-of-type {
  border-top: 1px solid var(--color-border);
}
.MyFiles .File a {
  color: #007bff;
  cursor: pointer;
}
.MyFiles .File a:hover {
  color: #0056b3;
  text-decoration: underline;
}
.MyFiles .File .fileDescription {
  float: right;
  color: grey;
  font-size: var(--font-size-sm);
  font-style: italic;
  padding-top: 2px;
}
.MyFiles .File:after {
  content: " ";
  display: block;
  clear: both;
}
.MyFiles h3 {
  display: none;
}

/* Document
   ========================================================================== */

.Document h1 {
  font-size: 30px;
}
.Document .contentSummary {
  padding-bottom: var(--space-sm);
  margin-bottom: var(--space-sm);
  border-bottom: 1px solid var(--color-border);
}
.Document .contentSummary:last-child {
  border: none;
  padding-bottom: 0;
  margin-bottom: 0;
}
.Document .contentSummary .contentDescription {
  font-size: var(--font-size-sm);
  color: #888;
  font-style: italic;
}

.cnodeList .contentListing {
    margin-bottom: var(--space-lg);
}

.cnodeList .contentListing .fileInfo {
    font-style: italic;
    color: var(--color-muted);
    font-size: 80%;
}

/* Receivable
   ========================================================================== */

p.PaymentStatusPass {
  position: relative;
  padding: 0.75rem 1.25rem;
  margin-bottom: 1rem;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  color: #155724;
  background-color: #d4edda;
  border-color: #c3e6cb;
}

h2.ReceivableSeller {
  margin-top: 0;
}

.ReceivableBuyer {
  padding: var(--space-md);
  background: #f7f7f7;
  border: 1px solid var(--color-border);
  margin-bottom: var(--space-lg);
  font-size: var(--font-size-sm);
}

.ReceivableBuyer .account_address {
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-medium);
}

.ReceivableNotes {
  font-weight: var(--font-weight-medium);
}

.ReceivableDate {
  color: grey;
  font-size: var(--font-size-sm);
}

.ReceivableDate,
.ReceivablePaymentInfo {
  margin-bottom: var(--space-sm);
}

.ReceivablePaymentInfo {
  font-style: italic;
}

.account_address {
  padding-bottom: var(--space-lg);
}

/* Security
   ========================================================================== */

table.profile_security th,
table.profile_security td {
  border: 1px solid var(--color-border);
  padding: 6px var(--space-sm);
}

table.profile_security th {
  background: #f5f5f5;
}


/* Table Caption
   ========================================================================== */

table {
  caption-side: top;
}

/* Member Directory
   ========================================================================== */

.membershipDirectoryAlphaMenu a {
  border: 1px solid var(--color-border);
  font-size: var(--font-size-sm);
  padding: 1px 7px;
  text-decoration: none !important;
  margin-bottom: 2px;
  color: var(--color-text);
  float: left;
}
.membershipDirectoryAlphaMenu a:first-child {
  border-left-width: 1px;
  border-top-left-radius: var(--radius-sm);
  border-bottom-left-radius: var(--radius-sm);
}
.membershipDirectoryAlphaMenu a:last-child {
  border-top-right-radius: var(--radius-sm);
  border-bottom-right-radius: var(--radius-sm);
}

a.membershipDirectoryAlphaSelected,
a.membershipDirectoryAlphaSelected:hover,
a.membershipDirectoryAlphaSelected:active,
a.membershipDirectoryAlphaSelected:focus,
.membershipDirectoryAlphaMenu a:hover,
.membershipDirectoryAlphaMenu a:active,
.membershipDirectoryAlphaMenu a:focus {
  background: var(--color-text);
  color: var(--color-light);
  border: 1px solid var(--color-text);
}

.membershipDirectoryAlphaMenu:after {
  display: block;
  clear: both;
  content: "";
}

/* Membership Status
   ========================================================================== */

.MembershipStatus {
  background-color: var(--color-light-alt);
  padding: var(--space-md) var(--space-lg);
  margin-bottom: var(--space-lg);
  border-radius: var(--radius-sm);
}

.profileStatusSummary {
  margin-bottom: var(--space-md);
}

.gotoProfileLink {
  margin-top: var(--space-lg);
}

.profileStatusSummary .profileSummary h4 {
  margin-top: 0;
}

.Profile .profilePhoto {
  max-width: 150px;
  margin: var(--space-lg) 0;
  border: 1px solid var(--color-border);
  padding: var(--space-xs);
}

.Profile h3 {
  margin-top: 0;
}

.MembershipApply {
  margin: var(--space-lg) 0;
}

.MembershipApply a {
  display: inline-block;
}

.navpath,
.navpath a,
.pmenu,
.pmenu a {
  font-size: var(--font-size-sm);
}

.navpath a,
.pmenu a {
  padding: 0 var(--space-xs);
}

.navpath a:first-child,
.pmenu a:first-child {
  padding-left: 0;
}

.profileTitle {
  margin-bottom: var(--space-xs);
}

.profilePhoto {
  max-width: 150px;
  margin: var(--space-lg) 0;
  border: 1px solid var(--color-border);
  padding: var(--space-xs);
}

.profileDescription {
  font-style: italic;
  color: var(--color-muted);
}

.profileContacts {
  margin: var(--space-lg) 0;
}

.warn,
.warning,
.info,
.bInfo_44,
.help,
.highlight,
p.noMembership {
  display: block;
  background-color: #fff3cd;
  color: #856404;
  border-radius: var(--radius-sm);
  padding: var(--space-md) var(--space-lg);
  margin: 0 0 var(--space-lg);
}

.info,
.help {
  background-color: #d9edf7;
  border: none;
  color: #31708f;
}

.warn a,
.warning a,
.info a,
.bInfo_44 a,
.help a,
.highlight a,
p.noMembership a {
  font-weight: var(--font-weight-bold);
  text-decoration: underline;
}

.warn a,
.warning a,
.highlight a,
p.noMembership a {
  color: #5d5e3c;
}

.info a,
.bInfo_44 a,
.help a {
  color: #31708f;
}

.error a:hover,
.info a:hover,
.bInfo_44 a:hover,
.warn a:hover,
p.noMembership a:hover {
  text-decoration: none;
}

.warn p:last-child,
.warning p:last-child,
.info p:last-child,
.bInfo_44 p:last-child,
.help p:last-child,
.highlight p:last-child {
  margin: 0;
}

p.noMembership a:hover,
.warning a:hover,
.warn a:hover {
  text-decoration: none;
}

/* Membership Type
   ========================================================================== */
.membership_type_description {
  color: var(--color-muted-on-light);
  font-style: italic;
  margin: var(--space-xs) 0;
}

/* Update profile
   ========================================================================== */
.msg.bg-primary {
  padding: var(--space-sm);
  background-color: #337ab7;
}
.msg.bg-primary a {
  color: var(--color-light);
  font-weight: var(--font-weight-bold);
}

a.dp-choose-date {
  margin-left: 4px;
}

/* Member Directory & Profile
   ========================================================================== */
.profileSummary .profileThumb img {
  margin-bottom: var(--space-md);
  border-radius: var(--radius-sm);
  max-width: 100px;
}

.profileSummary .profileDescription {
  margin-top: var(--space-xs);
  color: var(--color-muted-on-light);
}

.profileSummary h4 {
  margin: 0;
}

.profileSummary a h4 {
  color: var(--color-primary-link);
}

.profileSummary a:hover h4 {
  color: var(--color-primary-link-hover);
  transition: var(--transition-fast);
}

.memberDirectoryTools {
  margin-top: var(--space-lg);
  padding-top: var(--space-lg);
}

.profileSummary {
  background-color: var(--color-light-alt);
  padding: var(--space-lg);
  border-radius: var(--radius-sm);
  margin-top: var(--space-md);
}

.profileSummary .Contact {
  background-color: var(--color-light);
}

.profileStatusSummary {
    background: var(--color-light-alt);
    padding: var(--space-lg);
    margin-bottom: var(--space-md);
    border-radius: var(--radius-sm);
}

.profileStatusSummary .profileSummary {
  margin-bottom: var(--space-md);
  padding: 0;
  margin-top: 0;
}

.panel .profileStatusSummary,
.panel .profileSummary {
  background: none;
  padding: 0;
}

.panel .profileSummary .profileDescription {
  color: var(--color-muted);
}

/* Table Report
   ========================================================================== */

table.Report {
  margin-bottom: var(--space-sm);
}

table.Report tr:nth-child(even) {
  background-color: var(--color-light-alt);
}
table.Report th,
table.Report tr td {
  border: 1px solid var(--color-border);
  text-align: left;
  padding: var(--space-xs);
}
table.Report th {
  background: var(--color-muted);
  color: var(--color-light);
}

/* Forum
   ========================================================================== */

table.Forum {
  border-collapse: collapse;
  width: 100%;
}
table.Forum th {
  background: #f2f2f2;
}
table.Forum th,
table.Forum td {
  border: 1px solid var(--color-border);
  padding: var(--space-xs);
}
table.Forum tr:nth-child(odd) {
  background-color: #f8f8f8;
}
.ForumTools {
  margin: var(--space-sm) 0;
}

.ContactForm table td {
  padding: 0 var(--space-xs) var(--space-md) 0;
}
.ContactForm table:last-child tr:last-child td {
  padding-bottom: 0;
}
.ChangePassword table {
  margin-bottom: var(--space-md);
}
.ChangePassword table td {
  padding: 0 var(--space-sm) var(--space-xs) 0;
}
@media screen and (max-width: 600px) {
  .ContactForm td,
  textarea {
    display: block;
    width: 100%;
  }
}

/* SPM styles
   ========================================================================== */

.program .list-group {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  padding: 0;
}

.program .list-group .list-group-item {
  width: auto;
  margin-right: 5px; 
}

.program .profileSummary {
    background-color: var(--color-light-alt);
    padding: var(--space-lg);
    border-radius: var(--radius-sm);
    margin-top: var(--space-md);
}

.program .programSchedule .programSchedTime,
.program .programSchedule .programItemTitle,
.program .programSchedule .programItemDetails,
.program .programSchedule .programItemLocation {
  display: block;
}

.program .programItem.programPresentation,
.program .Index .EventSummary,
.programItem.programEvent {
  border-bottom: 1px solid var(--color-border);
  padding-bottom: var(--space-md);
  margin-bottom: var(--space-md);
}

.programItem.programPresentation:last-child {
  border: none;
  padding: 0;
  margin: 0;
}

.program .programSchedule h3 {
  margin: 25px 0px var(--space-sm);
}

.program .Index .eventDate {
  color: #010101;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
}

.program .programSchedule {
  margin-top: var(--space-lg);
}

.program .programSchedTime {
  font-size: var(--font-size-xs);
  color: var(--color-muted);
}

.sponsorGroupList .sponsorSummary {
  margin: var(--space-lg);
  display: inline-block;
  max-width: 150px;
}

.sponsorGroupList {
  text-align: center;
}

.program .list-group-item {
  padding: var(--space-sm) var(--space-xs);
}

.programTools {
  margin-bottom: var(--space-md);
}

/* Widgets
   ========================================================================== */

/* Accordions */

.accordionbox .panel-heading .accordionLink::after {
    content: "\25BC"; /* down arrow */
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
}

.accordionbox .panel-heading .accordionLink[aria-expanded="true"]::after {
    transform: translateY(-50%) rotate(180deg);
}

.accordionbox .panel-heading {
    cursor: pointer;
    padding: 0; /* remove default header padding */
}

.accordionbox .panel-heading .accordionLink {
    display: block;
    width: 100%; /* fill the header */
    padding: 1rem 1.25rem; /* add your padding here */
    position: relative;
}

.accordionbox .panel-heading .accordionLink[aria-expanded="true"] {
    color: #111;
    background-color: #e7f1ff;
}

.accordionbox .panel-heading .accordionLink[aria-expanded="true"]:focus {
    box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);
}

/* Tab Boxes */

.tabbox .tab-pane {
    padding: var(--space-md);
}

/* Popups */

a.widgetPopup {
  cursor: pointer;
}

/* Block & Panel Base Styles */

.block__tools {
  display: flex;
  justify-content: center;
}

.block__tools .btn {
  margin: 0 2px;
}

.block__index > .panel {
  margin-bottom: var(--space-xxl);
}

.panel__inner {
  height: 100%;
}

.panel__image {
    width: 100%;
}

.block__jumbotron {
  background-color: var(--color-light-alt);
  text-align: center;
  font-size: 20px;
}

.block__jumbotron .block__image {
  max-width: 50px;
}

.block__jumbotron .block__index > .panel {
  margin: 0;
}

/* Modifiers: Grey & Dark */
.block--grey .block__jumbotron,
.panel--grey .panel__inner {
  background-color: var(--color-light-alt);
}

.block--dark .block__jumbotron,
.panel--dark .panel__inner {
  background-color: var(--color-primary);
  color: var(--color-light);
}

.panel--dark .panel__inner .btn,
.block--dark .block__jumbotron .btn-primary {
  background-color: var(--color-button-primary-bg-on-dark);
}

.panel--dark .panel__inner .btn:hover,
.panel--dark .panel__inner .btn:active,
.panel--dark .panel__inner .btn:focus,
.block--dark .block__jumbotron .btn-primary:hover,
.block--dark .block__jumbotron .btn-primary:active,
.block--dark .block__jumbotron .btn-primary:focus {
  background-color: var(--color-button-primary-bg);
}

.panel--grey .panel__content,
.panel--dark .panel__content {
  padding: var(--space-lg);
}

.panel__title {
  margin-top: var(--space-lg);
}

.panel--grey .panel__content .panel__title,
.panel--dark .panel__content .panel__title {
  margin-top: 0;
}

.block--dark .block__jumbotron .block__title,
.block--dark .panel__content .panel__title,
.panel--dark .panel__content .panel__title {
  color: #fff;
}

/* Panel Inner Variants */
.panel__inner--text-only {
    padding: var(--space-xl);
    box-shadow: 0 .5rem 1rem rgba(0,0,0,.15);
}

.panel--grey .panel__inner--text-only .panel__content,
.panel--dark .panel__inner--text-only .panel__content {
    padding: 0;
}

.panel__inner--text-only .panel__title {
  margin-top: 0;
}

.panel__inner--text-only .panel__tools {
    margin-top: var(--space-lg);
}

.panel__inner--small-image {
  text-align: center;
  padding: var(--space-xxl) var(--space-lg);
  border-radius: 4px;
}

.panel__inner--small-image .panel__image {
  max-width: 50px;
  margin: 0 auto;
  display: block;
}

.carousel-item__caption {
  display: flex;
  align-items: center;
  text-align: center;
  justify-content: center;
  flex-direction: column;
  top: 0;
  bottom: 0;
}

.carousel-item--dark .carousel-item__caption {
  background: rgba(0, 0, 0, .7);
  left: 0;
  right: 0;
}

.block__carousel-control {
  z-index: var(--z-overlay);
}

button.block__carousel-control:hover,
button.block__carousel-control:active,
button.block__carousel-control:focus {
  background: none;
  box-shadow: none;
}

.carousel-item__body {
  margin: 0 0 var(--space-lg);
}

.carousel-item__title {
  margin-top: 0;
  color: #fff;
}

/* Full-image panel styling */
.panel__full-image {
  border-radius: var(--radius-sm);
}

.panel__full-image .panel__image {
  width: 100%;
  display: block;
  border-radius: var(--radius-sm);
}

/* Hide the bottom overlay bar */
.panel__overlay {
  opacity: 1;
  transition: opacity .35s ease, transform .35s ease;
  pointer-events: auto;
  display: none;
  border-bottom-left-radius: var(--radius-sm);
  border-bottom-right-radius: var(--radius-sm);
}

@media screen and (min-width: 992px) {
  .block__index {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-left: -15px;
    margin-right: -15px;
  }

  .block__index > .panel {
    -ms-flex: 0 0 33.333333%;
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
    padding-right: 15px;
    padding-left: 15px;
    margin-bottom: var(--space-xl);
  }

  .block--two-column .block__index > .panel {
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50%;
  }

  .block__jumbotron .block__index {
    display: block;
    margin: 0;
  }

  .block__jumbotron .block__index > .panel {
    max-width: 100%;
    padding: 0;
  }
}


@media screen and (min-width: 1200px) {
  .panel__full-image {
    position: relative;
    overflow: hidden;
  }

  /* Bottom title bar */
  .panel__overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: var(--space-xl);
    background-color: rgba(var(--color-secondary-rgb), var(--opacity-high));
    color: var(--color-light);
    z-index: var(--z-overlay);
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: opacity .35s ease, transform .35s ease;
  }

  .panel__overlay .panel__overlay-title {
    color: var(--color-light);
    margin: 0;
  }

  /* Fade/slide out on hover */
  .panel__full-image:hover .panel__overlay,
  .panel__full-image:focus-within .panel__overlay {
      opacity: 0;
      transform: translateY(20px); /* slides down */
      pointer-events: none;
  }

  /* Overlay indicator */
  .panel__overlay-indicator {
    font-size: 36px;
    line-height: 1;
    transition: transform .25s ease, opacity .25s ease;
  }

  .panel__full-image:hover .panel__overlay-indicator
  .panel__full-image:focus-within .panel__overlay-indicator {
      opacity: 0;
      transform: translateY(-4px);
  }

  /* Full hover panel */
  .panel__hover-panel {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      padding: var(--space-xxl);
      font-size: var(--font-size-md);
      background-color: rgba(var(--color-primary-rgb), var(--opacity-high));
      opacity: 0;
      transform: translateY(10px);
      transition: opacity .35s ease, transform .35s ease;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      text-align: center;
      color: #fff;
  }

  .panel__hover-panel h3 {
    margin: 0 0 var(--space-sm);
    color: #fff;
  }

  .panel__hover-panel p {
      margin-bottom: var(--space-sm);
  }

  .panel__hover-panel .panel__tools {
      margin-top: var(--space-md);
  }

  .panel__hover-panel .btn {
    background-color: var(--color-button-primary-bg-on-dark);
  }

  .panel__hover-panel .btn:hover,
  .panel__hover-panel .btn:active,
  .panel__hover-panel .btn:focus {
    background-color: var(--color-button-primary-bg);
  }

  /* Reveal hover panel */
  .panel__full-image:hover .panel__hover-panel,
  .panel__full-image:focus-within .panel__hover-panel {
      opacity: 1;
      transform: translateY(0);
  }
}