/*
Theme Name: Divi Plus Travel Agency
Theme URI: https://diviextended.com/product/divi-plus/
Description: Divi Plus plugin based ready-to-use Divi child theme designed for Fly & Relax Travel Agency.
Author: Fly & Relax
Author URI: https://flyrelax.local/
Template: Divi
Version: 2.5.0
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

@import url('https://fonts.googleapis.com/css2?family=Kaushan+Script&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Montserrat:wght@400;600;700;800;900&display=swap');

/* Brand Variables */
:root {
  --fr-navy: #06245C;
  --fr-navy-dark: #031538;
  --fr-yellow: #FFB82E;
  --fr-cyan: #08C7D9;
  --fr-white: #FFFFFF;
}

/* Base Body Styles */
body {
  overflow-x: hidden;
}

/* ==========================================================================
   1. GLOBAL BASE & SMOOTH SCROLLING
   ========================================================================== */
html {
  scroll-behavior: smooth;
}

/* ==========================================================================
   2. SCROLL ENTRANCE REVEAL ANIMATION (FOR ROWS & CONTENT)
   ========================================================================== */
.et_pb_section:not(.et_header_layout):not(.et_footer_layout) .et_pb_row {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1) !important;
  will-change: opacity, transform;
}

.et_pb_section:not(.et_header_layout):not(.et_footer_layout) .et_pb_row.fr-visible {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

/* Stagger column entrances inside revealed rows */
.et_pb_section:not(.et_header_layout):not(.et_footer_layout) .et_pb_row.fr-visible .et_pb_column_1_4:nth-child(1),
.et_pb_section:not(.et_header_layout):not(.et_footer_layout) .et_pb_row.fr-visible .et_pb_column_1_3:nth-child(1),
.et_pb_section:not(.et_header_layout):not(.et_footer_layout) .et_pb_row.fr-visible .et_pb_column_1_2:nth-child(1) {
  transition-delay: 0.04s;
}

.et_pb_section:not(.et_header_layout):not(.et_footer_layout) .et_pb_row.fr-visible .et_pb_column_1_4:nth-child(2),
.et_pb_section:not(.et_header_layout):not(.et_footer_layout) .et_pb_row.fr-visible .et_pb_column_1_3:nth-child(2),
.et_pb_section:not(.et_header_layout):not(.et_footer_layout) .et_pb_row.fr-visible .et_pb_column_1_2:nth-child(2) {
  transition-delay: 0.12s;
}

.et_pb_section:not(.et_header_layout):not(.et_footer_layout) .et_pb_row.fr-visible .et_pb_column_1_4:nth-child(3),
.et_pb_section:not(.et_header_layout):not(.et_footer_layout) .et_pb_row.fr-visible .et_pb_column_1_3:nth-child(3) {
  transition-delay: 0.20s;
}

.et_pb_section:not(.et_header_layout):not(.et_footer_layout) .et_pb_row.fr-visible .et_pb_column_1_4:nth-child(4) {
  transition-delay: 0.28s;
}

/* Visual Builder Safe Bypass */
body.et-fb .et_pb_section .et_pb_row,
body.et-bfb .et_pb_section .et_pb_row {
  opacity: 1 !important;
  transform: none !important;
}

/* ==========================================================================
   3. GLOBAL CARDS & COLUMN HOVER SYSTEM (ONE SOLID PIECE)
   ========================================================================== */
/* Lock all inner elements inside card columns to prevent nested/detaching hover boxes */
.et_pb_blurb,
.et_pb_blurb:hover,
.et_pb_main_blurb_image,
.et_pb_main_blurb_image:hover,
.et_pb_blurb_content,
.et_pb_blurb_container,
.et_pb_image_wrap,
.et_pb_column .et_pb_text {
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
  transition: none !important;
}

/* Enable smooth transitions on all card-bearing columns */
.et_pb_section:not(.et_header_layout):not(.et_footer_layout) .et_pb_column {
  transition: transform 0.35s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.35s cubic-bezier(0.165, 0.84, 0.44, 1), border-color 0.35s ease !important;
}

/* Card columns: Entire solid card lifts together seamlessly */
.et_pb_section:not(.et_header_layout):not(.et_footer_layout) .et_pb_column:has(.et_pb_blurb):hover,
.et_pb_section:not(.et_header_layout):not(.et_footer_layout) .et_pb_column.fr-card:hover,
.et_pb_section:not(.et_header_layout):not(.et_footer_layout) .et_pb_row_1_3 .et_pb_column:has(.et_pb_text:only-child):hover,
.et_pb_section:not(.et_header_layout):not(.et_footer_layout) .et_pb_row_1_4 .et_pb_column:has(.et_pb_text:only-child):hover {
  transform: translateY(-8px) !important;
  box-shadow: 0 18px 40px rgba(6, 36, 92, 0.14) !important;
}

/* ==========================================================================
   4. SMOOTH IMAGE ZOOM ON CARDS
   ========================================================================== */
.et_pb_section:not(.et_header_layout):not(.et_footer_layout) .et_pb_column:hover .et_pb_image img,
.et_pb_section:not(.et_header_layout):not(.et_footer_layout) .et_pb_column:hover .dipl_image_mask img {
  transform: scale(1.04);
}
.et_pb_image img,
.dipl_image_mask img {
  transition: transform 0.5s cubic-bezier(0.165, 0.84, 0.44, 1) !important;
}

/* ==========================================================================
   5. FORM INPUT SMOOTH GLOW
   ========================================================================== */
input[type="text"], input[type="email"], input[type="tel"], textarea, select,
.et_pb_contact_field input, .et_pb_contact_field select, .et_pb_contact_field textarea {
  transition: border-color 0.25s ease, box-shadow 0.25s ease !important;
}
input[type="text"]:focus, input[type="email"]:focus, input[type="tel"]:focus, textarea:focus, select:focus,
.et_pb_contact_field input:focus, .et_pb_contact_field select:focus, .et_pb_contact_field textarea:focus {
  border-color: #08C7D9 !important;
  box-shadow: 0 0 0 3px rgba(8, 199, 217, 0.18) !important;
  outline: none !important;
}

/* Mobile Nav Menu Dropdown */
.et_mobile_menu {
  background-color: #FFFFFF !important;
  border-top: 3px solid #08C7D9 !important;
  box-shadow: 0 12px 30px rgba(6, 36, 92, 0.15) !important;
  border-radius: 0 0 12px 12px !important;
  padding: 10px 0 !important;
}
.et_mobile_menu li a {
  color: #06245C !important;
  font-weight: 700 !important;
  padding: 10px 20px !important;
  border-bottom: 1px solid #F1F5F9 !important;
}
.et_mobile_menu li a:hover,
.et_mobile_menu li.current-menu-item a {
  color: #08C7D9 !important;
  background-color: #F8FAFC !important;
}

/* ==========================================================================
   6. MOBILE & TABLET HEADER (TOPBAR: MAIL + QUOTE BUTTON | NAVBAR: LOGO + 3-LINE MENU)
   ========================================================================== */
@media (max-width: 980px) {
  /* --- Top Bar Row (Slim Single-Line Flex Container) --- */
  .et_header_layout .et_pb_section_0_tb_header {
    padding: 0 !important;
  }

  .et_header_layout .et_pb_row_0_tb_header.et_pb_row {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    background-color: #06245C !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 6px 12px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  /* Force Columns in Top Bar to be flex items, NOT 100% width */
  .et_header_layout .et_pb_row_0_tb_header.et_pb_row > .et_pb_column {
    width: auto !important;
    max-width: none !important;
    margin-bottom: 0 !important;
    margin-top: 0 !important;
    padding: 0 !important;
    float: none !important;
    display: flex !important;
    align-items: center !important;
  }

  /* Left Column (Mail) */
  .et_header_layout .et_pb_row_0_tb_header.et_pb_row > .et_pb_column_0_tb_header {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    justify-content: flex-start !important;
    margin-right: 8px !important;
  }

  /* Strictly hide Phone & Address on mobile */
  .et_header_layout .et_pb_column_0_tb_header .et_pb_blurb:not(:first-child),
  .et_header_layout .et_pb_blurb_1_tb_header,
  .et_header_layout .et_pb_blurb_2_tb_header {
    display: none !important;
  }

  /* Email Blurb */
  .et_header_layout .et_pb_column_0_tb_header .et_pb_blurb:first-child,
  .et_header_layout .et_pb_blurb_0_tb_header {
    display: flex !important;
    align-items: center !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .et_header_layout .et_pb_blurb_0_tb_header .et_pb_blurb_content {
    display: flex !important;
    align-items: center !important;
    flex-direction: row !important;
    min-width: 0 !important;
    gap: 6px !important;
  }

  .et_header_layout .et_pb_blurb_0_tb_header .et_pb_main_blurb_image {
    display: inline-flex !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
  }

  .et_header_layout .et_pb_blurb_0_tb_header .et_pb_main_blurb_image .et-pb-icon {
    font-size: 13px !important;
    color: #FFB82E !important;
    line-height: 1 !important;
  }

  .et_header_layout .et_pb_blurb_0_tb_header .et_pb_blurb_description {
    min-width: 0 !important;
    overflow: hidden !important;
  }

  .et_header_layout .et_pb_blurb_0_tb_header .et_pb_blurb_description p {
    font-size: 11.5px !important;
    color: #FFFFFF !important;
    font-weight: 500 !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.2 !important;
  }

  /* Right Column (Request a Quote Button) */
  .et_header_layout .et_pb_row_0_tb_header.et_pb_row > .et_pb_column_1_tb_header {
    flex: 0 0 auto !important;
    justify-content: flex-end !important;
    margin-left: 0 !important;
  }

  .et_header_layout .et_pb_button_0_tb_header_wrapper {
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
  }

  .et_header_layout .et_pb_button_0_tb_header {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #FF8A00 !important;
    background-color: #FF8A00 !important;
    color: #FFFFFF !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    padding: 5px 12px !important;
    border-radius: 20px !important;
    border: none !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    box-shadow: 0 2px 8px rgba(255, 138, 0, 0.25) !important;
    letter-spacing: 0.2px !important;
    line-height: 1.3 !important;
  }

  /* --- Main Navbar Row (White Bar: Logo + 3-line Menu) --- */
  .et_header_layout .et_pb_row_1_tb_header.et_pb_row {
    display: block !important;
    background-color: #FFFFFF !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 8px 14px !important;
    box-shadow: 0 3px 12px rgba(6, 36, 92, 0.06) !important;
    box-sizing: border-box !important;
    margin: 0 !important;
  }

  .et_header_layout .et_pb_row_1_tb_header.et_pb_row > .et_pb_column_2_tb_header {
    display: none !important;
  }

  .et_header_layout .et_pb_row_1_tb_header.et_pb_row > .et_pb_column_3_tb_header {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
  }

  .et_header_layout .et_pb_menu_0_tb_header {
    margin: 0 !important;
    padding: 0 !important;
  }

  .et_header_layout .et_pb_menu_0_tb_header .et_pb_menu_inner_container {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
  }

  .et_header_layout .et_pb_menu_0_tb_header .et_pb_menu__logo-wrap {
    display: flex !important;
    align-items: center !important;
  }

  .et_header_layout .et_pb_menu_0_tb_header .et_pb_menu__logo img {
    max-height: 40px !important;
    width: auto !important;
    display: block !important;
  }

  .et_header_layout .et_pb_menu_0_tb_header .et_mobile_nav_menu {
    display: flex !important;
    align-items: center !important;
  }

  .et_header_layout .mobile_menu_bar {
    display: block !important;
    font-size: 28px !important;
    color: #06245C !important;
    line-height: 1 !important;
    cursor: pointer !important;
  }
}

@media (max-width: 420px) {
  .et_header_layout .et_pb_blurb_0_tb_header .et_pb_blurb_description p {
    font-size: 11px !important;
  }
  .et_header_layout .et_pb_button_0_tb_header {
    font-size: 10.5px !important;
    padding: 4px 10px !important;
  }
}



/* ==========================================================================
   7. MOBILE & TABLET INNER SUBPAGE HERO SECTIONS (CLEAN SOLID DARK BLUE)
   ========================================================================== */
@media (max-width: 980px) {
  /* Replace split 2-color gradients with solid dark blue on mobile & tablet for subpages */
  body:not(.home) .et_pb_section_0:not(.et_header_layout) {
    background: #06245C !important;
    background-color: #06245C !important;
    background-image: none !important;
  }

  /* Ensure subpage hero text and headings are crisp white on mobile */
  body:not(.home) .et_pb_section_0 h1,
  body:not(.home) .et_pb_section_0 h2,
  body:not(.home) .et_pb_section_0 .dipl_double_color_heading .main_header {
    color: #FFFFFF !important;
  }
  
  body:not(.home) .et_pb_section_0 .dipl_double_color_heading .pre_header {
    color: #FFB82E !important;
  }

  body:not(.home) .et_pb_section_0 p {
    color: #E2E8F0 !important;
  }

  /* Mobile button alignment in subpage hero */
  body:not(.home) .et_pb_section_0 .et_pb_button {
    display: inline-block !important;
    margin: 6px 4px !important;
  }
}

/* ==========================================================================
   7b. HOMEPAGE HERO SECTION MOBILE & TABLET ENHANCEMENTS
   ========================================================================== */
@media (max-width: 980px) {
  /* Keep travel background and responsive spacing on homepage hero */
  .home .et_pb_section_0 {
    padding-top: 15px !important;
    padding-bottom: 45px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    background-position: center center !important;
    background-size: cover !important;
  }

  /* Make the floating card clean, solid white, perfectly centered and crisp */
  .home .et_pb_section_0 .et_pb_row {
    background: #FFFFFF !important;
    background-image: none !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 28px 20px 32px 20px !important;
    border-radius: 20px !important;
    box-shadow: 0 15px 40px rgba(6, 36, 92, 0.12) !important;
    border: 1px solid #EEF2F6 !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
  }

  .home .et_pb_section_0 .et_pb_column_3_5 {
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .home .et_pb_section_0 .et_pb_column_2_5 {
    display: none !important;
  }

  /* Pre-header script: Discover The World Your Way */
  .home .et_pb_section_0 .dipl_double_color_heading .pre_header {
    font-family: 'Kaushan Script', cursive !important;
    color: #08C7D9 !important;
    font-size: 22px !important;
    line-height: 1.3em !important;
    display: block !important;
    margin-bottom: 4px !important;
    text-align: left !important;
  }

  /* Main header: FLY & RELAX */
  .home .et_pb_section_0 .dipl_double_color_heading .main_header,
  .home .et_pb_section_0 h1 {
    font-family: 'Montserrat', sans-serif !important;
    font-weight: 800 !important;
    color: #06245C !important;
    font-size: 32px !important;
    line-height: 1.15em !important;
    display: block !important;
    margin-top: 2px !important;
    margin-bottom: 12px !important;
    text-align: left !important;
    letter-spacing: -0.5px !important;
  }

  /* Separator */
  .home .et_pb_section_0 .dipl_separator {
    width: 70px !important;
    margin: 0 0 16px 0 !important;
  }

  /* Text Container */
  .home .et_pb_section_0 .et_pb_text {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    text-align: justify !important;
  }

  /* Subheading: Travel More. Worry Less. */
  .home .et_pb_section_0 .et_pb_text p:first-of-type {
    color: #06245C !important;
    font-size: 19px !important;
    font-weight: 700 !important;
    font-family: 'Montserrat', sans-serif !important;
    line-height: 1.3em !important;
    margin-bottom: 10px !important;
    text-align: left !important;
  }

  /* Description Paragraphs */
.home .et_pb_section_0 .et_pb_text p:not(:first-child) {
	color: #475569 !important;
    font-size: 15px !important;
    line-height: 1.65em !important;
    margin-bottom: 10px !important;
    text-align: justify !important;
    text-justify: inter-word !important;
  }

  /* Buttons Container */
  .home .et_pb_section_0 .et_pb_text div:has(.et_pb_button),
  .home .et_pb_section_0 .et_pb_text div[style*="display:flex"] {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    width: 100% !important;
    margin-top: 20px !important;
  }

  /* CTA Buttons */
  .home .et_pb_section_0 .et_pb_button {
    width: 100% !important;
    text-align: center !important;
    display: block !important;
    padding: 13px 20px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    border-radius: 30px !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    box-shadow: 0 4px 15px rgba(6, 36, 92, 0.1) !important;
  }
}


/* ==========================================================================
   8. MOBILE 2-COLUMN DESTINATION GRIDS (HOME, PACKAGES, SPECIAL DEALS ONLY)
   ========================================================================== */
@media (max-width: 767px) {
  /*
     Target strictly the destination sections requested:
     1. Home: Featured Destinations (#destination)
     2. Packages: Featured Holiday Destinations (.dt-destination-row.et_pb_row_1_3)
     3. Special Deals: Popular Deal Destinations (.page-id-96389 .et_pb_row_1_3)
  */
  #destination .et_pb_row_1_3,
  .page-id-95764 .dt-destination-row.et_pb_row_1_3,
  .page-id-96389 .et_pb_row_1_3 {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    margin-bottom: 0px !important;
    box-sizing: border-box !important;
  }

  #destination .et_pb_row_1_3 > .et_pb_column,
  .page-id-95764 .dt-destination-row.et_pb_row_1_3 > .et_pb_column,
  .page-id-96389 .et_pb_row_1_3 > .et_pb_column {
    display: flex !important;
    flex-direction: column !important;
    width: 48.5% !important;
    max-width: 48.5% !important;
    flex: 0 0 48.5% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    margin-bottom: 14px !important;
    float: none !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  /* Compact padding for destination cards on mobile */
  #destination .et_pb_row_1_3 > .et_pb_column {
    padding: 10px 10px 18px 10px !important;
  }
  .page-id-95764 .dt-destination-row.et_pb_row_1_3 > .et_pb_column,
  .page-id-96389 .et_pb_row_1_3 > .et_pb_column {
    padding: 0px 0px 16px 0px !important;
  }

  /* Mobile destination card image sizing */
  #destination .et_pb_row_1_3 .et_pb_image,
  .page-id-95764 .dt-destination-row.et_pb_row_1_3 .et_pb_image,
  .page-id-96389 .et_pb_row_1_3 .et_pb_image {
    margin-bottom: 10px !important;
  }
  
  #destination .et_pb_row_1_3 .et_pb_image img,
  .page-id-95764 .dt-destination-row.et_pb_row_1_3 .et_pb_image img,
  .page-id-96389 .et_pb_row_1_3 .et_pb_image img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
  }

  /* Mobile card titles */
  #destination .et_pb_row_1_3 h4,
  .page-id-95764 .dt-destination-row.et_pb_row_1_3 h4,
  .page-id-96389 .et_pb_row_1_3 h4,
  #destination .et_pb_row_1_3 h3,
  .page-id-95764 .dt-destination-row.et_pb_row_1_3 h3,
  .page-id-96389 .et_pb_row_1_3 h3 {
    font-size: 14px !important;
    line-height: 1.3em !important;
    margin-top: 4px !important;
    margin-bottom: 4px !important;
    padding-left: 6px !important;
    padding-right: 6px !important;
  }

  /* Mobile card text description */
  #destination .et_pb_row_1_3 p,
  .page-id-95764 .dt-destination-row.et_pb_row_1_3 p,
  .page-id-96389 .et_pb_row_1_3 p {
    font-size: 11.5px !important;
    line-height: 1.4em !important;
    margin-bottom: 8px !important;
    padding-left: 6px !important;
    padding-right: 6px !important;
  }

  /* Mobile button inside card if any */
  #destination .et_pb_row_1_3 .et_pb_button,
  .page-id-95764 .dt-destination-row.et_pb_row_1_3 .et_pb_button,
  .page-id-96389 .et_pb_row_1_3 .et_pb_button {
    font-size: 11px !important;
    padding: 5px 10px !important;
    margin: 4px 6px !important;
  }
}

/* ==========================================================================
   9. REQUEST A QUOTE - CONTACT FORM 7 COMPLETE STYLES
   ========================================================================== */
.wpcf7 form.wpcf7-form,
.fr-quote-form {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  display: block !important;
}

.fr-quote-form p {
  margin: 0 0 4px 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

.fr-quote-form br {
  display: none !important;
}

.fr-quote-form .fr-form-row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  margin-left: -12px !important;
  margin-right: -12px !important;
  margin-bottom: 8px !important;
  box-sizing: border-box !important;
  width: calc(100% + 24px) !important;
}

.fr-quote-form .fr-form-col {
  padding-left: 12px !important;
  padding-right: 12px !important;
  margin-bottom: 20px !important;
  box-sizing: border-box !important;
}

.fr-quote-form .fr-col-half {
  flex: 0 0 50% !important;
  max-width: 50% !important;
  width: 50% !important;
}

.fr-quote-form .fr-col-full {
  flex: 0 0 100% !important;
  max-width: 100% !important;
  width: 100% !important;
}

.fr-quote-form .fr-field-label {
  display: block !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #06245C !important;
  margin-bottom: 8px !important;
  line-height: 1.3 !important;
  text-align: left !important;
}

.fr-quote-form .fr-req {
  color: #EF4444 !important;
  font-weight: 700 !important;
}

.fr-quote-form .wpcf7-form-control-wrap {
  display: block !important;
  width: 100% !important;
  position: relative !important;
}

.fr-quote-form input.wpcf7-text,
.fr-quote-form input.wpcf7-email,
.fr-quote-form input.wpcf7-tel,
.fr-quote-form select.wpcf7-select,
.fr-quote-form textarea.wpcf7-textarea,
.fr-quote-form input[type="text"],
.fr-quote-form input[type="email"],
.fr-quote-form input[type="tel"],
.fr-quote-form select,
.fr-quote-form textarea {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  background-color: #F8FAFC !important;
  color: #06245C !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 12px !important;
  padding: 14px 18px !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
  box-sizing: border-box !important;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease !important;
  outline: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

.fr-quote-form select.wpcf7-select,
.fr-quote-form select {
  cursor: pointer !important;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2306245C' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e") !important;
  background-repeat: no-repeat !important;
  background-position: right 18px center !important;
  background-size: 16px !important;
  padding-right: 45px !important;
}

.fr-quote-form textarea.wpcf7-textarea,
.fr-quote-form textarea {
  resize: vertical !important;
  min-height: 120px !important;
}

.fr-quote-form input:focus,
.fr-quote-form select:focus,
.fr-quote-form textarea:focus {
  border-color: #08C7D9 !important;
  background-color: #FFFFFF !important;
  box-shadow: 0 0 0 3px rgba(8, 199, 217, 0.18) !important;
}

.fr-quote-form input::placeholder,
.fr-quote-form textarea::placeholder {
  color: #94A3B8 !important;
  opacity: 1 !important;
}

.fr-quote-form .fr-form-submit-row {
  text-align: center !important;
  margin-top: 20px !important;
  margin-bottom: 10px !important;
  width: 100% !important;
}

.fr-quote-form input[type="submit"].fr-quote-submit,
.fr-quote-form input[type="submit"],
.fr-quote-form .wpcf7-submit {
  background-color: #FFB82E !important;
  color: #06245C !important;
  font-family: 'Montserrat', sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px !important;
  padding: 16px 48px !important;
  border: none !important;
  border-radius: 30px !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
  box-shadow: 0 4px 15px rgba(255, 184, 46, 0.3) !important;
  display: inline-block !important;
  text-transform: none !important;
}

.fr-quote-form input[type="submit"].fr-quote-submit:hover,
.fr-quote-form input[type="submit"]:hover,
.fr-quote-form .wpcf7-submit:hover {
  background-color: #08C7D9 !important;
  color: #FFFFFF !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 20px rgba(8, 199, 217, 0.35) !important;
}

/* CF7 Validation & Feedback Messages */
.fr-quote-form .wpcf7-not-valid-tip {
  color: #EF4444 !important;
  font-size: 13px !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  margin-top: 6px !important;
  font-weight: 500 !important;
  display: block !important;
  text-align: left !important;
}

.fr-quote-form .wpcf7-not-valid {
  border-color: #EF4444 !important;
  background-color: #FEF2F2 !important;
}

.wpcf7-response-output {
  border-radius: 12px !important;
  padding: 15px 24px !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  text-align: center !important;
  margin-top: 25px !important;
}

.wpcf7 form.sent .wpcf7-response-output {
  border: 2px solid #10B981 !important;
  background-color: #ECFDF5 !important;
  color: #065F46 !important;
}

.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output {
  border: 2px solid #EF4444 !important;
  background-color: #FEF2F2 !important;
  color: #991B1B !important;
}

.wpcf7 .wpcf7-spinner {
  margin: 12px auto 0 auto !important;
  display: block !important;
}

/* Mobile Responsiveness for CF7 */
@media (max-width: 767px) {
  .fr-quote-form .fr-form-row {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
  }
  .fr-quote-form .fr-form-col {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-bottom: 16px !important;
  }
  .fr-quote-form .fr-col-half {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  .fr-quote-form input[type="submit"].fr-quote-submit,
  .fr-quote-form input[type="submit"],
  .fr-quote-form .wpcf7-submit {
    width: 100% !important;
    padding: 15px 24px !important;
  }
}