:root {
  --sk-color: #00293A;
}
h1 {
  font-size: 2em;
}
section {
  height: auto;
  margin-top: 0;
  margin-bottom: 2em;
}
.pulz-header {
  padding-bottom: 1em;
  margin-bottom: 1em;
  position: relative;
}
.pulz-header::after {
  content: '';
  display: block;
  position: absolute;
  width: calc(100% + 3em);
  left: -3em;
  top: calc(100% - 3.5em);
  height: 7em;
  background-image: url("../img/pulz4.svg");
  background-size: 1215px;
  background-repeat: no-repeat;
  z-index: 1;
}
@media (max-width: 768px) {
  .pulz-header::after {
    background-image: none;
    height: .225em;
    width: 100%;
    background-color: #009de2;
    top: 100%;
    left: 0;
  }
}
form.reservanto-confirm, .reservanto-cancel-confirm {
  text-align: center;
}
.reservanto-cancel-confirm .links {
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  gap: 2em;
  padding-top: 1em;
}
p.last-place {
  color: #a3a3a3;
  font-weight: 600;
  font-size: .95em;
}
/* ================ Dialog ============================== */
.reservanto-dialog .container {
  width: auto;
}
.ui-widget-overlay {
  opacity: .8;
  background-color: #00293A;
}
.ui-dialog.reservanto-dialog {
  padding: .5em;
  border: .0625em solid #a3a3a3;
  box-shadow: .2em .25em .25em 0 rgba(0, 0, 0, 0.25);
  border-top-right-radius: 0;
  font-family: inherit;
  max-width: 100%;
}
.reservanto-dialog .ui-dialog-titlebar {
  width: 6em;
  height: 1.75em;
  border-radius: 0;
  background-color: white;
  position: absolute;
  right: -.125em;
  top: -1.8125em;
  border: .0625em solid #a3a3a3;
  border-bottom-width: 0;
  visibility: hidden;
}
.reservanto-dialog .ui-dialog-title {
  display: none;
}
.reservanto-dialog .ui-dialog-titlebar-close {
  background-color: transparent;
  position: absolute;
  left: 0;
  top: 0;
  margin: 0;
  padding: 0;
  border: none;
  background-image: url("../img/x_close.svg");
  background-repeat: no-repeat;
  background-position-x: 1em;
  background-position-y: center;
  background-size: 1em;
  display: block;
  width: 100%;
  height: 100%;
  font-weight: 400;
  color: #a3a3a3;
  font-family: inherit;
}
.reservanto-dialog .ui-dialog-titlebar-close::before {
  content: 'zavřít';
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  text-align: center;
  padding-right: .5em;
  padding-left: 2.4em;
  font-weight: bold;
}
.reservanto-dialog .ui-dialog-titlebar-close:lang(en)::before {
  content: 'close';
}
.reservanto-dialog .ui-dialog-titlebar-close:lang(sk)::before {
  content: 'zavrieť';
}
.reservanto-dialog .ui-widget-content p {
  margin-bottom: .5em;
}
.reservanto-dialog .ui-widget-content h1 {
  margin-bottom: .25em;
  font-style: italic;
  font-size: 1.25em;
}
.reservanto-dialog .ui-dialog-buttonpane {
  border: none;
  padding-top: 0;
  margin: 0;
}
.ui-dialog.reservanto-dialog .ui-dialog-buttonset {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .5em;
  float: none;
}
.ui-dialog.reservanto-dialog .ui-dialog-buttonpane .button--primary,
.reservanto-cancel-confirm .links .button--primary {
  outline: none;
  background-color: #009FE3;
  color: white;
  border-radius: 0;
  text-decoration: none;
  font-weight: 600;
  font-family: inherit;
  padding: .5em 1.125em;
  border: none;
  appearance: none;
}
.ui-dialog.reservanto-dialog .ui-dialog-buttonpane .dialog-cancel,
.reservanto-cancel-confirm .links .dialog-cancel {
  appearance: none;
  border: none;
  background-color: transparent;
  color: #009fe3;
  text-decoration: underline;
  font-family: inherit;
  font-weight: 600;
  outline: none;
}

