/*****************
******************
Theme Name: Weiße Flotte
Author: fourplex
Author URI: https://fourplex.de/
Version: 1.0
******************
*****************/

/* GENERAL */
:root {
  --boxed: 1644px;
  --smallBoxed: 1366px;
  --smallestBoxed: 1000px;

  --text-sm: 14px;
  --text-base: 18px;
  --text-md: 20px;
  --text-lg: 30px;
  --text-xl: 40px;
  --text-2xl: 50px;
  --text-3xl: 60px;
  --text-4xl: 100px;
  --text-5xl: 150px;

  --text-primary: open-sans, sans-serif;
  --text-secondary: merriweather, serif;

  --color-dark-blue: #033c73;
  --color-light-blue: #2fa4e7;
  --color-lavender: #d8d2e1;
  --color-lavender-ghost: #f4f3f7;
  --color-bean: #141018;
  --color-white: #fff;
}

@media (width < 1900px) {
  :root {
    --boxed: 1400px;
    --smallBoxed: 1100px;
    --smallestBoxed: 900px;
  }
}

@media (width < 1500px) {
  :root {
    --boxed: 1300px;
    --smallBoxed: 1000px;
    --smallestBoxed: 900px;

    --text-sm: 14px;
    --text-base: 18px;
    --text-md: 20px;
    --text-lg: 27px;
    --text-xl: 32px;
    --text-2xl: 37px;
    --text-3xl: 37px;
    --text-4xl: 42px;
    --text-5xl: 100px;
  }
}

@media (width < 1024px) {
  :root {
    --boxed: 700px;
    --smallBoxed: 700px;
    --smallestBoxed: 700px;

    --text-sm: 14px;
    --text-base: 18px;
    --text-md: 20px;
    --text-lg: 25px;
    --text-xl: 25px;
    --text-2xl: 25px;
    --text-3xl: 35px;
    --text-4xl: 40px;
    --text-5xl: 40px;
  }
}

@media (width < 768px) {
  :root {
    --boxed: 600px;
    --smallBoxed: 600px;
    --smallestBoxed: 600px;

    --text-md: 18px;
  }
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
  font-family: var(--text-primary);
}

html {
  font-size: var(--text-base);
}

body.modal-open {
  overflow: hidden;
}

.container {
  padding: 1rem;

  &.boxed {
    max-width: var(--boxed);
    margin: 0 auto;

    &.small {
      max-width: var(--smallBoxed);
    }

    &.smallest {
      max-width: var(--smallestBoxed);
    }
  }
}

.offset-to-right {
  padding-left: calc((100vw - var(--boxed)) / 2);
}

.more-info {
  display: inline-block;
  width: max-content;

  & p {
    position: relative;
    width: max-content;

    &::after {
      content: "";
      position: absolute;
      bottom: -0.25rem;
      left: 0;
      display: block;
      height: 1px;
      width: 100%;
      background: var(--color-dark-blue);
    }
  }
}

/* COLORS */
.text-dark-blue {
  color: var(--color-dark-blue);
}
.text-light-blue {
  color: var(--color-light-blue);
}
.text-lavender {
  color: var(--color-lavender);
}
.text-bean {
  color: var(--color-bean);
}
.text-white {
  color: var(--color-white);
}

/* TYPOGRAPHY */
h1:not(#cruise-modal h1, #bookingKitContainer h1) {
  font-size: var(--text-4xl) !important;
  font-weight: bold !important;
  line-height: 1.35em !important;
}

h2:not(#cruise-modal h2, #bookingKitContainer h2),
p {
  line-height: 1.75em !important;
}

h2:not(#cruise-modal h2, #bookingKitContainer h2) {
  font-size: var(--text-3xl) !important;
  color: var(--color-dark-blue);
}

h3:not(#cruise-modal h3, #bookingKitContainer h3) {
  font-size: var(--text-xl) !important;
  /* font-weight: bold !important; */
}

h4:not(#cruise-modal h4, #bookingKitContainer h4) {
  font-size: var(--text-lg) !important;
}

h5:not(#cruise-modal h5, #bookingKitContainer h5) {
  font-size: var(--text-md) !important;
  font-weight: bold !important;
  color: var(--color-light-blue);
}

.text-sm {
  font-size: var(--text-sm) !important;
}
.text-md {
  font-size: var(--text-md) !important;
}
.text-lg {
  font-size: var(--text-lg) !important;
}
.text-xl {
  font-size: var(--text-xl) !important;
}
.text-2xl {
  font-size: var(--text-2xl) !important;
}
.text-3xl {
  font-size: var(--text-3xl) !important;
}
.text-4xl {
  font-size: var(--text-4xl) !important;
}
.text-5xl {
  font-size: var(--text-5xl) !important;
}

/* BOOKINGKIT WIDGET */
/* floating */

/* POLYLANG STUFF */
.lang-item {
  opacity: 0.4;

  &.current-lang {
    opacity: 1;
  }
}

/* ELEMENTS */
section {
  margin-bottom: 7rem;

  @media (width < 1024px) {
    margin-bottom: 3rem;
  }
}

button {
  padding: 0.5rem 3rem !important;
  border-radius: 100px;
  transition: all 0.35s ease;

  &:not(#menu-btn, .cruise-button) {
    border: 1px solid var(--color-lavender);
  }

  &.cruise-button {
    border: 1px solid var(--color-light-blue);
    background: var(--color-light-blue);
  }

  & p {
    letter-spacing: 0.1em;
    color: var(--color-lavender);
  }
}

.seperator {
  height: 4px;
  width: 110px;
  margin: 1.5rem 0;
  background: var(--color-light-blue);
}

/* GLOBAL SWIPER SETTINGS */
.swiper {
  & .swiper-wrapper {
    & .swiper-slide {
      & article {
        & .content-text {
          line-height: 1.75em;
        }
      }
    }
  }

  & .swiper-pagination-bullet {
    height: 10px !important;
    width: 10px !important;
    margin: 0 calc(var(--text-md) / 2);
    background: var(--color-dark-blue) !important;
  }
}

/* HEADER NAV */
header {
  font-size: var(--text-md);
  font-weight: bold;

  & nav {
    & #menu-btn {
      anchor-name: --menu-button;
      background-color: var(--color-lavender-ghost);
    }

    & #menu {
      background-color: var(--color-lavender-ghost);
      position: absolute;
      position-anchor: menu-button;
      top: calc(anchor(bottom) - 10px);
      left: anchor(left);
      max-height: 0;
      overflow: hidden;
      transition: all 1s ease;

      &:popover-open {
        display: flex;
        gap: 2rem;
        max-height: 100dvh;
      }

      & a:hover {
        color: var(--color-dark-blue);
      }
    }
  }
}

