.outfit-italic {
  font-family: "Outfit", Verdana, sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: italic;
}

.outfit-bold {
  font-family: "Outfit", Verdana, sans-serif;
  font-optical-sizing: auto;
  font-weight: 650;
  font-style: normal;
}

.outfit-bold-italic {
  font-family: "Outfit", Verdana, sans-serif;
  font-optical-sizing: auto;
  font-weight: 650;
  font-style: italic;
}

:root {
  --citroen-red: #E1393E;
  --dark-medium-blue: #1E6994;
  --dark-red: #94171B;
  --dark-blue: #071559;
  --ash-gray: #B7C8B5;
  --tea-green: #C5EBC3;
  --eggplant: #54414E;
  --jet: #3A3335;
  --cambridge-blue: #92B4A7;
  --indigo-dye: #0B4F6C;
  --light-gray: #d8d8d8;
  --medium-gray: #ccc;
  --warm-maroon: #8B2F2F;
}

/* Rendezvous customizations */
html {
  scroll-behavior: smooth;
}

body {
  background-color: var(--cambridge-blue);
}
body.admin-page {
  background-color: var(--light-gray);
}
body.admin-page .card {
  background-color: var(--medium-gray);
}

body, p, li, ol, td {
  font-family: "Outfit", Verdana, sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 18px;
}

section.banner {
  background-color: #CD1616;
}
section.banner img {
  display: inline-block;
  margin: 6vw;
}

.btn {
  font-weight: bold;
}

/* Bootstrap icon colors */
svg.bi {
  padding-right: 5px;
}
svg.bi.add_person, svg.bi.plus {
  color: var(--dark-medium-blue);
  fill: var(--dark-medium-blue);
}
svg.bi.remove_person, svg.bi.minus {
  color: darkred;
  fill: darkred;
}
svg.bi.car {
  color: var(--citroen-red);
  fill: var(--citroen-red);
}

.button-with-spinner {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 15px;
}

#payment-link {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 15px;
  padding-top: 20px;
}
#payment-link .btn.btn-square-pay {
  position: relative;
  display: block;
  width: fit-content;
  padding-right: 35px;
}
#payment-link .btn.btn-square-pay::after {
  content: url("/assets/square-icon-de6486b1.png");
  position: absolute;
  margin-top: -2px;
}

button[data-dismiss] {
  border: none;
  background: none;
}

a, a:visited {
  color: var(--warm-maroon);
  transition: all 0.3s ease-in-out;
}
a:hover, a:visited:hover {
  color: var(--medium-gray);
  text-decoration: underline;
}
a.btn, a:visited.btn {
  color: white !important;
}
a.btn:hover, a:visited.btn:hover {
  color: #999 !important;
  text-decoration: none;
}

main .banner img {
  max-width: 90%;
  width: 600px;
}

footer {
  padding: 30px 0;
}

h1, h2, h3, h4, h5, h6 {
  font-family: "Prompt", Verdana, sans-serif;
  font-weight: 600;
  font-style: normal;
  font-weight: bold;
}
h1.no-card, h2.no-card, h3.no-card, h4.no-card, h5.no-card, h6.no-card {
  background-color: var(--indigo-dye);
  color: white;
  padding: 20px 40px 10px;
}

.page-title {
  background-color: var(--indigo-dye);
  color: white;
  padding: 20px 0 20px 20px;
  margin-bottom: 0;
}

.row.registration-open {
  text-align: center;
  background-color: var(--eggplant);
}
.row.registration-open a, .row.registration-open a:visited {
  color: white;
}

.btn-register {
  font-weight: bold;
  background-color: var(--citroen-red);
  color: white;
  border-radius: 35px;
}
.btn-register:hover {
  background-color: var(--tea-green);
}
.btn-register:active {
  background-color: white;
  border: var(--jet);
}

header {
  background-color: var(--citroen-red);
  color: white;
}
header .banner a, header .banner a:visited {
  color: white;
}
header .banner a:hover, header .banner a:visited:hover {
  font-size: 1.01em;
  text-decoration: none;
}

.bg-nav {
  background-color: var(--dark-medium-blue);
}

.dropdown-menu {
  background: whitesmoke;
  z-index: 10000;
}

