*,
*::after,
*::before {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  --font-accent: Raleway, sans-serif;

  --clr-accent: rgb(47, 137, 247);
  --clr-accent-low-opac: rgba(47, 137, 247, 0.4);
  --clr-accent-med-opac: rgba(47, 137, 247, 0.6);
  --clr-dark-blue: rgb(16, 46, 82);
  --clr-dark-blue-low-opac: rgba(16, 46, 82, 0.5);
  --clr-light-blue: rgb(43, 108, 163);
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
}

body {
  font-family: Montserrat, sans-serif;
}

/* DISCLAIMER MODAL STYLES */

.disclaimer-dialog::backdrop {
  background: rgba(0, 0, 0, 0.7);
}

.disclaimer-dialog {
  background: rgb(243, 193, 243);
  border-radius: 10px;
  margin: auto;
  border: 5px solid rgb(112, 0, 112);
  position: relative;
}

.disclaimer-dialog img {
  width: 60px;
  position: absolute;
}

.modal-decoration-1 {
  top: 10px;
  right: 10px;
}
.modal-decoration-2 {
  bottom: 15px;
  left: 20px;
  rotate: 215deg;
  width: 75px;
}

.disclaimer {
  color: rgb(112, 0, 112);
  display: grid;
  font-size: 1.5rem;
  gap: 1em;
  line-height: 1.3;
  padding: 2.5em;
  text-align: center;
  width: 40ch;
}

.btn-ok {
  background: rgb(112, 0, 112);
  outline: none;
  color: rgb(243, 193, 243);
  display: block;
  font: inherit;
  margin-inline: auto;
  padding-block: 0.25em;
  width: 60%;
}
/* END DISCLAIMER */

.text-align-center {
  text-align: center;
}
.text-align-end {
  text-align: end;
}
.bold {
  font-weight: 600;
}
.semi-bold {
  font-weight: 500;
}
.accent-font {
  font-family: var(--font-accent);
}
.letter-space {
  letter-spacing: 3px;
}

h1,
h2,
h3 {
  font-family: var(--font-accent);
  font-size: 2.75rem;
  letter-spacing: 4px;
  margin-bottom: 2rem;
}

/* HEADER SECTION START */

.header {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin: 0.75rem 0rem;
  padding-right: 5rem;
}

.header img {
  scale: 80%;
}

.header ul {
  display: flex;
  font-size: 0.85rem;
  font-weight: bold;
  gap: 2.5rem;
  list-style-type: none;
}

.header ul li {
  cursor: pointer;
  position: relative;
}

.header ul li:hover,
.header ul li:focus {
  color: var(--clr-light-blue);
}

.header ul li:hover .nav-dropdown,
.header ul li:focus-visible .nav-dropdown,
.footer-nav ul:first-child li:hover .nav-dropdown,
.footer-nav ul:first-child li:focus-visible .nav-dropdown {
  display: block;
}

.nav-dropdown {
  background: #fff;
  border-radius: 0px 0px 10px 10px;
  display: none;
  padding: 1.5em 1.25em 0.75em 1.25em;
  position: absolute;
  text-wrap: nowrap;
  width: min-content;
  z-index: 999;
}

.nav-dropdown ul {
  display: block;
  font-size: 0.75em;
  text-align: center;
}

.nav-dropdown ul li:hover,
.nav-dropdown ul li:focus {
  color: var(--clr-dark-blue);
}

.nav-dropdown ul li:not(:last-child, .footer-nav li) {
  margin-bottom: 0.75em;
}

.header ul li:nth-child(1) .nav-dropdown,
.footer-nav ul:first-child li:nth-child(1) .nav-dropdown {
  transform: translateX(-40%);
}
.header ul li:nth-child(2) .nav-dropdown,
.footer-nav ul:first-child li:nth-child(2) .nav-dropdown {
  transform: translateX(-20%);
}
.header ul li:nth-child(3) .nav-dropdown,
.footer-nav ul:first-child li:nth-child(3) .nav-dropdown {
  transform: translateX(-30%);
}
.header ul li:nth-child(4) .nav-dropdown,
.footer-nav ul:first-child li:nth-child(4) .nav-dropdown {
  transform: translateX(-30%);
}

