/*
 * File: custom-cursor.css
 * Description: Consolidated site styles including custom airplane cursor.
 *
 * This version restores the airplane cursor with rotation, hover effects,
 * mobile hiding, and explicitly removes the .custom-cursor-dot styling.
 */

@font-face {
  font-family: "Blakely";
  src: url("https://www.thewayhow.com/hubfs/fonnts.com-Blakely_Bold_Bold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
}

/* Responsive Media Queries (TWH-Mobile-Stacking, mobile-only-map) */
@media (max-width: 768px) {
    .TWH-Mobile-Stacking {
        flex-direction: column;
        gap: 50px;
        justify-content: center;
        align-items: left;
    }
}
@media (min-width: 768px) {
    .mobile-only-map {
        display: none !important;
    }
}
@media (max-width: 372px) {
    .mobile-only-map {
        display: block !important;
    }
}

/* Header/Main Navigation Styles */
#hhs-main-nav {
    position: fixed !important;
/*     bottom: 15px !important; */
    left: 50% !important;
    transform: translateX(-50%) !important;
/*     max-width: 1200px !important; */
    width: 100% !important;
    top: auto !important;
    z-index: 10000 !important;
/*     border-radius: 10px; */
    background-color: #333 !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15);
    padding: 10px 25px;
    height: auto;
    min-height: 60px;
    display: flex !important;
    align-items: center !important;
    transition: none !important;
    visibility: visible !important;
    opacity: 1 !important;
}

#hhs-main-nav .hhs-header-logo .logo-standard img,
#hhs-main-nav .hhs-header-logo .logo-sticky img {
    display: block;
    max-width: 100%;
    height: auto;
    max-height: 60px !important;
}

#hhs-main-nav .hhs-nav-grid {
    display: flex;
    align-items: center;
    width: 100%;
}

/* Global Body and HTML Styles */
html, body {
    margin: 0;
    padding: 0;
    height: 100%;
}
body::after {
    content: "";
    display: block;
    height: 120px;
    width: 100%;
    background-color: #333;
    margin-top: -45px;
}

/* Header/Main Navigation Responsive Adjustments */
@media (max-width: 768px) {
    #hhs-main-nav .hhs-nav-grid__menu { display: none !important; }
    #hhs-main-nav .hhs-menu-toggle { display: flex !important; }
    #hhs-main-nav .hhs-nav-grid__extras { margin-left: auto; }
    #hhs-main-nav {
        padding-top: 8px !important;
        padding-bottom: 8px !important;
        min-height: 55px;
    }
    #hhs-main-nav .hhs-header-logo .logo-standard img,
    #hhs-main-nav .hhs-header-logo .logo-sticky img {
        max-height: 35px !important;
        max-width: 70px !important;
    }
}

@media (max-width: 372px) {
    #hhs-main-nav .hhs-extras-ctas { display: none !important; }
    #hhs-main-nav .hhs-nav-grid__extras .top-bar-search { display: none !important; }
    #hhs-main-nav {
        padding-top: 5px !important;
        padding-bottom: 5px !important;
        min-height: 30px;
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
    #hhs-main-nav .hhs-header-logo .logo-standard img,
    #hhs-main-nav .hhs-header-logo .logo-sticky img {
        max-height: 30px !important;
        max-width: 70px !important;
    }
}

#hhs-main-nav .hhs-nav-links > li.hs-menu-item.hs-item-has-children {
    position: relative !important;
}

#hhs-main-nav ul.hs-menu-children-wrapper {
    position: absolute !important;
    bottom: 100% !important;
    top: auto !important;
    left: 0 !important;
    margin-bottom: 5px !important;
    transform: none !important;
    opacity: 1;
    visibility: hidden;
    transition: opacity 0.2s ease-in-out, visibility 0s linear 0.2s;
    z-index: 10001;
}
#hhs-main-nav li.hs-item-has-children:hover > ul.hs-menu-children-wrapper,
#hhs-main-nav li.hs-item-has-children:focus-within > ul.hs-menu-children-wrapper {
    opacity: 1;
    visibility: visible;
    transition-delay: 0s;
}

/* Mega Menu Styles */
.mega-menu {
    position: fixed !important;
    bottom: 120px !important;
    top: auto !important;
    left: 50% !important;
    width: 90% !important;
    margin: 0 !important;
    max-width: 1200px;
    transform: translateX(-50%) translateY(20px);
    opacity: 0;
    pointer-events: none;
    max-height: 0px;
    overflow: hidden;
    transition: opacity 0.3s ease, transform 0.3s ease, max-height 0.5s ease-out, padding 0.5s ease-out;
    z-index: 10001 !important;
    box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15);
    border-radius: 10px 10px 0 0;
    padding: 60px 40px 40px 40px !important;
}