.navbar-dark .navbar-nav .nav-link {
  color: white;
}
.navbar-dark .navbar-nav .nav-link:hover {
  text-decoration: underline;
}

.flash-wrapper {
  position: fixed;
  top: 40px;
  left: 50%;
  width: 600px;
  max-width: 90%;
  transform: translateX(-50%);
  z-index: 200;
}
.flash-wrapper .flash {
  position: relative;
  margin: 10px auto;
  padding: 20px;
  background-color: #ddd;
  color: var(--jet);
  border-radius: 5px;
  border: solid 2px var(--citroen-red);
  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5);
}
.flash-wrapper .flash .close-flash {
  cursor: pointer;
  position: absolute;
  font-size: 0.8em;
  right: 5px;
  top: 5px;
}

.form-group .simple_mde > *:not(label) {
  background-color: white;
}

.CodeMirror,
.CodeMirror-scroll {
  height: 150px;
  min-height: 150px;
}

input[type=checkbox] {
  display: inlin-block;
  margin-right: 0.5em;
}

.ui-sortable-handle {
  cursor: pointer;
}

/* Bootstrap customizations */
.badge {
  height: fit-content;
}

.manage {
  background-color: palegoldenrod;
  border-top: solid 2px var(--eggplant);
  border-bottom: solid 2px var(--eggplant);
}
.manage label {
  color: var(--eggplant);
  font-weight: bold;
}

.navbar .navbar-brand {
  font-size: 1.2em;
  font-weight: bold;
}
.navbar .nav-item.site {
  display: inline-block;
  margin-left: 1em;
}
.navbar .navbar-rendezvous {
  background-color: var(--citroen-red);
  color: white;
}
.navbar.top-nav .navbar-brand {
  margin: 0 40px;
}

.card {
  margin: 10px 0;
  background-color: var(--tea-green);
}
.card:first-of-type {
  margin-top: 0;
}
.card .card-title {
  color: white;
  background-color: var(--indigo-dye);
  padding: 15px 20px 7px;
}
.card .card-title h1, .card .card-title h2, .card .card-title h3, .card .card-title h4, .card .card-title h5, .card .card-title h6 {
  padding: 0;
  margin: 0;
  line-height: 1;
}
.card .card {
  margin: 7px 0;
  background-color: var(--ash-gray);
}
.card .card .card {
  background-color: whitesmoke;
}

.vehicles-for-sale tr, .vehicles-for-sale td {
  border-top: solid 1px var(--jet);
  border-bottom: solid 1px var(--jet);
}

rendezvous-vehicle .code-handling {
  display: flex;
  align-items: center;
}
rendezvous-vehicle .code-handling input[data-code-autocomplete] {
  text-transform: uppercase;
  width: 200px;
}
rendezvous-vehicle .code-handling .badge.hide {
  display: none;
}

/* rows hidden by filtering (needed for child rows) */
.tablesorter .filtered {
  display: none;
}

.status-icon {
  padding-top: 20px;
  font-size: 20px;
}
.status-icon .complete {
  color: green;
}
.status-icon .initiated {
  color: slateblue;
}
.status-icon .in-review {
  color: gold;
}
.status-icon .payment-due {
  color: orange;
}
.status-icon .cancelled {
  color: darkred;
}

.c_event_registrations .last-step-vehicles .user_fields {
  display: none;
}

.registration-status {
  background-color: black;
  color: #ccc;
}

.registration-status a, .registration-status a:visited {
  color: gold;
}
.registration-status .fa-check-circle, .registration-status .payment-due {
  color: orange;
}
.registration-status .complete {
  color: #6f6;
}

.c_event_registrations .body-wrapper {
  background: #d6e6e6;
}