/* HEADER SECTION END */

/* HERO SECTION */

.heroimg {
  min-height: 500px;
  position: relative;
}
.heroimg::after {
  background: url("./assets/cockpit.jpg") no-repeat;
  background-position: 20%;
  background-size: 105%;
  content: "";
  filter: brightness(40%);
  height: 100%;
  position: absolute;
  width: 100%;
  z-index: -2;
}

@supports (animation-timeline: scroll()) {
  .heroimg::after {
    animation: bg-motion linear forwards;
    animation-timeline: scroll();
  }
  /* the below code blocks are to prevent the */
  /* modals from fading in in firefox to match */
  /* the backdrop that I couldn't get to fade in */
  .tours-gallery-modal[open] {
    animation: modal-fade-in 0.5s ease-out;
  }
  .srv-modal-wrapper[open] {
    animation: modal-fade-in 0.5s ease-out;
  }
  .contact-modal-wrapper[open] {
    animation: modal-fade-in 0.5s ease-out;
  }
}

@keyframes bg-motion {
  to {
    transform: translateY(125%);
  }
}

.hero-content {
  color: white;
  left: 50%;
  position: absolute;
  text-align: center;
  top: 45%;
  transform: translateX(-50%);
  z-index: 5;
}

/* END HERO SECTION */

/* QUICK LINKS SECTION */

.quick-links {
  background: #fff;
  display: flex;
  font-family: var(--font-accent);
  padding-block: 4em;
}

.quick-links h2 {
  font-size: 2.5rem;
  font-style: italic;
  font-weight: 500;
  margin-bottom: 0;
}

.quick-content {
  align-items: center;
  display: flex;
  justify-content: space-around;
  margin-inline: auto;
  width: 50%;
}

.quick {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr min-content 1fr;
  list-style-type: none;
  text-align: center;
  text-wrap: nowrap;
  width: 60%;
}

.quick li {
  border-bottom: 3px solid transparent;
  cursor: pointer;
  transition: border-bottom 150ms ease;
}

.quick li:hover {
  border-bottom: 3px solid var(--clr-dark-blue);
}

/* END QUICK LINKS SECTION */

/* INFO SECTION */

.info {
  background: rgb(211, 211, 211);
  padding-block: 5em;
}

.info-content-wrapper {
  display: flex;
  justify-content: space-around;
  margin-inline: auto;
  width: 70%;
}

.info ul {
  list-style-type: none;
}

.info-content {
  display: flex;
  justify-content: space-between;
}

.info-sub-head h3 {
  font-size: 1.5em;
  font-weight: 500;
  margin-bottom: 0.25em;
}

.info p {
  font-size: 0.75em;
}

.info-bottom {
  width: 40ch;
  margin-inline: auto;
}

.hours,
.prices {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 30%;
}

.info ul li {
  line-height: 1.6;
}

.prices h3 ~ p {
  margin-bottom: 1em;
}

#srv-modal-link {
  color: var(--clr-light-blue);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 6px;
}

/* END INFO SECTION */

/* SRV MODAL */

.srv-modal-wrapper {
  border: none;
  margin: auto;
  outline: none;
}

.srv-modal-wrapper[open]::backdrop {
  background-color: rgba(0, 0, 0, 0.6);
  animation: backdrop-fade-in 0.25s ease-out forwards;
}

.srv-modal {
  background: white;
  display: grid;
  grid-template-columns: 1fr 1fr;
  max-width: 775px;
}

.srv-modal-left-col {
  --fs-modal-left: 1.1em;
  background: black;
  color: white;
  display: flex;
  flex-direction: column;
  font-size: var(--fs-modal-left);
  gap: 1em;
  justify-content: space-around;
  line-height: 1.5;
  padding: 1.5em;
}