.mega-menu-2 {
    width: 90% !important;
}

body #hhs-main-nav + .mega-menu.active {
    left: 0 !important;
    width: 100% !important;
    bottom: auto !important;
    top: auto !important;
    bottom: calc(100vh - 15px - 60px - 1px) !important;
    transform: translateX(0) translateY(0) !important;
    z-index: 10002 !important;
}

.mega-menu.active > .container {
    max-width: none !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.mega-menu.active .row {
    display: flex;
    flex-wrap: wrap;
}

.mega-menu.active .col-6,
.mega-menu.active .col-4,
.mega-menu.active .col-8,
.mega-menu.active .col-3,
.mega-menu.active .col-9 {
    flex: 1 1 auto;
    box-sizing: border-box;
}

@media (min-width: 768px) {
    .mega-menu.active .col-6 {
        flex-basis: 50%;
    }
    .mega-menu.active .col-4 {
        flex-basis: 33.33%;
    }
}

/* Testimonial Quote Styles */
#hs_cos_wrapper_module_17429257816517[data-hs-cos-field="testimonial.quote"],
.quote-con [data-hs-cos-field="testimonial.quote"] {
    font-family: "Neue Hass", serif !important;
    font-weight: 300 !important;
    font-size: 30px !important;
    line-height: 30px !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    color: rgb(255, 255, 255) !important;
    font-style: normal !important;
    text-align: center !important;
}



/* Newsletter Form Styles */
.nl-form-container-wrapper {
    max-width: 800px;
    width: 100%;
    box-sizing: border-box;
    margin: 0 auto 30px auto;
    text-align: center;
}

.nl-form-header-layout {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.5rem;
    width: 100%;
    margin-bottom: 10;
}

@media (min-width: 768px) {
    .nl-form-header-layout {
        flex-direction: row;
        align-items: center;
        justify-content: center;
    }
    .nl-form-description {
        flex-shrink: 0;
        text-align: left;
    }
}

.nl-form-description {
    color: #134d8c;
    font-size: 1.125rem;
    line-height: 1.5;
    margin: 0;
    text-align: left;
}

/* HubSpot Embed and Form Styles */
div.hs-embed-wrapper {
    max-width: 100% !important;
    width: 100% !important;
    height: auto !important;
    padding: 0 !important;
    min-width: unset !important;
    display: block !important;
    margin: auto !important;
    flex: 1;
    min-width: 250px;
}

div.hs-embed-content-wrapper {
    width: 100% !important;
    height: auto !important;
}

div[id^="hbspt-form-"] {
    width: 100% !important;
    height: auto !important;
    margin: 0 0 10px 0!important;
    padding: 0 !important;
}

.dnd_area-row-2-background-layers {
    background-attachment: fixed !important;
}

/* Text Selection Styles */
html::selection {
    background-color: #C467C2 !important;
    color: #FFFFFF !important;
}

html::-webkit-selection {
    background-color: #C467C2 !important;
    color: #FFFFFF !important;
}

body::selection {
    background-color: #C467C2 !important;
    color: #FFFFFF !important;
}

body::-webkit-selection {
    background-color: #C467C2 !important;
    color: #FFFFFF !important;
}

/* Main Footer Custom Styles */
.Main-Footer-Custom .row.hhs-foot-nav-cols {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100%;
}

.Main-Footer-Custom .col-lg-3 {
    padding-left: 15px !important;
    padding-right: 15px !important;
    box-sizing: border-box !important;
    flex-basis: 25% !important;
    max-width: 25% !important;
}

#Main-Footer-Custom {
    padding: 20px;
    margin-bottom: 45px; /* Or more, depending on the overlap */
}

.Main-Footer-Custom .hhs-foot-nav-col.nav-col-4 .hs-input {
    width: 100% !important;
}

/* HubSpot Form Field Labels */
.hs_email label,
.hs_phone label {
    font-family: "Neue Hass", sans-serif !important;
    font-size: 20px !important;
    font-weight: 300 !important;
    height: 24px !important;
    letter-spacing: 1px !important;
    line-height: 24px !important;
    color: white !important;
    text-transform: none !important;
    display: block !important;
    text-align: left !important;
    width: auto !important;
    margin-bottom: 5px !important;
}

.hs_submit .actions {
    text-align: left !important;
}

