/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 1.0.1
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/*
    Add your custom styles here
*/
.e-page-transition--entering {
  pointer-events: none;
}
main.site-main {
  overflow-x: hidden;
}
/* HEADER START */
#header-section.scrolled {
  background-color: var(--e-global-color-secondary);
}
#header-section #header-logo {
  transition: all 0.8s ease-in-out;
}
#header-section.scrolled #header-logo {
  max-width: 150px !important;
}
/* HEADER END */

/* CUSTOM FIELDS START */
.elementor-field-type-radio .elementor-field-subgroup,
.elementor-field-type-checkbox .elementor-field-subgroup {
  gap: 15px;
}
.elementor-field-type-checkbox .elementor-field-option {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  cursor: pointer;
}
.elementor-field-type-checkbox .elementor-field-option input {
  opacity: 0;
  width: 25px;
  height: 25px;
}
.elementor-field-type-checkbox .elementor-field-option .checkmark {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  width: 25px;
  height: 25px;
  background-color: #eee;
  pointer-events: none;
}

.elementor-field-type-checkbox
  .elementor-field-option:hover
  input
  ~ .checkmark {
  background-color: #ccc;
}

.elementor-field-type-checkbox
  .elementor-field-option
  input:checked
  ~ .checkmark {
  background-color: #ddd;
}
.elementor-field-type-checkbox .elementor-field-option .checkmark:after {
  content: "";
  position: absolute;
  display: none;
}

.elementor-field-type-checkbox
  .elementor-field-option
  input:checked
  ~ .checkmark:after {
  display: block;
}

.elementor-field-type-checkbox .elementor-field-option .checkmark:after {
  left: 9px;
  top: 4px;
  width: 7px;
  height: 14px;
  border: solid var(--e-global-color-accent);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

/* The container */
.elementor-field-type-radio .elementor-field-option {
  position: relative;
  cursor: pointer;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
}
.elementor-field-type-radio .elementor-field-option label {
  cursor: pointer;
}

/* Hide the browser's default radio button */
.elementor-field-type-radio .elementor-field-option input {
  opacity: 0;
  height: 20px;
  width: 20px;
  cursor: pointer;
}

/* Create a custom radio button */
.elementor-field-type-radio .elementor-field-option .radio {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  height: 20px;
  width: 20px;
  background-color: #eee;
  border-radius: 50%;
  pointer-events: none;
}

/* On mouse-over, add a grey background color */
.elementor-field-type-radio .elementor-field-option:hover input ~ .radio {
  background-color: #ccc;
}

/* When the radio button is checked, add a blue background */
.elementor-field-type-radio .elementor-field-option input:checked ~ .radio {
  background-color: #ddd;
}

/* Create the indicator (the dot/circle - hidden when not checked) */
.elementor-field-type-radio .elementor-field-option .radio:after {
  content: "";
  position: absolute;
  display: none;
}

/* Show the indicator (dot/circle) when checked */
.elementor-field-type-radio
  .elementor-field-option
  input:checked
  ~ .radio:after {
  display: block;
}

/* Style the indicator (dot/circle) */
.elementor-field-type-radio .elementor-field-option .radio:after {
  top: 6px;
  left: 6px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--e-global-color-accent);
}
/* CUSTOM FIELDS END */

/* BOOKING PAGE START */

input[type="date"]:before {
  color: rgba(255, 255, 255, 1);
  content: attr(placeholder);
}

input[type="date"].set:before {
  content: unset;
}

input[type="date"].full:before {
  color: white;
  content: "" !important;
}

form[name="Booking Form"] .elementor-message-success {
  text-align: center;
}
.elementor-message-danger:not(.elementor-help-inline) {
  text-align: center;
}
.elementor-message-danger::before {
  color: white;
}
.elementor-field-group-accommodation_address {
  margin-top: 20px !important;
  margin-bottom: 15px !important;
}

