/* FlyHappy V5.44 — UI polish, responsive symmetry and lightweight contact actions. */
:root{--fh-v544-edge:var(--fh-fluid-edge,clamp(15px,2.8vw,58px))}
/* Sticky navigation on every page; overrides older performance bundle's position:relative rule. */
.fhv5-header{position:sticky!important;top:0!important;z-index:1090!important;width:100%!important}
/* Search panels align with the content sections below them. */
body.fh-home-page .banner-search-four>.container,.fh-destination-enquiry>.fhv5-container{width:calc(100% - (var(--fh-v544-edge)*2))!important;max-width:none!important;margin-inline:auto!important}
body.fh-home-page #flight-search .banner-form,.fh-destination-search-card,.fh-route-enquiry-card,.fh-lead-search-card{width:100%!important;max-width:none!important;margin-inline:0!important}
/* From/To swap control used by shared search forms. */
.fh-conversion-grid.flight{position:relative}
.fh-flight-swap{position:absolute;left:calc(29.8% - 17px);top:28px;width:34px;height:34px;border:3px solid #fff;border-radius:50%;background:#e74636;color:#fff;display:grid;place-items:center;z-index:12;box-shadow:0 5px 14px rgba(177,48,36,.22);padding:0;transition:transform .15s ease,box-shadow .15s ease}
.fh-flight-swap:hover,.fh-flight-swap:focus-visible{color:#fff;transform:rotate(180deg);box-shadow:0 7px 18px rgba(177,48,36,.30)}
.fh-flight-swap i{font-size:16px}
/* Airline identity on the public fare cards. */
.fh-fare-airline{gap:11px!important}.fh-fare-airline-logo{width:44px;height:44px;border-radius:12px;border:1px solid #dbe7f1;background:#fff;display:grid;place-items:center;overflow:hidden;flex:0 0 44px}.fh-fare-airline-logo img{width:100%;height:100%;object-fit:contain;padding:5px}.fh-fare-airline-logo.is-placeholder{background:#eef7ff;color:#0876cf}.fh-fare-airline-logo.is-placeholder i{font-size:21px}
/* Hotel nightly price clarity. */
.fh-hotel-results .fh-hotel-price-line{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.fh-hotel-results .fh-hotel-price-line strong{font-size:34px!important;line-height:1}.fh-hotel-results .fh-hotel-price-line span{font-size:13px!important;font-weight:800!important;line-height:1.15;color:#36536c!important;max-width:none!important}.fh-featured-fare small:last-child{font-size:12px!important;font-weight:800!important;color:#405d73!important}
/* Floating contact hub. */
.fh-contact-float{position:fixed;right:20px;bottom:calc(22px + env(safe-area-inset-bottom,0px));z-index:9998}.fh-contact-float>summary{list-style:none;width:60px;height:60px;border-radius:20px;display:grid;place-items:center;cursor:pointer;background:linear-gradient(145deg,#ff9e0d,#ef5b32);color:#fff;box-shadow:0 14px 34px rgba(18,51,83,.24);border:3px solid rgba(255,255,255,.94);transition:.18s ease}.fh-contact-float>summary::-webkit-details-marker{display:none}.fh-contact-float>summary svg{width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.fh-contact-float[open]>summary{transform:rotate(4deg) scale(.97)}.fh-contact-float-menu{position:absolute;right:0;bottom:72px;display:grid;gap:9px;min-width:150px}.fh-contact-action{display:flex;align-items:center;justify-content:flex-start;gap:9px;text-decoration:none!important;color:#173452!important;background:#fff;border:1px solid #dce8f2;border-radius:14px;padding:8px 11px 8px 8px;box-shadow:0 9px 24px rgba(18,51,83,.15);font-size:12px;font-weight:800;transform-origin:right bottom}.fh-contact-action span{width:37px;height:37px;border-radius:11px;display:grid;place-items:center;color:#fff;flex:0 0 37px}.fh-contact-action span svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.fh-contact-action.is-whatsapp span{background:#20bd5a}.fh-contact-action.is-whatsapp span svg path:first-child{fill:none}.fh-contact-action.is-whatsapp span svg path:last-child{fill:currentColor;stroke:none}.fh-contact-action.is-phone span{background:#0879d1}.fh-contact-action.is-email span{background:#d54c43}.fh-contact-action:hover{transform:translateX(-3px);border-color:#c7d9e8}.back-to-top-icon{bottom:calc(100px + env(safe-area-inset-bottom,0px))!important}
@media(max-width:991.98px){.fh-flight-swap{left:calc(50% - 17px)}}
@media(max-width:767.98px){
  :root{--fh-v544-edge:12px}
  /* Mobile symmetry: content headings and explanatory text share one left edge/alignment. */
  body:not(.admin-body) main h1,body:not(.admin-body) main h2,body:not(.admin-body) main h3,body:not(.admin-body) main h4,body:not(.admin-body) main h5,body:not(.admin-body) main h6,
  body:not(.admin-body) main p,.fhv5-page-hero,.fhv5-page-hero .fhv5-container,.banner-content,.section-header,.fh-featured-heading,.fh-route-intro,.fh-fare-market-header{text-align:left!important}
  .banner-content{margin-left:0!important;margin-right:0!important}.fh-featured-heading{align-items:flex-start!important}.section-header.mx-auto,.banner-content.mx-auto{margin-left:0!important;margin-right:0!important}
  .fhv5-page-hero .fhv5-crumbs{justify-content:flex-start!important}
  .fh-conversion-grid.flight .fh-airport-live{grid-column:1/-1}
  .fh-flight-swap{left:auto;right:9px;top:70px;width:32px;height:32px;border-width:2px}
  .fh-contact-float{right:14px;bottom:calc(16px + env(safe-area-inset-bottom,0px))}.fh-contact-float>summary{width:54px;height:54px;border-radius:17px}.fh-contact-float-menu{bottom:64px}.fh-contact-action{min-width:142px}.back-to-top-icon{bottom:calc(84px + env(safe-area-inset-bottom,0px))!important}
  .fh-hotel-results .fh-hotel-price-line strong{font-size:31px!important}.fh-hotel-results .fh-hotel-price-line span{font-size:13px!important}
}