/* ================ Bookings ============================ */
header.payment h1 {
  margin-bottom: 0;
  position: relative;
  z-index: 3;
}
section.info {
  position: relative;
  z-index: 2;
  padding-bottom: 1.5em;
  margin-bottom: 1.5em;
  border-bottom: 0.15em solid #a3a3a3;
}
.booking-info {
  margin-bottom: 0;
}
.booking-info dd {
  border-bottom: 0.0625em solid #a3a3a3;
  padding: .5em 0;
  margin-bottom: .5em;
}
.booking-info dd:last-child {
  border-bottom: none;
}
.booking-info .price {
  display: inline-block;
}
.booking-info .price::after {
  content: ':';
  display: inline;
  margin-right: 2em;
}
.booking-info .price + dd {
  display: inline-block;
}
.booking-info .week-price {
  margin-left: 2em;
}
section.payment {
  button[type="submit"] {
    background-color: #009FE3;
    color: white;
    padding: .5em 2em;
    border-radius: 0;
    transition: background-color .2s ease-in;
    text-transform: uppercase;
  }
  button[type="submit"]:hover {
    background-color: #204d74;
  }
}
section.bookings .location {
  float: right;
  font-weight: 500;
  font-size: 1.2em;
  color: black;
  margin-bottom: 1em;
  position: relative;
  z-index: 2;
}
section.bookings .location > span {
  display: block;
}
section.bookings .pass h2 {
  margin-bottom: .2em;
  font-size: 1.625em;
}
section.bookings .pass .validity {
  font-size: .9em;
  color: black;
}
section.bookings .empty {
  font-size: 1.2em;
}
section.bookings .pobocka-link {
  display: inline-block;
  color: white;
  background-color: #009FE3;
  padding: .5em 1em;
  border-radius: 0;
  transition: background-color .2s ease-in;
}
section.bookings .pobocka-link:hover,
section.bookings .pobocka-link:active,
section.bookings .pobocka-link:focus {
  background-color: #204d74;
}
.list-title {
  margin-top: 2em;
}
ol.booking-list {
  list-style: none;
  padding-left: 0;
  clear: both;
}
ol.booking-list > li {
  border-top: .0625em solid #a3a3a3;
  padding: 1em 0;
  color: black;
  display: grid;
  grid-template-columns: minmax(7em, 16em) minmax(5em, 1fr) 10em;
  align-items: center;
  gap: 1.5em;
}
ol.booking-list .booking-location {
  grid-row-start: 2;
}
ol.booking-list > li a {
  white-space: nowrap;
  background-color: #009FE3;
  color: white;
  padding: .25em 1em;
}
ol.booking-list > li a.cancel-booking {
  background-color: transparent;
  color: #E14E31;
  font-weight: bold;
  text-decoration: underline;
}
.reservanto-create-booking-form {
  display: grid;
  grid-template-columns: minmax(8em, 1fr) 10em;
  justify-items: left;
  align-items: center;
  gap: 1em;
}
.reservanto-create-booking-form > .form-item {
  margin-bottom: 0;
}
.reservanto-create-booking-form > .form-actions,
.reservanto-create-booking-form > .form-submit {
  justify-self: right;
}
.reservanto-create-booking-form .form-submit {
  margin: 0;
}
.form-item-voucher-link {
  grid-column-end: span 2;
}
.voucher-link {
  text-decoration: underline;
  cursor: pointer;
}
.form-item-voucher {
  display: none;
}
button[name="voucher_submit"] {
  display: none;
}
/* ===================== Login ===================== */
.reservanto-form {
  padding-bottom: 3em;
}
.reservanto-form button[type="submit"] {
  font-size: 1.2em;
  padding: .5em 1em;
  background-color: #009FE3;
  color: white;
  border-radius: .1em;
  border: none;
  text-transform: uppercase;
  transition: background-color .2s ease-in;
}
.reservanto-form button[type="submit"]:hover,
.reservanto-form button[type="submit"]:active,
.reservanto-form button[type="submit"]:focus {
  background-color: #204d74;
}
.log-header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1em;
  margin-bottom: 2em;
}
.log-header h1 {
  font-size: 1.8em;
  margin: 0;
  padding: .35em .125em;
  border-bottom: .0785em solid #0c84e4;
}
.log-header a {
  font-size: 1.8em;
  display: flex;
  align-items: center;
  text-align: center;
  background-color: #00293A;
  color: white;
  justify-content: center;
  padding: .35em .125em;
}
.reservanto-edit-profile-form .form-type-tel label {
  display: block;
  margin-bottom: 5px;
}
/* ===================== Booking calendar ===================== */
header.times {
  display: grid;
  grid-template-columns: 1fr minmax(8em, 15em);
  column-gap: 1.5em;
}
header.times > h1 {
  grid-column-end: span 2;
}
header.times > p {
  grid-column-end: span 2;
  margin-bottom: .75em;
  margin-top: -.75em;
}
header.times > .info {
  display: flex;
  flex-direction: column;
  column-gap: 1.5em;
  row-gap: .2em;
  margin: 0;
  z-index: 2;
  position: relative;
}
header.times > .info > dt {
  font-weight: normal;
  color: #7B7B7B;
  grid-row-start: 1;
}
header.times > .info > dt:not(.empty)::after {
  content: ':';
}
header.times > .info > dd {
  font-weight: 500;
  font-size: 1.1em;
  grid-row-start: 2;
}
header.times form {
  text-align: right;
  position: relative;
  z-index: 2;
}
header.times form [type="submit"] {
  background-color: #009FE3;
  border-radius: 0;
  padding: .5em 1em;
  transition: background-color .2s ease-in;
}
header.times form [type="submit"]:hover {
  background-color: #204d74;
}
header.times form .js-form-submit {
  visibility: hidden;
}
.reservanto-calendar {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  padding-bottom: 3em;
  text-align: center;
}
.reservanto-calendar::after, .reservanto-calendar::before {
  display: none;
}
.reservanto-calendar > .calendar-column {
  flex-grow: 1;
  flex-basis: 4em;
}
.reservanto-calendar > .calendar-column.empty {
  flex-grow: 0.2;
}
.reservanto-calendar > .calendar-column > h2 {
  margin-bottom: 0;
  font-size: 1em;
  padding: 1em.25em;
  height: 4.3rem;
}
.reservanto-calendar .day {
  list-style: none;
  margin: 0;
  padding: 0;
}
.reservanto-calendar .day > li {
  height: 3em;
  background-color: #edfaff;
  width: 100%;
  border-left: .0625em solid #a3a3a3;
  border-top: .0625em solid #a3a3a3;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.reservanto-calendar .day > li.current time {
  pointer-events: none;
  cursor: not-allowed;
  background-color: #B3E8FF;
  color: black;
}
.reservanto-calendar .day > li.current .unavailable {
  background-image: none;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: underline;
  font-weight: bold;
  position: relative;
}
.reservanto-calendar .day > li.current .unavailable::after {
  position: absolute;
  content: '';
  width: 1em;
  height: 1em;
  background-image: url("../img/icon-obszn.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  right: .4em;
  top: .4em;
}
.reservanto-calendar > .calendar-column .day > li:last-child {
  border-bottom: .0625em solid #a3a3a3;
}
.reservanto-calendar > .calendar-column:first-child .day > li {
  border-left: none;
}
.reservanto-calendar .day time {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: white;
  color: #00293a;
  font-weight: 600;
  cursor: pointer;
  transition: all .2s ease-in;
}
.reservanto-calendar .day time:hover,
.reservanto-calendar .day time.active {
  background-color: #00293A;
  color: white;
}
.reservanto-calendar .day .last {
  position: absolute;
  right: .5em;
  bottom: 0;
  font-size: .8em;
  font-weight: 500;
  transition: color .2s ease-in;
}
.reservanto-calendar .day time:hover + .last,
.reservanto-calendar .day time.active + .last {
  color: white;
}
.reservanto-calendar .day .unavailable {
  cursor: not-allowed;
  display: block;
  width: 100%;
  height: 100%;
  background-image: url("../img/icon-obszn.svg");
  background-size: 1.2em;
  background-repeat: no-repeat;
  background-position: center;
}
.reservanto-calendar > .calendar-column.empty .day > li {
  border-top: none;
}
.reservanto-calendar > .calendar-column.empty .day > li:first-child {
  border-top: .0625em solid #a3a3a3;
}

@media (max-width: 1200px) {
  .reservanto-form {
    padding-left: 2%;
    padding-right: 2%;
  }
}
@media (max-width: 768px) {
  header.times > .info {
    grid-column-end: span 2;
    padding-bottom: 1em;
  }
  header.times > form {
    grid-column-end: span 2;
    text-align: center;
  }
  header.times > form [type="submit"] {
    margin: 0;
  }
  .reservanto-calendar > .calendar-column {
    font-size: .9em;
  }
  .reservanto-calendar > .calendar-column.empty {
    flex-basis: 2em;
    flex-grow: 0;
  }
  .reservanto-calendar > .calendar-column.empty > h2 {
    font-size: .1em;
    visibility: hidden;
  }
  .reservanto-calendar .day .last {
    font-weight: 600;
    display: inline-block;
    height: 2em;
  }
  .log-header {
    font-size: .8em;
  }
}
@media (max-width: 480px) {
  .reservanto-calendar > .calendar-column {
    font-size: .8em;
  }
  .reservanto-calendar > .calendar-column.empty {
    flex-basis: 1em;
  }
  ol.booking-list > li {
    font-size: .9em;
  }
}
