/*

 Theme Name:     Extra Magic Trips
 Theme URI:      https://www.extramagictrips.com
 Description:    Extra Magic Trips New Custom Theme
 Author:         Stephen Juliano
 Author URI:     http://www.stephenjuliano.com
 Template:       Divi
 Version:        2.0.0

*/

/* =Theme customization starts here

------------------------------------------------------- */





/* Force Divi Footer Menu Module to display as a vertical list */
.vertical-list-menu .et_pb_menu__menu,
.vertical-list-menu ul.et-menu {
    display: block !important;
    flex-direction: column !important;
}

/* Align list items vertically and remove horizontal spacing */
.vertical-list-menu ul.et-menu > li {
    display: block !important;
    padding: 8px 0 !important; /* Adjust padding for list item spacing */
    margin: 0 !important;
}

/* Hide the mobile hamburger menu icon to keep it as a list on phones */
.vertical-list-menu .et_mobile_nav_menu {
    display: none !important;
}
.vertical-list-menu .et_pb_menu__nav {
    display: block !important;
}

/* style the Quote Request cta button */
            .quote-request {border-radius: 70px;}
            .quote-request a {color: #fff!important;}
            li.quote-request {
                background-color:#94c93d; 
                font-weight: 900; 
                text-align: center; 
                padding: 10px 10px 10px!important;
            border-radius: 70px;
                -moz-transition: all 0.5s; 
                -webkit-transition: all 0.5s;
                transition: all 0.5s;}
            li.quote-request:hover {background-color:#2452a0;}
 
/* fixed header button text color */
                 .et-fixed-header #top-menu .quote-request a {
                        color: #fff!important;}
        .quote-request li.current-menu-ancestor > a, .quote-request li.current-menu-item > a {
                    color: #fff !important;}
 
 
 
    @media only screen and (min-width : 981px) {
            li.quote-request {height: 33px;}}


/* FORMER STYLES FROM WDW TRIPS WEBSITE
-----------------------------------------------

.et_pb_promo_description h2 {color:#000000 ;}
.et_pb_promo_button {text-align:center ;}
.et_pb_section {padding: 10px 0 ;}
.et_pb_row {padding: 0px ;}
.et_pb_more_button {background: #2452a0 !important; color: #ffffff !important; }
.et_pb_slide_description {text-shadow: 0 2px 3px #000000 !important; }
.et-social-icon a {color: #ffffff; }
-------------------------------------------------- */

/************ Hidden Last Name Field ******************/
.subscribe-optin-hidden-last .et_pb_newsletter_form p:nth-child(3) {
    display: none ;
}

.subscribe-optin-3 .et_pb_newsletter_description {
    float: none;
    display: inline-block;
    width: inherit;
    vertical-align: middle;
    text-align: center;
    padding: 12px 0px;
    margin-bottom: 0;
}

.subscribe-optin-3 .et_pb_newsletter_form {
    display: block;
    float: none;
    width: inherit;
    text-align: center;
    vertical-align: middle;
}

.subscribe-optin-3 .et_pb_newsletter_form p {
    display: inline-block;
    margin-right: 5px;
    vertical-align: top;
    padding-bottom: 0
        ;
}
/************ Custom Design for Field  ******************/
.subscribe-optin-3 .et_pb_newsletter_form p input {
    padding: 5% 5%;
    margin: 5% 0 ;
    width: 250px !important;
    height: 55px !important;
    border: 3px solid rgba(255, 255, 255, 0.45) !important;
    -webkit-border-radius: 6px !important;
    border-radius: 6px !important;
    font-weight: bold;
    font-size: 14px;
}

/************ Button Send ******************/
.subscribe-optin-3.et_pb_newsletter .et_pb_newsletter_button {
    font-weight: bold;
    width: 250px !important;
    -webkit-border-radius: 6px;
    border-radius: 6px;
    line-height: 2.43em !important;
    margin-top: 5%;
    text-transform: uppercase;
}

.subscribe-optin-3,.et_pb_column_4_4 .et_pb_newsletter_form {
    padding-left: 0px !important;
}

.subscribe-optin-3.et_pb_subscribe {
    background: rgba(255, 255, 255, 0.1);
    -webkit-border-radius: 6px;
    border-radius: 6px;
    padding: 0 0px 20px 0px !important;
    margin: 0 auto;
}

@media screen and (min-width: 981px) {
  .subscribe-optin-3.et_pb_subscribe {    
    max-width: 85% !important;
  }
}

@media screen and (max-width: 980px) {
  .subscribe-optin-3 .et_pb_newsletter_form {    
    width: 100% !important;
  }
}


#footer-info {font-size: 10px ; color:#ffffff ; line-height: 15px;}

::selection {

  color:#ffffff; background: #554971; /* WebKit/Blink Browsers */

}

::-moz-selection {

  color:#fffff; background: #554971; /* Gecko Browsers */

}


p a {border-bottom: 1px dotted #2452a0; }
p a:hover {border-bottom: 1px solid #2452a0; }
.footer-links a {color: #ffffff; border-bottom: 1px dotted #ffffff; }
.footer-links a:hover {color: #ffffff; border-bottom: 1px solid #ffffff; }


/* ————–BACK TO TOP BUTTON COLOR———— */
.et_divi_100_custom_back_to_top .et_pb_scroll_top {
background: #94c93d;
}

.horizontal-optin p{ display: inline-block; }

.et_pb_widget_area_left { 
    border-bottom: 1px solid rgba(0,0,0,0.1);
    border-top: 1px solid rgba(0,0,0,0.1);
    padding-top: 30px;
    border-right: 1px solid rgba(0,0,0,0.1);
    padding-right: 30px;
    padding-left: 30px;
    border-left: 1px solid rgba(0, 0, 0, 0.1);
}

.img-circle {
    border-radius: 50%;
}

.disclaimer-dta { font-style: italic; font-size: 6pt ; line-height: 100% ; }
.et_pb_team_member_image { text-align:center !important; }

/* Blurb Card */
.blurb-card .et_pb_main_blurb_image { margin-bottom: 0 !important; } 
.blurb-card h6 { color: #94c93d; margin-top: 20px; } 
.blurb-card .et_pb_button { position: absolute; top: 0; left: 0; width: 100%; height: 100%; zoom: 1; filter: alpha(opacity=0); opacity: 0; } 
.blurb-card .et_pb_blurb { margin-bottom: 0 !important; } 
.blurb-card .et_pb_column { position: relative; } 
.blurb-card .et_pb_blurb_container { background: #fff; padding: 75px 25px 25px 25px; border-radius: 4px; box-shadow: 0px 1px 3px rgba(0, 0, 0, .08) !important; -webkit-box-shadow: 0px 1px 3px rgba(0, 0, 0, .08) !important; -moz-box-shadow: 0px 1px 3px rgba(0, 0, 0, .08) !important; -webkit-transition: all 0.1s linear; -o-transition: all 0.1s linear; -moz-transition: all 0.1s linear; -ms-transition: all 0.1s linear; -kthtml-transition: all 0.1s linear; transition: all 0.1s linear; margin-top: -50px; } 
.blurb-card .et_pb_column:hover .et_pb_blurb_container { -webkit-box-shadow: 5px 15px 15px rgba(0, 0, 0, .2) !important; -moz-box-shadow: 5px 15px 15px rgba(0, 0, 0, .2) !important; box-shadow: 5px 15px 15px rgba(0, 0, 0, .2) !important; -webkit-transition: all 0.1s linear; -o-transition: all 0.1s linear; -moz-transition: all 0.1s linear; -ms-transition: all 0.1s linear; -kthtml-transition: all 0.1s linear; transition: all 0.1s linear; } 
/* Effect 8 */ 
.blurb-card .et-pb-icon { padding: 33px; font-size: 35px; position: relative; z-index: 1; color: #ffffff !important; -webkit-transition: all 0.1s linear; -o-transition: all 0.1s linear; -moz-transition: all 0.1s linear; -ms-transition: all 0.1s linear; -kthtml-transition: all 0.1s linear; } 
.blurb-card .et-pb-icon:after { pointer-events: none; position: absolute; width: 100%; height: 100%; border-radius: 50%; content: ''; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; } 
.blurb-card .et-pb-icon:before { content: ''; display: block; } 
.blurb-card .et-pb-icon { background: rgba(255, 255, 255, 0.1); -webkit-transition: -webkit-transform ease-out 0.1s, background 0.2s; -moz-transition: -moz-transform ease-out 0.1s, background 0.2s; transition: transform ease-out 0.1s, background 0.2s; } 
.blurb-card .et-pb-icon:after { top: 0; left: 0; padding: 0; z-index: -1; box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1); opacity: 0; -webkit-transform: scale(0.9); -moz-transform: scale(0.9); -ms-transform: scale(0.9); transform: scale(0.9); }
.blurb-card .et_pb_column:hover .et-pb-icon { background: rgba(255, 255, 255, 0.05); color: #2452a0 !important; -webkit-transition: all 0.1s linear; -o-transition: all 0.1s linear; -moz-transition: all 0.1s linear; -ms-transition: all 0.1s linear; -kthtml-transition: all 0.1s linear; } 
.blurb-card .et_pb_column:hover .et-pb-icon:after { -webkit-animation: sonarEffect 0.5s ease-out 50ms; -moz-animation: sonarEffect 0.5s ease-out 75ms; animation: sonarEffect 0.5s ease-out 75ms; } @-webkit-keyframes sonarEffect { 0% { opacity: 0.3; } 40% { opacity: 0.5; box-shadow: 0 0 0 2px #94c93d, 0 0 10px 10px #94c93d, 0 0 0 10px #94c93d; } 100% { box-shadow: 0 0 0 2px #94c93d, 0 0 10px 10px #94c93d, 0 0 0 10px #94c93d; -webkit-transform: scale(1.5); opacity: 0; } } @-moz-keyframes sonarEffect { 0% { opacity: 0.3; } 40% { opacity: 0.5; box-shadow: 0 0 0 2px #94c93d, 0 0 10px 10px #94c93d, 0 0 0 10px #94c93d; } 100% { box-shadow: 0 0 0 2px #94c93d, 0 0 10px 10px #94c93d, 0 0 0 10px #94c93d; -moz-transform: scale(1.5); opacity: 0; } } @keyframes sonarEffect { 0% { opacity: 0.3; } 40% { opacity: 0.5; box-shadow: 0 0 0 2px #94c93d, 0 0 10px 10px #94c93d, 0 0 0 10px #94c93d; } 100% { box-shadow: 0 0 0 2px #94c93d, 0 0 10px 10px #94c93d, 0 0 0 10px #94c93d; transform: scale(1.5); opacity: 0; } } .horizontal-optin p{ display: inline-block; }
/* END Blurb Card */

/* Blurb Card 2 for LPs with blue BG */
.blurb-card-2 .et_pb_main_blurb_image { margin-bottom: 0 !important; } 
.blurb-card-2 h6 { color: #ffffff; margin-top: 20px; } 
.blurb-card-2 .et_pb_button { position: absolute; top: 0; left: 0; width: 100%; height: 100%; zoom: 1; filter: alpha(opacity=0); opacity: 0; } 
.blurb-card-2 .et_pb_blurb { margin-bottom: 0 !important; } 
.blurb-card-2 .et_pb_column { position: relative; } 
.blurb-card-2 .et_pb_blurb_container { background: #fff; padding: 75px 25px 25px 25px; border-radius: 4px; box-shadow: 0px 1px 3px rgba(0, 0, 0, .08) !important; -webkit-box-shadow: 0px 1px 3px rgba(0, 0, 0, .08) !important; -moz-box-shadow: 0px 1px 3px rgba(0, 0, 0, .08) !important; -webkit-transition: all 0.1s linear; -o-transition: all 0.1s linear; -moz-transition: all 0.1s linear; -ms-transition: all 0.1s linear; -kthtml-transition: all 0.1s linear; transition: all 0.1s linear; margin-top: -50px; } 
.blurb-card-2 .et_pb_column:hover .et_pb_blurb_container { -webkit-box-shadow: 5px 15px 15px rgba(0, 0, 0, .2) !important; -moz-box-shadow: 5px 15px 15px rgba(0, 0, 0, .2) !important; box-shadow: 5px 15px 15px rgba(0, 0, 0, .2) !important; -webkit-transition: all 0.1s linear; -o-transition: all 0.1s linear; -moz-transition: all 0.1s linear; -ms-transition: all 0.1s linear; -kthtml-transition: all 0.1s linear; transition: all 0.1s linear; } 
/* Effect 8 */ 
.blurb-card-2 .et-pb-icon { padding: 33px; font-size: 35px; position: relative; z-index: 1; color: #ffffff !important; -webkit-transition: all 0.1s linear; -o-transition: all 0.1s linear; -moz-transition: all 0.1s linear; -ms-transition: all 0.1s linear; -kthtml-transition: all 0.1s linear; } 
.blurb-card-2 .et-pb-icon:after { pointer-events: none; position: absolute; width: 100%; height: 100%; border-radius: 50%; content: ''; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; } 
.blurb-card-2 .et-pb-icon:before { content: ''; display: block; } 
.blurb-card-2 .et-pb-icon { background: rgba(255, 255, 255, 0.1); -webkit-transition: -webkit-transform ease-out 0.1s, background 0.2s; -moz-transition: -moz-transform ease-out 0.1s, background 0.2s; transition: transform ease-out 0.1s, background 0.2s; } 
.blurb-card-2 .et-pb-icon:after { top: 0; left: 0; padding: 0; z-index: -1; box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1); opacity: 0; -webkit-transform: scale(0.9); -moz-transform: scale(0.9); -ms-transform: scale(0.9); transform: scale(0.9); }
.blurb-card-2 .et_pb_column:hover .et-pb-icon { background: rgba(255, 255, 255, 0.05); color: #c0bcb5 !important; -webkit-transition: all 0.1s linear; -o-transition: all 0.1s linear; -moz-transition: all 0.1s linear; -ms-transition: all 0.1s linear; -kthtml-transition: all 0.1s linear; } 
.blurb-card-2 .et_pb_column:hover .et-pb-icon:after { -webkit-animation: sonarEffect 0.5s ease-out 50ms; -moz-animation: sonarEffect 0.5s ease-out 75ms; animation: sonarEffect 0.5s ease-out 75ms; } @-webkit-keyframes sonarEffect { 0% { opacity: 0.3; } 40% { opacity: 0.5; box-shadow: 0 0 0 2px #f26522, 0 0 10px 10px #f26522, 0 0 0 10px #f26522; } 100% { box-shadow: 0 0 0 2px #f26522, 0 0 10px 10px #f26522, 0 0 0 10px #f26522; -webkit-transform: scale(1.5); opacity: 0; } } @-moz-keyframes sonarEffect { 0% { opacity: 0.3; } 40% { opacity: 0.5; box-shadow: 0 0 0 2px #94c93d, 0 0 10px 10px #94c93d, 0 0 0 10px #f26522; } 100% { box-shadow: 0 0 0 2px #94c93d, 0 0 10px 10px #f26522, 0 0 0 10px #f26522; -moz-transform: scale(1.5); opacity: 0; } } @keyframes sonarEffect { 0% { opacity: 0.3; } 40% { opacity: 0.5; box-shadow: 0 0 0 2px #94c93d, 0 0 10px 10px #f26522, 0 0 0 10px #94c93d; } 100% { box-shadow: 0 0 0 2px #f26522, 0 0 10px 10px #f26522, 0 0 0 10px #f26522; transform: scale(1.5); opacity: 0; } } .horizontal-optin p{ display: inline-block; }
/* END Blurb Card */


@media only screen and ( min-width:981px ) {
   
    .tips_slider, .tips_slider .et_pb_container { 
        height: 350px !important; 
    }
    .tips_slider, .tips_slider .et_pb_slide { 
        max-height: 350px; 
    }
    .tips_slider .et_pb_slide_description { 
        /* position: relative; 
        top: 25%; */
        padding-top: 0 !important; 
        padding-bottom:0 !important; 
        height:auto !important; 
    }
}

/*Remove Form Branding */
.formFooter {display:none !important;}

/*Remove TidyCal Branding */
.branding-ltd {display:none !important;}

/* DTA embed styling */
/* Outer Clip Window */
.disney-iframe-wrapper {
    position: relative;
    width: 100%;
    /* Set height to the visible page area (Viewport Height minus header space) */
    height: calc(100vh - 120px); 
    overflow: hidden !important; /* Clips the overflow header */
    border-radius: 12px; /* Optional clean card look */
}

/* Internal Iframe Positioning & Negative Offset */
.disney-clipped-iframe {
    position: absolute;
    /* Shifts the iframe UP to crop out the top nav and breadcrumbs */
    top: -110px; 
    left: 0;
    width: 100% !important;
    /* Adds extra height at the bottom so content isn't cut short */
    height: calc(100% + 110px) !important; 
    border: none !important;
}

/* Adjust top crop for smaller screens where header height changes */
@media (max-width: 767px) {
    .disney-iframe-wrapper {
        height: calc(100vh - 80px);
    }
    .disney-clipped-iframe {
        top: -140px; /* Disney mobile headers are usually taller */
        height: calc(100% + 140px) !important;
    }
}

/* Organic Hand-Drawn Scribble Underline */
.zigzag-underline {
    position: relative;
    display: inline-block;
    text-decoration: none;
    padding-bottom: 10px; /* Space between text and the stroke */
}

.zigzag-underline::after {
    content: '';
    position: absolute;
    bottom: -6px;
    left: -3%; /* Extends slightly past text edges for a natural marker feel */
    width: 106%;
    height: 16px;
    
    /* Clean UTF-8 Encoded Multi-Pass Marker SVG */
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 260 20" preserveAspectRatio="none"><path d="M3 6 C 65 3, 175 2, 255 5 C 180 9, 90 10, 5 13 C 60 15, 120 16, 165 16" fill="none" stroke="%23f26522" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/></svg>');
    background-repeat: no-repeat;
    background-size: 100% 100%;
    pointer-events: none;
}

/* Organic Hand-Drawn Circle Highlight */
.circle-highlight {
    position: relative;
    display: inline-block;
    padding: 0.15em 0.35em; /* Breathing room inside the hand-drawn circle */
    z-index: 1;
}

.circle-highlight::after {
    content: '';
    position: absolute;
    top: -15%;
    left: -10%;
    width: 120%;
    height: 130%;
    
    /* Hand-Drawn Overlapping Loop Marker SVG */
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 80" preserveAspectRatio="none"><path d="M 120 12 C 180 10, 195 25, 190 48 C 182 72, 100 78, 20 72 C -5 68, 0 35, 30 18 C 70 8, 140 18, 160 22" fill="none" stroke="%23f26522" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/></svg>');
    background-repeat: no-repeat;
    background-size: 100% 100%;
    pointer-events: none;
    z-index: -1;
}

/* Organic Hand-Drawn Crossout Effect */
.crossout-highlight {
    position: relative;
    display: inline-block;
    padding: 0 0.2em;
    z-index: 1;
}

.crossout-highlight::after {
    content: '';
    position: absolute;
    top: -15%;
    left: -5%;
    width: 110%;
    height: 130%;
    
    /* Hand-Drawn Intersecting "X" Stroke SVG */
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 60" preserveAspectRatio="none"><path d="M 5 10 Q 100 28, 195 50" fill="none" stroke="%23f26522" stroke-width="3.5" stroke-linecap="round"/><path d="M 10 52 Q 100 32, 190 8" fill="none" stroke="%23f26522" stroke-width="3.5" stroke-linecap="round"/></svg>');
    background-repeat: no-repeat;
    background-size: 100% 100%;
    pointer-events: none;
    z-index: 2;
}

/* Organic Hand-Drawn Single Underline */
.single-underline {
    position: relative;
    display: inline-block;
    text-decoration: none;
    padding-bottom: 6px;
    z-index: 1;
}

.single-underline::after {
    content: '';
    position: absolute;
    bottom: -6px;
    left: -3%;
    width: 106%;
    height: 14px;
    
    /* Hand-Drawn Single Stroke with Organic Wobble & Asymmetry */
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 24" preserveAspectRatio="none"><path d="M 4 15 C 45 20, 85 8, 125 14 S 175 19, 196 9" fill="none" stroke="%23f26522" stroke-width="7" stroke-linecap="round" stroke-linejoin="round"/></svg>');
    background-repeat: no-repeat;
    background-size: 100% 100%;
    pointer-events: none;
    z-index: -1;
}

/* Destination Hero Container */
.destination-hero {
    position: relative;
    width: 100%;
    min-height: 70vh; /* Ensures high impact across high-res displays */
    display: flex;
    align-items: flex-end; /* Places text near bottom for an editorial look */
    justify-content: flex-start;
    padding: 60px 8% 80px 8%;
    background-image: url('YOUR-HIGH-RES-DESTINATION-IMAGE.jpg');
    background-size: cover;
    background-position: center center;
    box-sizing: border-box;
}

/* Gradient Overlay: Guarantees readability even if the photo has bright spots */
.destination-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top, 
        rgba(0, 0, 0, 0.75) 0%, 
        rgba(0, 0, 0, 0.3) 50%, 
        rgba(0, 0, 0, 0.1) 100%
    );
    z-index: 1;
}

/* Hero Content Stack */
.destination-hero-content {
    position: relative;
    z-index: 2;
    max-width: 850px;
    color: #FFFFFF;
}

/* SEO Title with Multi-Layer Drop Shadow */
.hero-title {
    font-size: clamp(2.5rem, 5vw, 4.2rem); /* Dynamic fluid typography */
    font-weight: 500;
    line-height: 1.1;
    margin-bottom: 18px;
    color: #FFFFFF;
    
    /* Layered text-shadow for crisp legibility against all photo backgrounds */
    text-shadow: 
        0px 2px 4px rgba(0, 0, 0, 0.6),
        0px 8px 24px rgba(0, 0, 0, 0.4);
}

/* Hero Subtitle Styling */
.hero-subtitle {
    font-size: clamp(1.1rem, 2vw, 1.35rem);
    line-height: 1.5;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.95);
    margin: 0;
    
    /* Soft text-shadow for secondary text */
    text-shadow: 0px 2px 8px rgba(0, 0, 0, 0.7);
}

/* Mobile Adjustments */
@media (max-width: 767px) {
    .destination-hero {
        min-height: 55vh;
        padding: 40px 5% 50px 5%;
    }
}

/* Center the parent column container */
.centered-planner-header {
    text-align: center !important;
}

/* Inline Display for Header Name + LGBT Icon */
.inline-header-item {
    display: inline-block !important;
    vertical-align: middle;
    margin-bottom: 0 !important;
}

/* Spacing between the name and rainbow icon */
.inline-header-item.et_pb_image {
    margin-left: 10px !important;
}


/* Divi 5 Overlapping Icon Blurb */
.overlapping-icon-blurb {
    overflow: visible !important;
    margin-top: 45px !important;
    padding-top: 0 !important; /* Removes card-level top padding */
    transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1), box-shadow 0.3s ease !important;
}

/* Divi 5 Content Container Reset */
.overlapping-icon-blurb .et_pb_blurb_content {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* Icon Container Positioning */
.overlapping-icon-blurb .et_pb_main_blurb_image,
.overlapping-icon-blurb .et_pb_blurb_image {
    margin-top: -40px !important; /* Keeps circle centered on top border */
    margin-bottom: 0 !important;
    display: inline-block !important;
    width: 100% !important;
    text-align: center !important;
}

/* Pull Title Tight to Icon */
.overlapping-icon-blurb .et_pb_module_header,
.overlapping-icon-blurb h4,
.overlapping-icon-blurb h3 {
    margin-top: 8px !important; /* Controls exact distance under icon */
    padding-top: 0 !important;
}

/* Smooth Icon Hover Animation */
.overlapping-icon-blurb .et-pb-icon {
    display: inline-block !important;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}

/* Card Hover Lift & Shadow */
.overlapping-icon-blurb:hover {
    transform: translateY(-8px);
    box-shadow: 0px 20px 35px rgba(0, 0, 0, 0.12) !important;
}

/* Icon Pop & Tilt on Hover */
.overlapping-icon-blurb:hover .et-pb-icon {
    transform: scale(1.1) rotate(6deg);
}

/* Desktop Only: Pull Sidebar Form up over Hero Section */
@media all and (min-width: 981px) {
    .overlapping-form-container {
        margin-top: -120px !important; /* Pulls container upward into Hero section */
        position: relative !important;
        z-index: 10 !important;        /* Ensures container renders on top of Hero background */
    }
}

/* Ensure Hero Section allows elements to stack cleanly above it */
.et_pb_section:first-of-type {
    z-index: 1;
}

/* Sticky Sidebar Form on Desktop */
@media all and (min-width: 981px) {
    /* 1. Ensure the parent column allows sticky child elements */
    .et_pb_column {
        display: flex !important;
        flex-direction: column !important;
    }

    /* 2. Make the overlapping form container sticky */
    .overlapping-form-container {
        position: -webkit-sticky !important;
        position: sticky !important;
        top: 120px; /* Distance from top of browser window while scrolling */
        z-index: 10 !important;
    }
}

/* JotForm Loading Animation */
/* Container Wrapper */
.jotform-loading-wrapper {
    position: relative;
    min-height: 400px; /* Keeps height stable while script loads */
    width: 100%;
}

/* Loader Overlay - Sidebar Page */
.form-loader-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: #554971; /* Matches your sidebar background */
    border-radius: 12px;
    z-index: 20;
    transition: opacity 0.4s ease;
}

/* White Spinner Animation */
.loader-spinner {
    width: 36px;
    height: 36px;
    border: 3px solid rgba(255, 255, 255, 0.2);
    border-top: 3px solid #ffffff;
    border-radius: 50%;
    animation: spinJotform 0.8s linear infinite;
    margin-bottom: 12px;
}

/* Text Styling */
.loader-text {
    font-size: 14px;
    color: #ffffff;
    font-weight: 500;
    margin: 0;
    letter-spacing: 0.5px;
}

@keyframes spinJotform {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Loader Overlay - Quote Request Page */
/* Container Wrapper for White Backgrounds */
.jotform-loading-wrapper.light-theme {
    position: relative;
    min-height: 450px;
    width: 100%;
}

/* Light Loader Overlay */
.form-loader-overlay.light {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: #ffffff; /* Clean white background */
    border: 1px solid #e2e8f0; /* Subtle light border */
    border-radius: 12px;
    z-index: 20;
    transition: opacity 0.3s ease;
}

/* Brand Orange Accent Spinner */
.form-loader-overlay.light .loader-spinner {
    width: 36px;
    height: 36px;
    border: 3px solid #f1f5f9; /* Light track background */
    border-top: 3px solid #f26522; /* Orange accent color (matches your brand button) */
    border-radius: 50%;
    animation: spinJotform 0.8s linear infinite;
    margin-bottom: 12px;
}

/* Text Styling for Light Backgrounds */
.form-loader-overlay.light .loader-text {
    font-size: 14px;
    color: #4a5568; /* Readable dark grey text */
    font-weight: 500;
    margin: 0;
    letter-spacing: 0.5px;
}

@keyframes spinJotform {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}