/* HubSpot Primary Button Styles */
.hs-button.primary.large {
    background-color: rgb(0, 128, 226) !important;
    border: 1px solid rgb(0, 128, 226) !important;
    border-radius: 28px !important;
    box-sizing: content-box !important;
    height: 24px !important;
    line-height: 24px !important;
    padding: 16px 30px !important;
    width: auto !important;
    color: rgb(255, 255, 255) !important;
    font-family: "Neue Hass", Arial, Helvetica, sans-serif !important;
    font-size: 19px !important;
    font-weight: 700 !important;
    text-transform: capitalize !important;
    text-align: center !important;
    cursor: pointer !important;
    vertical-align: middle !important;
    visibility: visible !important;
    transition-duration: 0.4s !important;
    transition-timing-function: ease-in-out !important;
    transition-property: all !important;
    appearance: none !important;
    background-attachment: scroll !important;
    background-clip: border-box !important;
    background-image: none !important;
    background-origin: padding-box !important;
    background-position-x: 0% !important;
    background-position-y: 0% !important;
    background-repeat: repeat !important;
    background-size: auto !important;
    border-image-repeat: stretch !important;
    border-image-slice: 100% !important;
    border-image-source: none !important;
    border-image-width: 1 !important;
    display: inline-block !important;
    letter-spacing: normal !important;
    margin: 0 !important;
    overflow-clip-margin: 0px !important;
    overflow-x: clip !important;
    overflow-y: clip !important;
    position: relative !important;
    text-decoration: none !important;
    text-indent: 0px !important;
    text-rendering: auto !important;
    text-shadow: none !important;
    text-wrap-mode: wrap !important;
    user-select: none !important;
    white-space-collapse: preserve !important;
    word-spacing: 0px !important;
    -webkit-rtl-ordering: logical !important;
    -webkit-border-image: none !important;
    -webkit-font-smoothing: antialiased !important;
    text-size-adjust: 100% !important;
    transition-behavior: normal !important;
    will-change: transform !important;
}



/* 4. Styles for elements that trigger the 'landing' plane image */
/* Apply this class (.hover-effect-area) to any HubSpot module, section,
   or custom HTML element you want the airplane to "land" on. */
.hover-effect-area {
    /* Basic styling for example content to make it visible and interactive */
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 50px auto; /* Centers the box horizontally with vertical margin */
    width: 80%; /* Responsive width */
    max-width: 600px; /* Maximum width to prevent overstretching on large screens */
    padding: 40px;
    background-color: #ffffff; /* White background */
    border: 1px solid #e0e0e0; /* Subtle border */
    border-radius: 12px; /* Rounded corners for a modern look */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Soft shadow */
    text-align: center;
    font-size: 1.2rem;
    color: #333;
    /* Smooth transitions for hover effects */
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}

/* Hover state for the interactive elements */
.hover-effect-area:hover {
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2); /* More prominent shadow on hover */
    transform: translateY(-5px); /* Slight lift effect on hover */
}



#hs_cos_wrapper_module_17498382670199 .timeline .timeline-end p,
#hs_cos_wrapper_module_17498382670199 .timeline .timeline-start p,
#hs_cos_wrapper_module_17498382670199 .timeline .timeline-year p {
    background: none !important;
    background-color: transparent !important;
    width: auto !important;
    height: auto !important;
    -webkit-border-radius: 0 !important;
    border-radius: 0 !important;
    border: none !important;
    color: inherit !important;
    font-size: inherit !important;
    font-weight: normal !important;
    display: block !important;
    text-align: left !important;
    vertical-align: baseline !important;
    margin: 0 !important;
    box-shadow: none !important;
}

.timeline .timeline-end,
.timeline .timeline-start,
.timeline .timeline-year {
    display: block !important;
    width: auto !important;
    margin: 0 !important;
    text-align: left !important;
    position: static !important;
    z-index: auto !important;
}

#hs_cos_wrapper_module_17498382670199 .timeline .timeline-end p,
#hs_cos_wrapper_module_17498382670199 .timeline .timeline-start p,
#hs_cos_wrapper_module_17498382670199 .timeline .timeline-year p {
    font-family: Play, sans-serif !important;
    font-size: 18px !important;
    line-height: 1.5em !important;
    color: #555b6e !important;
    margin-bottom: 1rem !important;
    margin-top: 0 !important;
}


.twh_team .hhs-profile-content h4 {
    font-family: 'Mister Television';
    font-size: 50px;
}

 #airplane-cursor-3d {
    position: fixed !important;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    pointer-events: none !important;
    z-index: 999999 !important;
    mix-blend-mode: normal;
  }

  #airplane-cursor-3d canvas {
    width: 100% !important;
    height: 100% !important;
  }

#hhs-main-nav {
    position: fixed !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    top: auto !important;
    z-index: 10000 !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15);
    padding: 10px 25px;
    height: auto;
    min-height: 60px;
    display: flex !important;
    align-items: center !important;
    transition: none !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100%;
}

/* Quotes Edits */
body.hs-quotes.hs-quotes--quote.hs-quotes--flow .banner {
    background-image: none !important;
}