/* HERO SECTION */
#hero {
  & .hero-mask {
    height: 90dvh;
    width: 100%;

    -webkit-mask-image: url("assets/images/hero-shape.svg");
    mask-image: url("assets/images/hero-shape.svg");

    -webkit-mask-size: cover;
    mask-size: cover;

    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;

    -webkit-mask-position: center;
    mask-position: center;

    @media (width < 768px) {
      height: 65dvh;
    }

    & .swiper {
      & .swiper-wrapper {
        & .swiper-slide {
          & .overlay {
            background: linear-gradient(to bottom, var(--color-bean), #ffffff00);
          }
        }
      }
    }
  }

  & .swiper,
  & .swiper-wrapper,
  & .swiper-slide {
    height: 100%;
  }
}

/* ALL CRUISES SECTION */
#all-cruises {
  & .grid {
    & .grid-item {
      & h3 {
        letter-spacing: 0.1em;
        line-height: 1.15em;

        @media (width < 1500px) {
          letter-spacing: 0.05em;
        }
      }
    }
  }
}

/* SHIPS SECTION */
#ships {
  & .dynamic-underline {
    position: absolute;
    bottom: -8px;
    height: 4px;
    background-color: var(--color-light-blue);
    transition:
      transform 0.35s ease,
      width 0.35s ease;
    will-change: transform, width;
  }
}

/* SCHIFFSCHARTER SECTION */
#schiffscharter {
  & article {
    color: var(--color-white);
    left: calc((100vw - var(--boxed)) / 2);

    @media (width < 768px) {
      left: calc((100vw - var(--boxed)) / 2 + 25%);
    }

    @media (width < 1200px) {
      left: calc((100vw - var(--boxed)) / 2 + 25%);
    }

    & h2 {
      line-height: 1.15em !important;
    }
  }
}

/* ALL LOCATIONS PAGE */
#locations {
  & .info-box {
    border: 1px solid var(--color-light-blue);

    & h4 {
      font-size: var(--text-md) !important;
      text-transform: uppercase;
      font-weight: bold;
      letter-spacing: 0.1em;
    }

    & h5 {
      text-transform: uppercase;
      letter-spacing: 0.1em;
    }
  }

  & .swiper {
    & .swiper-wrapper {
      & .swiper-slide {
        & article {
          & .content-text {
            line-height: 1.75em;
          }
        }
      }
    }

    & .swiper-pagination-bullet {
      height: 10px !important;
      width: 10px !important;
      margin: 0 calc(var(--text-md) / 2);
      background: var(--color-dark-blue);
    }
  }
}

/* CHARTERSERVICES PAGE */
#charterservices {
  & article {
    & ul {
      list-style-type: disc;
      padding-inline-start: 1.5rem;
      display: flex;
      flex-direction: column;
      gap: 0.5rem;
    }
  }
}

/* CONTACT / DIRECTIONS PAGE */
#contact {
  & form {
    border: 1px solid var(--color-light-blue);

    & .input-box {
      position: relative;

      label {
        position: absolute;
        left: 1rem;
        top: 50%;
        transform: translateY(-50%);
        pointer-events: none;
        transition: all 0.25s ease;
        color: var(--color-bean);
        background: white;
        padding: 0 0.25rem;
      }

      & input,
      & textarea {
        width: 100%;
        border: none;
        border-bottom: 1px solid var(--color-lavender);
        outline: none;
        padding: 1rem 0.5rem 0.25rem 1rem;
        background: transparent;

        &:focus + label,
        &:not(:placeholder-shown) + label {
          top: 0;
          transform: translateY(-50%) scale(0.85);
          color: var(--color-light-blue);
        }
      }
    }
  }

  & #info-boxes {
    & article {
      border: 1px solid var(--color-light-blue);
    }
  }
}

.accordion {
  & .accordion-item {
    border: 1px solid var(--color-lavender);
    border-radius: 0.5rem;
    margin-bottom: 1rem;
    overflow: hidden;

    &.active {
      border: 1px solid var(--color-light-blue);

      .accordion-icon {
        transform: rotate(45deg);
      }

      & .accordion-header {
        color: var(--color-light-blue);
      }
    }
  }

  & .accordion-header {
    width: 100%;
    padding: 1rem 1.5rem;
    border: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-weight: 600;
  }

  & .accordion-icon {
    font-size: 1.5rem;
    transition: transform 0.3s ease;
  }

  & .accordion-content {
    display: none;

    & .accordion-inner {
      padding: 1rem 1.5rem 1.5rem;
    }
  }
}

/* LEGAL PAGES */
#legal {
  & ul,
  ol {
    padding-inline-start: 1rem;
  }

  & ul {
    list-style-type: disc;
  }

  & ol {
    list-style: decimal;
  }
}