.srv-modal-left-col p:first-child span:not(.ride-price span) {
  color: rgb(47, 137, 247);
  font-size: calc(var(--fs-modal-left) * 2);
  font-weight: 700;
  line-height: 1;
}

.ride-price p:first-child {
  color: rgb(47, 137, 247);
  font-size: 1.5em;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 0.25em;
}

.ride-price span {
  font-size: 1.5em;
  vertical-align: middle;
}

.srv-modal-right-col {
  padding: 2em;
}

.srv-modal-right-col > p {
  font-size: var(--fs-modal-left);
  font-weight: 600;
  line-height: 1.5;
  margin-inline: auto;
  margin-top: 1.3em;
  text-align: center;
  width: 34ch;
}

.close-icon {
  cursor: pointer;
  opacity: 0.6;
  position: absolute;
  right: 10px;
  top: 10px;
}

/* END SRV MODAL */

/* DIRECTIONS SECTION */

.directions {
  color: white;
  position: relative;
}

.directions-content,
.weather-content {
  background: var(--clr-dark-blue-low-opac);
  inset: 0;
  place-content: center;
  position: absolute;
  right: 65%;
  text-align: center;
}

.weather-content {
  left: 65%;
  right: 0;
}

.directions img {
  display: block;
  width: 100%;
}

.directions a {
  font-size: 2.5em;
  font-weight: 600;
}

.directions a:hover {
  color: var(--clr-accent);
}

.weather p:first-child {
  font-size: 1.5em;
  font-weight: 600;
  margin-bottom: 0.5em;
}

.weather p:nth-child(2) {
  margin-bottom: 0.5em;
}

.icon-temp-wrapper {
  align-items: center;
  display: flex;
  gap: 1em;
  justify-content: center;
  margin-bottom: 0.5em;
}

.temp {
  font-size: 2.5em;
}

.weather p:last-child {
  margin-top: 0.5em;
}

.weather p:last-child a {
  font-size: xx-small;
  text-decoration: underline;
}

/* END DIRECTIONS SECTION */

/* TOURS SECTION */

.tours {
  display: grid;
  grid-template-columns: 55% 45%;
  padding: 5em 15em;
  place-items: center;
}

.tours-content h2 {
  font-size: 2em;
  font-weight: 500;
  margin-bottom: 0em;
}

.tours-content p {
  line-height: 1.5;
  margin: 0.75em auto;
  width: 37ch;
}

.tours-btn {
  background: var(--clr-dark-blue);
  border-radius: 100vw;
  border: none;
  color: white;
  cursor: pointer;
  font: inherit;
  padding: 0.6em 1.5em;
}

.tours-btn:hover {
  background: var(--clr-light-blue);
}

.tours-gallery-image-wrapper {
  cursor: pointer;
  position: relative;
}

.tours-gallery-image-wrapper:hover::before {
  color: var(--clr-accent);
  content: "Click for gallery";
  font-size: 2em;
  font-weight: bold;
  left: 50%;
  pointer-events: none;
  position: absolute;
  text-wrap: nowrap;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 5;
}