.booking-form {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
  position: relative;
}
.booking-form h1,
.booking-form h2,
.booking-form h3,
.booking-form h4,
.booking-form h5,
.booking-form h6 {
  font-family: "Lato", sans-serif;
  color: white;
}
.booking-form .booking-form-steps {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
}
.booking-form .booking-form-step {
  display: none;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
  transform: translateX(100%);
  opacity: 0;
  transition: all 0.3s ease-in-out;
  position: absolute;
  pointer-events: none;
}
.booking-form .booking-form-step.disabled {
  transform: translateX(-100%);
  opacity: 0;
  pointer-events: none;
  position: absolute;
}
.booking-form .booking-form-step.active {
  transform: translateX(0%);
  opacity: 1;
  position: relative;
  pointer-events: initial !important;
}
.booking-form .booking-form-step-buttons {
  width: 100%;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
  margin-top: 25px;
}
.booking-form .booking-form-step-buttons .booking-form-step-button {
  padding: 15px;
  border-radius: 5px;
  border: 1px solid white;
  background-color: white;
  transition: all 0.3s ease-in-out;
  color: var(--e-global-color-secondary);
  line-height: 1;
  cursor: pointer;
}
.booking-form .booking-form-step-buttons .booking-form-step-button.disabled {
  pointer-events: none;
  opacity: 0;
}
.booking-form .booking-form-step input,
.booking-form .booking-form-step select {
  width: 100%;
  border-left: 0px !important;
  border-right: 0px !important;
  border-top: 0px !important;
  border-bottom: 1px solid var(--e-global-color-secondary) !important;
  border-radius: 0px !important;
  background-color: transparent !important;
  color: white !important;
  margin-bottom: 5px;
  font-family: "Lato", sans-serif;
}
.booking-form .booking-form-step select option {
  color: var(--e-global-color-secondary) !important;
}
.booking-form .booking-form-step select option:disabled {
  color: #23232361 !important;
}
.booking-form .booking-form-step input::placeholder {
  color: white !important;
  opacity: 1 !important;
}
.booking-form .booking-form-step input:active,
.booking-form .booking-form-step input:focus,
.booking-form .booking-form-step input:focus-visible {
  outline: unset !important;
  box-shadow: unset !important;
}
.booking-form .registration-details-person {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
  margin-bottom: 30px;
}
.booking-form .registration-details-person-inputs {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
}
.booking-form .dive-details-person {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
  margin-top: 20px;
}
.booking-form .emergency-contact {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
  margin-top: 20px;
}
.booking-form .certified-diver-wrapper {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
  margin-top: 20px;
}
.booking-form .dive-training {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
  margin-top: 20px;
}
.booking-form .certified-diver-yes {
  display: none;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
  margin-top: 20px;
}
.booking-form .certified-diver-no {
  display: none;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
  margin-top: 20px;
}

.booking-form .refresher-course-warning {
  font-size: 20px;
  font-family: "Lato", sans-serif;
  color: WHITE;
  font-style: italic;
}
.booking-form .diver-registration {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
  margin-top: 20px;
}
.booking-form canvas {
  width: 100%;
  max-width: 400px;
  border: 1px solid #333;
}
.dive-popup-wrapper {
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 800;
  top: 0px;
  left: 0px;
  right: 0px;
  bottom: 0px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  opacity: 0;
  transition: all 0.3s ease-in-out;
  background: rgb(51 51 51 / 40%);
}
.dive-popup-wrapper.visible {
  pointer-events: initial;
  opacity: 1;
}
.dive-popup-wrapper .dive-popup-inner {
  width: 80%;
  height: 80%;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  overflow: auto;
  background: white;
  gap: 20px;
  padding: 20px;
}
.dive-popup-wrapper .dive-popup-inner h4 {
  color: #333;
}
.dive-popup-wrapper .dive-popup-inner .dive-popup-doc {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.dive-popup-wrapper .dive-popup-inner .dive-popup-buttons {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}
.dive-popup-wrapper .dive-popup-inner .dive-popup-buttons .booking-form-cta {
  font-family: var(--e-global-typography-accent-font-family), Sans-serif;
  font-weight: var(--e-global-typography-accent-font-weight);
  background-color: var(--e-global-color-accent);
  color: white;
  font-size: 15px;
  padding: 12px 24px;
  transition: all 0.3s ease-in-out;
  border-radius: 3px;
  border: 1px solid var(--e-global-color-accent);
  cursor: pointer;
}
.dive-popup-wrapper
  .dive-popup-inner
  .dive-popup-buttons
  .booking-form-cta:hover {
  background-color: white;
  color: var(--e-global-color-accent);
}
/* BOOKING PAGE END */