/******************************
responsive area
********************************/
/* lg */
/* md */
/* sm */
@media (min-width: 768px) and (max-width: 991px) {
  .single-service {
    margin-bottom: 30px;
  }
  .navbar-default .navbar-nav > li > a {
    padding: 12px 10px;
  }
  input.message {
    width: 718px;
  }
}
/* xs */
@media (min-width: 480px) and (max-width: 767px) {
  input.name {
    margin-top: 55px;
    width: 420px;
  }
  input.email {
    width: 420px;
  }
  input.message {
    width: 420px;
  }
  .about-inside {
    padding: 10px;
  }
}
/* XS Portrait */
@media (max-width: 479px) {
  .logo {
    margin-top: 10px;
  }
  input.name {
    margin-top: 55px;
    width: 275px;
  }
  input.email {
    width: 275px;
  }
  input.message {
    width: 275px;
  }
  .contact-form input.submit-btn {
    width: 200px;
    height: 50px;
    border: 0;
  }
  .navbar-header {
    margin-top: 5px !important;
  }
  .about-inside {
    padding: 0px;
  }
}
@media print {
  .manage, .flash-wrapper, .back-bar, .push, .footer, #modal, .fa-print {
    display: none;
  }
  .simple .heading {
    margin-top: 0;
  }
}
.debug {
  background: white;
  color: black;
  font-family: "Courier New", Courier, monospace;
  font-size: 14px;
  border: solid 2px darkred;
  padding: 20px 40px;
}

.c_event_registrations main {
  margin-top: 0;
}
.c_event_registrations .card {
  background-color: aliceblue;
}
.c_event_registrations label {
  font-weight: bold;
  color: var(--indigo-dye);
}

.hidden {
  display: none;
}

#attendees .nested-fields:first-child .guest {
  display: none;
}
#attendees .nested-fields:not(:first-child) .registrant {
  display: none;
}

#vehicle-modal .modal-dialog {
  max-width: 800px;
}

#vehicles [data-active] {
  border: solid 2px var(--dark-red);
}

.amount {
  font-size: 1.2em;
  padding: 10px 20px;
  background-color: white;
  border-radius: 5px;
}

input.calculated {
  border: none;
  background: transparent;
  font-weight: bold;
}

.attendee .attendee-type {
  font-weight: bold;
  font-style: italic;
  text-transform: uppercase;
  font-size: 0.9em;
  padding: 5px 20px;
  border-radius: 5px;
  margin-bottom: 10px;
}
.attendee .attendee-type.registrant {
  color: black;
  background-color: #eee;
  border: solid 2px #c00;
  display: none;
}
.attendee .attendee-type.guest {
  color: #444;
  background-color: #dedede;
  border: solid 1px #666;
}
.attendee:first-child .registrant {
  display: block;
}
.attendee:first-child .guest {
  display: none;
}

.existing_account {
  font-weight: bold;
  font-size: 1.1em;
  display: none;
}

#new_registration input.email {
  width: 100%;
}

#new_registration fieldset {
  margin-top: 30px;
}

#new_registration .registration_user_country {
  font-size: 1.2em;
  font-weight: bold;
}

label.radio-inline {
  display: inline-block;
  margin-right: 20px;
}

.printed-form .fa-file-pdf-o {
  font-size: 1.5em;
  padding-left: 10px;
}

#registration-form {
  position: relative;
}
#registration-form .cover {
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.8);
  z-index: 250;
}

#country {
  font-size: 18px;
}

td#logo {
  padding: 0 10px;
  background-image: url("/assets/credit_card_logos_13-cefa38a6.gif");
  background-position: 400px 0;
  background-repeat: no-repeat;
  width: 55px;
}
td#logo.visa {
  background-position: 0 0;
}
td#logo.master-card {
  background-position: -60px 0;
}
td#logo.discover {
  background-position: -120px 0;
}

.registration-step {
  text-align: center;
  text-transform: uppercase;
  background-color: var(--indigo-dye);
  color: white;
}
.registration-step a, .registration-step a:visited {
  color: white;
}
.registration-step a:hover, .registration-step a:visited:hover {
  color: var(--tea-green);
}
.registration-step .list-group-item {
  background: transparent;
  border: none;
  display: inline-block;
  text-align: center;
  margin: 20px 0;
  width: 12rem;
}
.registration-step .list-group-item.step {
  font-size: 0.9rem;
}
.registration-step .list-group-item.step.current {
  font-size: 2.25rem;
}