.tours-gallery-image-wrapper:hover::after {
  background: rgba(0, 0, 0, 0.6);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

/* END TOURS GALLERY */

/* The Modal */

.tours-gallery-modal {
  border: none;
  margin: auto;
  outline: none;
}

.tours-gallery-modal[open]::backdrop {
  background-color: rgba(0, 0, 0, 0.6);
  animation: backdrop-fade-in 0.5s ease-out forwards;
}

[data-active="true"] {
  filter: brightness(1.25) opacity(0.35);
}

.gallery-left-arr,
.gallery-right-arr {
  color: var(--clr-accent);
  cursor: pointer;
  font-size: 3.5rem;
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
}

.gallery-left-arr {
  left: 0.5em;
}

.gallery-right-arr {
  right: 0.5em;
}

.tours-gallery-modal-thumbs-wrapper {
  bottom: 0.5em;
  display: flex;
  justify-content: space-between;
  left: 50%;
  padding-inline: 1em;
  position: fixed;
  transform: translateX(-50%);
}

.tours-gallery-modal-thumbs-wrapper::after {
  background: var(--clr-accent-med-opac);
  border-radius: 10px;
  content: "";
  inset: 0;
  position: absolute;
  z-index: -1;
}

.tours-gallery-modal-thumbs-wrapper img {
  cursor: pointer;
  scale: 0.8;
}

/* END MODAL */

/* THE IMAGE CAROUSEL */

.carousel {
  overflow-x: hidden;
}

.carousel-slider {
  display: flex;
  gap: 0.25em;
  width: 100%;
}

.move-carousel {
  animation: move-carousel 5s ease-in-out forwards;
}

@keyframes move-carousel {
  to {
    transform: translateX(calc(-33.33333333333333333333333333% + (-0.125em)));
  }
}

.carousel-slider img {
  height: 25vw;
}

/* END IMAGE CAROUSEL */

/* CTA SECTION */

.cta {
  background: var(--clr-dark-blue);
  padding: 2em;
}

.cta-wrapper {
  display: flex;
  margin-inline: auto;
  width: 60%;
}

.cta-logo {
  padding-right: 5em;
  width: 50%;
}

.cta-content {
  align-items: center;
  display: flex;
  flex-direction: column;
  padding-left: 3em;
  position: relative;
  width: 50%;
}

.cta-content::before {
  background: var(--clr-accent-low-opac);
  content: "";
  height: 100%;
  left: 10px;
  position: absolute;
  width: 2px;
}

.cta-content p {
  color: white;
  font-size: 0.75em;
  margin-bottom: 1em;
  text-align: center;
  width: 30ch;
}

.cta-input-wrapper input {
  background: lightgray;
  border: none;
  margin-right: 0.25em;
  padding: 0.5em;
  width: 30ch;
}

.cta-input-wrapper button {
  background: var(--clr-accent);
  border: none;
  border-radius: 5px;
  color: white;
  cursor: pointer;
  font: inherit;
  padding: 0.35em 1em;
}

.cta-btn:hover,
.cta-btn:focus {
  background: var(--clr-accent-low-opac);
}

/* END CTA SECTION */

/* FOOTER SECTION */

footer {
  background: var(--clr-dark-blue);
  border-top: 2px solid var(--clr-accent-low-opac);
  padding-top: 5em;
}

.footer-main {
  color: white;
  display: flex;
  font-family: Arial, Helvetica, sans-serif;
  justify-content: space-between;
  padding-bottom: 5em;
  margin-inline: auto;
  width: 75%;
}

.footer-main-directions {
  align-items: center;
  display: flex;
  gap: 5em;
}

.footer-main-directions .address button {
  background: var(--clr-accent);
  border: none;
  border-radius: 5px;
  color: white;
  cursor: pointer;
  font-size: 1em;
  margin-top: 1.5em;
  padding-block: 0.75em;
  width: 100%;
}

.footer-main-directions .address-btn:hover,
.footer-main-directions .address-btn:focus {
  background: var(--clr-accent-low-opac);
}

.footer-main p:not(:last-child),
.footer-main li:not(:last-child) {
  padding-bottom: 0.4em;
}

.footer-main-hours-prices {
  align-items: center;
  display: flex;
  gap: 5em;
}

.footer-main-hours-wrapper p:first-child {
  font-size: 1.5em;
  margin-bottom: 0.25em;
}

.footer-main-prices-content {
  display: flex;
  justify-content: space-between;
}

.footer-main-prices-wrapper h3 {
  font-size: 1.5em;
  margin-bottom: 0.75em;
}

.footer-main-prices-content ul {
  list-style-type: none;
}

#footer-main-srv-modal-link {
  color: var(--clr-accent);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 6px;
}

