  :root {
    --cruise-form-dark-blue: #0056b3;
    --cruise-form-light-blue: #007bff;
    --cruise-form-label-color: #4d5252;
    --cruise-form-button-color: #fff;
    --cruise-form-disabled-button: #889bb1;
    --cruise-form-disabled-button-text: #60768d;
  }
  form#cruiseReservationForm * { font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; }
  form#cruiseReservationForm span.asterisk {
    font-weight:400;
    color:red;
    letter-spacing:1rem;
  }
  h3.cruiseHeader {
    background: var(--cruise-form-light-blue);
    color: var(--cruise-form-button-color);
    padding: .7rem!important;
    border-radius: 15px;
    box-shadow: inset 0px 0px 6px var(--cruise-form-dark-blue);
    text-align: center;
    margin:1rem auto;
    max-width: fit-content;
  }
  #multi-step-form-container { margin-top: 5rem; }
  .text-center { text-align: center; }
  .mx-auto { margin-left: auto; margin-right: auto; }
  .pl-0 { padding-left: 0; }
  .mt-3 { margin-top: 2rem; }
  .d-none { display: none; }
  .form-step {
    border: 2px solid var(--cruise-form-dark-blue);
    border-radius: 10px;
    padding: 2rem;
  }
  .font-normal { font-weight: normal; }
  ul.form-stepper {
    counter-reset: section;
    margin-bottom: 3rem;
  }
  ul.form-stepper .form-stepper-circle { position: relative; }
  ul.form-stepper .form-stepper-circle span {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
  }
  .form-stepper-horizontal {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
  }
  .form-stepper-circle.text-muted {
    color: var(--cruise-form-dark-blue)!important;
  }
  ul.form-stepper>li:not(:last-of-type) {
    margin-bottom: 0.625rem;
    -webkit-transition: margin-bottom 0.4s;
    -o-transition: margin-bottom 0.4s;
    transition: margin-bottom 0.4s;
  }
  .form-stepper-horizontal>li:not(:last-of-type) {
    margin-bottom: 0 !important;
  }
  .form-stepper-horizontal li {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: start;
    -webkit-transition: 0.5s;
    transition: 0.5s;
  }
  .form-stepper-horizontal li:not(:last-child):after {
    position: relative;
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    height: 1px;
    content: "";
    top: 32%;
  }
  .form-stepper-horizontal li:after {
    background-color: var(--cruise-form-light-blue);
  }
  .form-stepper-horizontal li.form-stepper-completed:after {
    background-color: var(--cruise-form-dark-blue);
  }
  .form-stepper-horizontal li:last-child {
    flex: unset;
  }
  ul.form-stepper li a .form-stepper-circle {
    display: inline-block;
    width: 40px;
    height: 40px;
    margin-right: 0;
    line-height: 1.7rem;
    text-align: center;
    background: rgba(0, 0, 0, 0.38);
    border-radius: 50%;
  }
  .form-stepper .form-stepper-active .form-stepper-circle {
    background-color: var(--cruise-form-light-blue)!important;
    color: var(--cruise-form-button-color)
  }
  .form-stepper .form-stepper-active .label {
    color: var(--cruise-form-light-blue)!important;
  }
  .form-stepper .form-stepper-active .form-stepper-circle:hover {
    background-color: var(--cruise-form-light-blue)!important;
    color: var(--cruise-form-button-color)!important;
  }
  .form-stepper .form-stepper-unfinished .form-stepper-circle {
    background-color: var(--cruise-form-button-color)!important;
    color: var(--cruise-form-button-color);
  }
  .form-stepper .form-stepper-completed .form-stepper-circle {
    background-color: var(--cruise-form-dark-blue)!important;
    color: var(--cruise-form-button-color);
  }
  .form-stepper .form-stepper-completed .label {
    color: var(--cruise-form-dark-blue)!important;
  }
  .form-stepper .form-stepper-completed .form-stepper-circle:hover {
    background-color: var(--cruise-form-dark-blue)!important;
    color: var(--cruise-form-button-color)!important;
  }
  li.form-stepper-list.form-stepper-unfinished * {
    background-color:transparent;
    color: var(--cruise-form-dark-blue)!important;
  }
  .form-stepper .form-stepper-active span.text-muted {
    color: var(--cruise-form-button-color)!important;
  }
  .form-stepper .form-stepper-completed span.text-muted {
    color: var(--cruise-form-button-color)!important;
  }
  .form-stepper .label {
    font-size: 1rem;
    margin-top: 0.5rem;
  }
  .form-stepper a { cursor: default; text-decoration: none!important; }
  /* END Steper Form CSS Here */

  /* Cool Form CSS Here */
  fieldset { padding:0; border:0; margin:0; }
  fieldset > legend { font-weight: 700;
    color: var(--cruise-form-dark-blue);
    text-align: center;
    padding-bottom: 1rem;
    font-size: 1.4rem;
  }
  .form-container {
    max-width: calc(100vw - 2rem);
    margin: 0 auto;
    background-color: var(--cruise-form-button-color);
    padding: 20px;
    box-shadow: 0 0 10px rgba(0,0,0,0.1);
    border-radius: 8px;
  }
  .form-group { margin-bottom: 15px; }
  .flexible-row-nowrap { display:flex; flex-flow: row nowrap; }
  .form-group label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
  }
  .form-group input,
  .form-group select,
  .form-group textarea,
  .form-group button {
    width: 100%;
    padding: 10px;
    border: 1px solid var(--cruise-form-dark-blue);
    border-radius: 5px;
    font-size: 16px;
  }
  .form-group input:focus,
  .form-group select:focus,
  .form-group textarea:focus,
  .form-group button:focus {
    border-color: var(--cruise-form-dark-blue);
    outline: none;
  }
  .form-group button {
    background-color: #007BFF;
    color: var(--cruise-form-button-color);
    cursor: pointer;
    transition: background-color 0.3s;
  }
  .form-group button:hover {
    background-color: #0056b3;
    color: var(--cruise-form-button-color);
  }
  .form-group input[type="range"] {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
    border:none;
  }
  .form-group input[type="range"]::-webkit-slider-runnable-track {
    width: 100%;
    height: 8px;
    cursor: pointer;
    background: var(--cruise-form-dark-blue);
    border-radius: 5px;
  }
  .form-group input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    height: 36px;
    width: 16px;
    background: var(--cruise-form-button-color);
    border: 2px solid var(--cruise-form-light-blue);
    border-radius: 3px;
    cursor: pointer;
    margin-top: -13px;
  }
  .form-group input[type="range"]::-moz-range-track {
    width: 100%;
    height: 8px;
    cursor: pointer;
    background: var(--cruise-form-dark-blue);
    border-radius: 5px;
  }
  .form-group input[type="range"]::-moz-range-thumb {
    height: 36px;
    width: 16px;
    background: var(--cruise-form-button-color);
    border: 2px solid var(--cruise-form-light-blue);
    border-radius: 3px;
    cursor: pointer;
  }
  .form-group input[type="range"]::-ms-track {
    width: 100%;
    height: 8px;
    cursor: pointer;
    background: transparent;
    border-color: transparent;
    color: transparent;
  }
  .form-group input[type="range"]::-ms-fill-lower {
    background: var(--cruise-form-dark-blue);
    border-radius: 5px;
  }
  .form-group input[type="range"]::-ms-fill-upper {
    background: var(--cruise-form-dark-blue);
    border-radius: 5px;
  }
  .form-group input[type="range"]::-ms-thumb {
    height: 36px;
    width: 16px;
    background: var(--cruise-form-button-color);
    border: 2px solid var(--cruise-form-light-blue);
    border-radius: 3px;
    cursor: pointer;
    margin-top: 0px;
  }
  .form-group .range-value {
    text-align: center;
    font-size: 16px;
    margin-top: 5px;
    display: inline;
  }
  .form-group.form-group-inline {
    display:flex;
    flex-flow:row nowrap;
    align-items:left;
    align-content:space-around;
    flex-basis:content;
  }
  .form-group.form-group-inline > button {
    flex:.2;
    margin-left:1rem;
  }
  .form-group.form-group-inline .form-group-inline-item {
    display:flex;
    align-items:baseline;
    flex:1;
  }
  .form-group.form-group-inline .form-group-inline-item.inline-item-with-helper {
    display:flex;
    flex-flow:column nowrap;
    align-self:stretch;
  }
  .form-group.form-group-inline .form-group-inline-item.inline-item-with-helper > div {
    display:flex;
    align-self:stretch;
    align-items: center;
  }
  .form-group.form-group-inline .form-group-inline-item.inline-item-with-helper span {
    flex:0;
    font-size:.7rem;
    color: var(--cruise-form-label-color);
    align-self:flex-end;
  }
  .form-group.form-group-inline .form-group-inline-item label {
    flex:.25;
    text-align: center;
    padding: 0;
    margin: 0;
  }
  .form-group.form-group-inline .form-group-inline-item input {
    flex:.7;
    text-align:left;
    margin:0;
  }
  div.dateSelector {
    display:flex;
    flex-flow:row nowrap;
    align-items:center;
    align-content:space-around;
  }
  div.dateSelector > .inputItem {
    flex:0;
    display:flex;
    flex-flow:column nowrap;
    align-items:center;
    align-content:space-around;
    margin:1rem;
  }
  div.flexible-row-nowrap > .inputItem.range-fix { flex:1; }
  div.dateSelector > .inputItem > label {
    margin:0;
    flex:0;
    display:inline-block;
    text-align:center;
  }
  div.inputItem {
    display: flex;
    flex-flow: column nowrap;
    align-items: center;
    align-self: center;
  }
  div.inputItem > label {
    display:inline;
    flex:0;
    padding:0;
    margin:0 1rem 0 0;
    text-align:left;
  }
  div#cruiseReservationFormResponse {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: calc(100% - 2rem);
    height: 3rem;
    text-align: center;
    line-height: 3rem;
    color: #fff;
    border-radius: 3px;
  }
  div#cruiseReservationFormResponse.success {
    display:block;
    background: rgba(13, 199, 13, 0.60);
    box-shadow: 0px 0px 4px 2px rgb(1, 70, 1);
  }
  div#cruiseReservationFormResponse.failure {
    display:block;
    background: rgba(211, 8, 8, 0.60);
    box-shadow: 0px 0px 4px 2px rgb(94, 2, 2);
  }
  /* END of Cool Form CSS Here */

  /* Plus and Minus Horizontal Number Selector */
  .plusminus {
    display: inline-block;
    position: relative;
    font-size: 0;
    overflow: hidden;
    border-radius: 5px;
    width: 44px;
    height: 132px;
  }
  .plusminus button {
    display: block;
    width: 44px;
    height: 44px;
    position: absolute;
    margin: 0;
    padding: 0;
    border: 0;
    background: var(--cruise-form-dark-blue);
    color: var(--cruise-form-button-color);
    font-size: 30.8px;
    line-height: 1;
    font-family: bonds, sans-serif;
    cursor: pointer;
    -moz-transition: color 200ms;
    -o-transition: color 200ms;
    -webkit-transition: color 200ms;
    transition: color 200ms;
  }
  .plusminus button:focus {
    outline: none;
    color: var(--cruise-form-button-color);
  }
  .plusminus button:disabled {
    background: var(--cruise-form-disabled-button);
    color: var( --cruise-form-disabled-button-text);
    cursor: not-allowed;
    pointer-events: none;
  }
  .plusminus button:first-child {
    bottom: 0;
    border-top-right-radius:0;
    border-bottom-right-radius:0;
  }
  .plusminus button:first-child:before {
    vertical-align: text-top;
    content: "-";
  }
  .plusminus button:last-child {
    top: 0;
    border-top-left-radius:0;
    border-bottom-left-radius:0;
  }
  .plusminus button:last-child:before {
    vertical-align: text-top;
    content: "+";
  }
  .plusminus button:last-child:focus {
    color: var(--cruise-form-button-color);
  }
  .plusminus input {
    position: absolute;
    width: 44px;
    height: 44px;
    top: 44px;
    margin: 0;
    padding: 0 0 16.92308px;
    border: 0;
    font-size: 17.6px;
    font-weight: bold;
    text-align: center;
    -moz-appearance: textfield;
  }
  .plusminus input::-webkit-outer-spin-button, .plusminus input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
  }
  .plusminus:after {
    content: "";
    position: absolute;
    font-size: 9.68px;
    left: 0;
    right: 0;
    line-height: 1;
    padding: 3.52px 0 3.52px 0;
    width: 44px;
    margin: 0 auto;
    border-top: 1px solid #ccc;
    color: #888;
    text-align: center;
    bottom: 34%;
  }
  /* 
  .plusminus.selectedMonth:after {
    content: "ΜΗΝΑΣ"; 
  }
  .plusminus.selectedYear:after {
    content: "ΕΤΟΣ";
  }
  */
  .plusminus.horiz {
    width: 132px;
    height: 44px;
  }
  .plusminus.horiz button:first-child {
    left: 0;
  }
  .plusminus.horiz button:last-child {
    right: 0;
  }
  .plusminus.horiz:after {
    bottom: 0;
  }
  .plusminus.horiz input {
    position: absolute;
    top: 0;
    left: 44px;
  }
  .plusminus.stacked {
    width: 88px;
    height: 88px;
    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px;
  }
  .plusminus.stacked:after {
    width: 100%;
    bottom: 50%;
  }
  .plusminus.stacked button {
    float: none;
    top: auto;
    bottom: 0;
  }
  .plusminus.stacked button:first-child {
    left: 0;
  }
  .plusminus.stacked button:last-child {
    right: 0;
  }
  .plusminus.stacked input {
    top: 0;
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
    border: 1px solid var(--cruise-form-button-color);
    width: 100%;
  }
  .plusminus.stacked input:after {
    width: 100%;
  }
  /*  Mobile CSS Here */
  @media (max-width: 600px) {
    section.form-step h4 { font-weight:bold; text-align:center; margin:.5rem auto; }
    .form-group label { font-size:.8rem; }
    .form-group input,
    .form-group select,
    .form-group textarea,
    .form-group button { font-size:.8rem; padding:.4rem; }
    div.flexible-row-nowrap { flex-flow: column nowrap; }
    div.flexible-row-nowrap > .inputItem.range-fix { flex:1; width:100%; }
    div.dateSelector > .inputItem { flex:0; margin:.5rem auto; }
    div.form-group.form-group-inline { flex-flow: column nowrap; }
    div.form-group.form-group-inline .form-group-inline-item { flex-flow: column nowrap; }
    div.form-group.form-group-inline .form-group-inline-item.inline-item-with-helper,
    div.form-group.form-group-inline .form-group-inline-item.inline-item-with-helper > div { flex-flow: column nowrap; align-items:flex-start; }
    div.form-group.form-group-inline > button { margin-left:0; }
    fieldset { margin-left:-1.4rem; padding:0; }
  }