body .simple h1 {
  height: 90px;
  background: url("/assets/rendezvous-logo-e8c25304.png") no-repeat right center;
}
body .simple .content .invoice {
  margin: 40px;
  border-left: solid 1px #999;
  border-right: solid 1px #999;
}
body .simple .content .invoice p {
  font-size: 1.2em;
  line-height: 1.4;
}

:root {
  --appWidth: 540px;
}

.c_voting_ballots > .container {
  max-width: var(--appWidth);
}
.c_voting_ballots > .container main {
  margin-top: 0;
}
.c_voting_ballots .card {
  background: white;
}

svg.bi.delete {
  padding: 0;
}

#voting-instructions Ul > li {
  font-size: 1.3rem;
  line-height: 1.3;
}

#voting-app input[name=code] {
  text-transform: uppercase;
  font-size: 2.5rem;
}
#voting-app .selections .btn {
  display: inline-block;
  margin-right: 10px;
  background: white;
  border-radius: 7px;
  color: red;
  border: solid 1px var(--indigo-dye);
}
#voting-app .selections .btn svg.bi.delete {
  padding: 0;
}
#voting-app .tab-content > .tab-pane {
  display: block !important; /* override Bootstrap */
  visibility: hidden;
  position: absolute;
  z-index: -1;
}
#voting-app .tab-content > .tab-pane.active {
  visibility: visible;
  position: static;
  z-index: auto;
}
#voting-app #vote-action-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
#voting-app #vote-action-container .selection-wrapper, #voting-app #vote-action-container .error-wrapper {
  max-width: var(--appWidth);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background: #eee;
  color: var(--darkblue);
  padding: 10px;
  line-height: 1.4;
}
#voting-app #vote-action-container .error-wrapper {
  display: none;
}
#voting-app #vote-action-container .selection-info, #voting-app #vote-action-container .error-info {
  font-size: 1.5;
  border-radius: 10px;
  margin: 20px 0;
  padding: 30px;
  background-color: var(--cambridge-blue);
  box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.3);
  font-size: 1.5rem;
}
#voting-app #vote-action-container .selection-info .category, #voting-app #vote-action-container .error-info .category {
  margin-bottom: 20px;
  font-weight: bold;
}
#voting-app #vote-action-container .error-info {
  background-color: var(--citroen-red);
  color: white;
}
#voting-app #categories-content-frame .category {
  font-size: 1.4rem;
}

x body.labels {
  font-family: Arial, sans-serif;
  font-size: 20px;
  line-height: 1.8;
}
x body.labels .container {
  display: flex;
  flex-wrap: wrap;
  width: 8.5in;
}
x body.labels .container .label {
  color: black;
  box-sizing: border-box;
  width: 4in;
  height: 3.33in;
  margin: 0 0.125in;
  padding: 1rem 2rem;
  position: relative;
}
x body.labels .container .label .name {
  font-weight: bold;
  font-size: 1.2em;
}
x body.labels .container .label .logo {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  height: 4rem;
}
x body.labels .container .label:nth-child(6n+1), x body.labels .container .label:nth-child(6n+2) {
  margin-top: 0.5in;
}
x body.labels .container .label:nth-child(6n) {
  page-break-after: always;
}

body {
  background-color: #bac8de;
  color: #333;
  font-family: verdana, arial, helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.2;
}

p, ol, ul, td {
  font-family: verdana, arial, helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.2;
}

pre {
  background-color: #eee;
  padding: 10px;
  font-size: 11px;
}

a {
  color: #000;
}
a:visited {
  color: #666;
}
a:hover {
  text-decoration: underline;
}

div.field, div.actions {
  margin-bottom: 10px;
}

#notice {
  color: green;
}

.field_with_errors {
  padding: 2px;
  background-color: red;
  display: table;
}

#error_explanation {
  width: 450px;
  border: 2px solid red;
  padding: 7px;
  padding-bottom: 0;
  margin-bottom: 20px;
  background-color: #f0f0f0;
}
#error_explanation h2 {
  text-align: left;
  font-weight: bold;
  padding: 5px 5px 5px 15px;
  font-size: 12px;
  margin: -7px;
  margin-bottom: 0px;
  background-color: #c00;
  color: #fff;
}
#error_explanation ul li {
  font-size: 12px;
  list-style: square;
}