.footer-nav {
  background: var(--clr-accent);
}

.footer-nav nav {
  display: flex;
  font-size: 0.85rem;
  font-weight: bold;
  justify-content: space-between;
  margin-inline: auto;
  padding-block: 1.3em;
  width: 75%;
}

.footer-nav nav ul:not(.nav-dropdown ul) {
  align-items: center;
  color: white;
  display: flex;
  gap: 2.5em;
  list-style-type: none;
}

.footer-nav nav ul img:not(.contact-modal-wrapper img) {
  height: 32px;
}

.footer-nav nav ul:last-child li:first-child:not(.nav-dropdown li) {
  background: white;
  border-radius: 100vw;
  color: var(--clr-accent);
  padding: 0.6em 1em;
}

.footer-nav li {
  cursor: pointer;
  position: relative;
}

.footer-nav .nav-dropdown {
  background: linear-gradient(0deg, var(--clr-accent), white 14px);
  border-radius: 10px 10px 0px 0px;
  bottom: 15px;
  padding: 1em 1.25em 1em 1.25em;
}

.footer-nav .nav-dropdown ul li:not(:last-child) {
  margin-bottom: 1em;
}

.footer-nav nav ul .nav-dropdown ul {
  color: var(--clr-light-blue);
  list-style-type: none;
}

.footer-nav {
  padding-bottom: 1rem;
}

/* END FOOTER SECTION */

/* CONTACT MODAL */

.contact-modal-wrapper {
  border: none;
  margin: auto;
}

.contact-modal-wrapper[open]::backdrop {
  background-color: rgba(0, 0, 0, 0.6);
  animation: backdrop-fade-in 0.25s ease-out forwards;
}

.contact-modal {
  display: flex;
  min-width: 750px;
}

.contact-modal-content {
  flex-grow: 1;
  padding: 1.5em 3em;
}

.contact-modal-content > p {
  color: var(--clr-accent);
  font-size: 2em;
  font-weight: 600;
  letter-spacing: 3px;
  margin-bottom: 0.25em;
  text-align: center;
}

.contact-modal-contact-info p {
  font-weight: 500;
  letter-spacing: 1px;
  text-align: center;
}

.contact-modal-contact-info-top {
  display: flex;
  gap: 1em;
  justify-content: center;
}

.contact-modal-contact-info-top p:first-child {
  margin-bottom: 0.25em;
  position: relative;
}

.contact-modal-contact-info-top p:first-child::after {
  background: var(--clr-accent);
  content: "";
  height: 100%;
  right: -0.5em;
  position: absolute;
  width: 1px;
}

.contact-modal-form {
  padding-top: 0.75em;
}

.contact-modal-form textarea {
  resize: none;
}

.contact-modal-form input,
.contact-modal-form textarea,
.contact-modal-form button {
  display: block;
  width: 100%;
}

.contact-modal-form input {
  margin-bottom: 0.5em;
  padding: 0.25em;
}

.contact-modal-button {
  background: var(--clr-accent);
  border: none;
  color: white;
  cursor: pointer;
  font: inherit;
  letter-spacing: 1px;
  margin-top: 0.5em;
  padding-block: 0.7em;
}

.contact-close-icon {
  cursor: pointer;
  opacity: 0.7;
  position: absolute;
  right: 5px;
  top: 5px;
}
/* end contact modal styling */

/* modal fade in animation */

@keyframes modal-fade-in {
  0% {
    display: none;
    opacity: 0;
  }
  100% {
    display: block;
    opacity: 1;
  }
}

@keyframes backdrop-fade-in {
  0% {
    background-color: rgba(0, 0, 0, 0);
  }
  100% {
    background-color: rgba(0, 0, 0, 0.6);
  }
}

/* end modal fade in animation */

/* MY "SIGNATURE" */

h6 {
  color: white;
  font-weight: 400;
  letter-spacing: 1px;
  margin-top: 1em;
  text-align: center;
}
