/*================
 Template Name: AppCo App Landing Page Template
 Description: AppCo is app and product landing page template.
 Version: 1.0
 Author: https://themeforest.net/user/themetags
=======================*/

/*TABLE OF CONTENTS*/
/*=====================
01. RESET CSS
02. BASE TYPOGRAPHY
03. PRE DEFINE CLASS CSS
04. HEADER CSS
05. HERO SECTION CSS
06. PROMO SECTION CSS
07. ABOUT US CSS
08. FEATURE SECTION CSS
09. VIDEO PROMO CSS
10. COUNTER CSS
11. PRICING CSS
12. TESTIMONIAL CSS
13. CONTACT FORM CSS
14. FOOTER CSS
=======================*/

/* -----------------------------------------
			   01. RESET CSS
-------------------------------------------- */

/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

body {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: '';
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}
html {
  overflow-y: scroll;
  font-size: 16px;
}

/* -----------------------------------------
           02. BASE TYPOGRAPHY
-------------------------------------------- */

body,
h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6,
p,
.navbar,
.brand,
.btn,
.btn-simple,
a,
.td-name,
td {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
}

body {
  background-color: #ffffff;
  font-family: 'Open Sans', sans-serif;
  font-size: 18px;
  color: #555;
  font-weight: 400;
  line-height: 1.8;
}

p {
  margin-bottom: 1.25em;
}

h1,
h2,
h3,
h4,
h5 {
  margin: 0 0 1rem;
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  line-height: 1.21;
  color: initial;
}

h1 {
  margin-top: 0;
  font-size: 3.052em;
}

h2 {
  font-size: 2.441em;
}

h3 {
  font-size: 1.25em;
}

h4 {
  font-size: 1.563em;
}

h5 {
  font-size: 1.25em;
}

small,
.text_small {
  font-size: 0.8em;
}

strong,
b {
  font-weight: 500;
  font-family: 'Montserrat', sans-serif;
}
.badge {
  display: inline;
  padding: 0.25rem 0.5rem;
  font-size: 80%;
  font-weight: 700;
  font-family: 'Montserrat', sans-serif;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: 0.375rem;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out,
    border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.badge-pill {
  padding-right: 0.875em;
  padding-left: 0.875em;
  border-radius: 50rem;
}
/*========================================
        03. PRE DEFINE CLASS CSS
==========================================*/
.ptb-100 {
  padding: 100px 0;
}
.ptb-55 {
  padding: 55px 0;
}
.pt-100 {
  padding-top: 100px;
}
.pt-150 {
  padding-top: 150px;
}
.pt-trip {
  padding-top: 160px;
}
@media (max-width: 992px) {
  .pt-trip {
    padding-top: 70px;
  }
}
.pb-100 {
  padding-bottom: 100px;
}
.mt--120 {
  margin-top: -120px;
}
.gray-light-bg {
  background: #f4f7fa;
}
.primary-bg {
  background: #6730e3;
}
.secondary-bg {
  background: #9629e6;
}
.color-primary {
  color: #6730e3;
}
.color-secondary {
  color: #9629e6;
}
.white-bg {
  background: #ffffff;
}

.bg-color-1 {
  background: #399fb6;
}
.bg-color-2 {
  background: #0ba077;
}
.bg-color-3 {
  background: #6582ed;
}
.bg-color-4 {
  background: #399fb6;
}

.icon-color-1 {
  background: #004858;
  color: #ffffff;
}
.icon-color-2 {
  background-color: #d9d9d9;
  color: #c90957;
}
.icon-color-3 {
  background-color: #efe3e3;
  color: #ed7265;
}
.icon-color-4 {
  background-color: #ddedea;
  color: #45d7ba;
}
.icon-color-5 {
  background-color: #ffe0e3;
  color: #bd2130;
}
.icon-color-6 {
  background-color: #e2e8ff;
  color: #6582ed;
}

.outline-btn,
.solid-btn,
.primary-solid-btn {
  padding: 10px 25px;
  font-family: 'Open Sans', sans-serif;
}

.primary-solid-btn {
  border-color: #004858;
  background: #004858;
  color: #ffffff;
}
.primary-solid-btn:hover {
  background: transparent;
  color: #081d43;
  border-color: #081d43;
}
.solid-btn {
  color: #fff;
  -webkit-box-shadow: 0 20px 30px 0 rgba(0, 72, 88, 0.2);
  box-shadow: 0 20px 30px 0 rgba(0, 72, 88, 0.2);
  background: #004858;
  border: 2px solid #004858;
  border-radius: 30px;
}

.trip-solid-btn {
  display: inline-block;
  padding: 12px 26px;
  border-radius: 999px;
  border: 2px solid #004858;
  background: #004858;
  color: #ffffff;
  font-weight: 600;
  letter-spacing: 0.3px;
  position: relative;
  overflow: hidden;
  transition: all 0.25s ease;
}

/* white wipe overlay that removes the fill on hover */
.trip-solid-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #ffffff;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s ease;
  z-index: 0;
}

/* keep button text above the animation */
.trip-solid-btn span,
.trip-solid-btn::after {
  position: relative;
  z-index: 1;
}

/* if you use pseudo text like before */
.trip-solid-btn::after {
  content: "Book Now" !important;
}

/* hover = “unfill” */
.trip-solid-btn:hover {
  color: #004858;
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(0, 72, 88, 0.25);
}

.trip-solid-btn:hover::before {
  transform: scaleX(1);
}

/* click */
.trip-solid-btn:active {
  transform: translateY(0);
  box-shadow: 0 4px 10px rgba(0, 72, 88, 0.2);
}

.solid-btn-base {
  color: #fff;
  -webkit-box-shadow: 0 20px 30px 0 rgba(0, 72, 88, , 0.2);
  /* box-shadow: 0 20px 30px 0 rgba(57, 165, 72, 0.2); */
  /* background-image: linear-gradient(
    to right,
    rgba(252, 82, 63, 0.9),
    rgba(220, 40, 27, 0.9)
  ) !important; */
  font-weight: bold;
  border-radius: 60px;
}

.solid-btn-success {
  color: #fff;
  -webkit-box-shadow: 0 20px 30px 0 rgba(67, 37, 204, 0.2);
  box-shadow: 0 20px 30px 0 rgba(57, 165, 72, 0.2);
  background: #288c7b;
  border: 2px solid #288c7b;
  border-radius: 30px;
}

/* .solid-btn-fail {
  color: #fff;
  -webkit-box-shadow: 0 20px 30px 0 rgba(67, 37, 204, 0.2);
  box-shadow: 0 20px 30px 0 rgba(57, 165, 72, 0.2);
  background: #000;
  border: 2px solid #000;
  border-radius: 30px;
} */

.solid-btn:hover {
  background: transparent;
  color: #004858;
  -webkit-box-shadow: none;
  box-shadow: none;
}

.outline-btn {
  border-radius: 30px;
  color: #004858;
  display: inline-block;
  border: 2px solid #004858;
}
.outline-btn:hover {
  color: #fff;
  background: #004858;
  -webkit-box-shadow: 0 20px 30px 0 rgba(0, 72, 88, 0.2);
  box-shadow: 0 20px 30px 0 rgba(0, 72, 88, 0.2);
}

.trip-outline-btn {
  display: inline-block;
  padding: 12px 26px;
  border-radius: 999px;
  border: 2px solid #004858;
  color: #004858;
  background: transparent;
  font-weight: 600;
  letter-spacing: 0.3px;
  position: relative;
  overflow: hidden;
  transition: all 0.25s ease;
}

/* animated background fill */
.trip-outline-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #004858;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s ease;
  z-index: 0;
}

/* ✅ your label text (you were using :after) */
.trip-outline-btn::after {
  content: "Get Directions" !important;
  position: relative;
  z-index: 1;
  display: inline-block;
}

/* hover */
.trip-outline-btn:hover {
  color: #ffffff;
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(0, 72, 88, 0.25);
}

.trip-outline-btn:hover::before {
  transform: scaleX(1);
}

/* click */
.trip-outline-btn:active {
  transform: translateY(0);
  box-shadow: 0 4px 10px rgba(0, 72, 88, 0.2);
}

.primary-bg h1,
.primary-bg p {
  color: #fff;
}
.google-play-btn,
.app-store-btn {
  padding: 12px 30px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
}
.google-play-btn {
  background: #ffffff;
  border-color: #ffffff;
  color: #6730e3;
  border-radius: 30px;
}
.google-play-btn:hover {
  background: transparent;
  color: #ffffff;
}
.app-store-btn {
  border-radius: 30px;
  background: #ffffff;
  color: #e33733;
}
.app-store-btn:hover {
  color: #ffffff;
  background-image: linear-gradient(
    to right,
    rgba(252, 82, 63, 0.9),
    rgba(220, 40, 27, 0.9)
  ) !important;
}

/*form field css*/
.form-control {
  border-color: #ebebeb;
  padding: 0.975rem 0.85rem;
}
.form-control:focus {
  outline: none;
  box-shadow: none;
}

input[type]::-webkit-input-placeholder,
textarea::-webkit-input-placeholder,
select::-webkit-input-placeholder,
select.form-control.has-value {
  color: #9a9a9a !important;
  font-size: 16px;
}

input[type]:-moz-placeholder,
textarea:-moz-placeholder,
select:-moz-placeholder,
select.form-control.has-value {
  /* Firefox 18- */
  color: #9a9a9a;
  font-size: 16px;
}

input[type]::-moz-placeholder,
textarea::-moz-placeholder,
select::-moz-placeholder,
select.form-control.has-value {
  /* Firefox 19+ */
  color: #9a9a9a;
  font-size: 16px;
}

input[type]:-ms-input-placeholder,
textarea:-ms-input-placeholder,
select:-ms-input-placeholder,
select.form-control.has-value {
  color: #9a9a9a;
  font-size: 16px;
}

.section-heading h2 span {
  font-weight: 400;
  font-size: 2rem;
}

/*=========================================
            04. HEADER CSS
============================================*/
.main-menu {
  position: inherit;
  top: inherit;
  left: inherit;
  right: inherit;
  width: auto;
  height: auto;
  transition: all 0.3s ease-in-out;
}
.main-menu ul {
  text-align: left;
  padding: 0;
  margin: 0;
}
.main-menu ul li {
  padding: 15px 20px;
}

.main-menu ul > li a {
  color: #363232;
  display: block;
  font-weight: 600;
  background-color: transparent;
  border-radius: 0;
}
.main-menu ul > li .submenu {
  width: 400px;
background-color: rgba(255, 255, 255);
  border: 1px solid #ebebeb;
  border-radius: 10px;
  position: absolute;
  top: 60px;
  left: -4.2em;
  right: 0;
  visibility: hidden;
  opacity: 0;
  transition: all 0.3s ease-in-out;
  transform: rotateX(-90deg) rotateY(0);
  transform-origin: 0 0;
  box-shadow: 5px 7px 7px rgba(0, 0, 0, 0.3);
}
.main-menu ul > li .submenu.dropdown-menu {
  margin: 0;
  padding: 0;
}
.main-menu ul > li:hover .submenu {
  visibility: visible;
  opacity: 1;
  transform: rotateX(0) rotateY(0);
 left: 0;
}
/* Dropdowns are click-only — no hover show */
.dropdown-menu {
  display: none;
}
.dropdown > .dropdown-toggle:active {
  pointer-events: none;
}

.main-menu ul > li .submenu > a {
  padding: 0;
  display: block;
}
.main-menu ul > li .submenu > a {
  padding: 10px 15px;
  margin: 0;
  color: #363232;
}
.main-menu ul > li .submenu > a:hover {
  background: #004858;
  color: #ffffff;
  border-radius: 10px;
}
.main-menu ul > li .submenu > a:active {
  background: inherit;
}
.main-menu ul > li .submenu:before,
.main-menu ul > li .submenu:after {
  content: '';
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  border: 12px solid transparent;
  border-bottom: 12px solid #f4f7fa;
  top: -25px;
  left: calc(50% - 12px);
}
.main-menu ul li.dropdown .dropdown-toggle::after {
  position: relative;
  top: 2px;
}
.navbar-brand {
  font-size: inherit;
  height: auto;
  padding: 0;
  margin-bottom: -8px;
}
.navbar-toggler {
  background: transparent;
  padding: 0.5rem 0.75rem;
  font-size: inherit;
  transition: all 0.3s ease-in-out;
}

.navbar-toggler span {
  color: #ffffff;
  opacity: 1;
  font-size: 24px;
  display: block;
  line-height: 1;
}
.navbar-toggler:focus,
.navbar-toggler:hover {
  outline: none;
  opacity: 1;
}
.custom-nav ul li a {
  color: #fafafa;
  opacity: 0.8;
}
.affix {
  background-color: #202877;
  -webkit-transition: padding 0.2s ease-out;
  -moz-transition: padding 0.2s ease-out;
  -o-transition: padding 0.2s ease-out;
  transition: padding 0.2s ease-out;
}
.white-bg.affix,
.custom-nav.affix {
  background: #ffffff;
  border-bottom: 1px solid #ebebeb;
}

.white-bg.affix ul li a {
  color: #081d43 !important;
  opacity: 0.8;
}
.white-bg.custom-nav ul li a:hover {
  opacity: 1;
}
.bg-transparent ul li a {
  color: #ffffff;
  font-weight: 700;
}
.bg-transparent ul li a:hover,
.white-bg.affix ul li a:hover {
  opacity: 1;
}
.bg-transparent.affix {
  background-image: linear-gradient(
    to right,
    rgba(40, 140, 123, 0.95),
    rgba(0, 192, 159, 0.93)
  ) !important;
}

/* .bg-transparent {
  background-image: linear-gradient(
    to right,
    rgba(40, 140, 123, 0.95),
    rgba(0, 192, 159, 0.73)
  ) !important;
} */

.navbar {
  transition: all 0.3s ease-in-out;
}
@media (min-width: 320px) and (max-width: 992px) {
  .navbar {
    background: linear-gradient(135deg, #004858 0%, #0a7a8f 100%) !important;
    padding: 6px 12px 8px;
    height: auto;
  }
  .navbar .navbar-toggler {
    margin-right: 0;
    margin-left: auto;
    padding-right: 16px;
  }
  .img-fluid-exploroff {
    width: 60px;
    padding-top: 0px;
    margin-left: 0;
  }

  .white-bg.affix,
  .custom-nav.affix,
  .navbar.white-bg {
    background: #ffffff !important;
    border-bottom: 1px solid #ebebeb;
  }
  .white-bg.custom-nav ul li a,
  .custom-nav ul li a {
    color: #081d43 !important;
  }
  .white-bg.navbar .navbar-toggler span {
    color: #202877;
  }

  .main-menu ul > li .submenu {
    left: 0;
    top: 10px;
    position: relative;
  }
  .main-menu ul li {
    padding: 15px 0 0;
  }
  .main-menu ul > li a {
    margin: 0;
  }
  .main-menu ul > li .submenu:before,
  .main-menu ul > li .submenu:after {
    left: 15px;
  }

  .ptb-100 {
    padding: 55px 0;
  }
  .pt-100 {
    padding-top: 55px;
  }
  .pb-100 {
    padding-bottom: 55px;
  }
}

.main-menu ul>li .submenu:before,
.main-menu ul>li .submenu:after {
  display: none !important;
  content: none !important;
}

@media (min-width: 992px) {
  .navbar {
    border-bottom: 1px solid rgba(0, 0, 0, 0);
    background: transparent;
    -o-transition: border-bottom 0.3s ease-in-out, background 0.3s ease-in-out,
      padding 0.3s ease-in-out;
    -webkit-transition: border-bottom 0.3s ease-in-out,
      background 0.3s ease-in-out, padding 0.3s ease-in-out;
    -moz-transition: border-bottom 0.3s ease-in-out, background 0.3s ease-in-out,
      padding 0.3s ease-in-out;
    transition: border-bottom 0.3s ease-in-out, background 0.3s ease-in-out,
      padding 0.3s ease-in-out;
    -webkit-backface-visibility: hidden;
  }
}

/*=========================================
            05. HERO SECTION CSS
============================================*/
.hero-animation-img,
.hero-content-left {
  position: relative;
  z-index: 2;
}

.hero-content-left h1 {
  font-weight: 500;
  font-size: 42px;
  line-height: 60px;
}
.hero-content-left h1 span {
  font-weight: 700;
}
@media (min-width: 992px) {
  .hero-animation-img {
    position: relative;
    display: block;
    width: 100%;
  }

  .animation-one {
    -webkit-animation: move-one 7s ease-in-out infinite;
    animation: move-one 7s ease-in-out infinite;
  }
  @keyframes move-one {
    0% {
      -webkit-transform: translateX(0) translateY(5px);
      transform: translateX(0) translateY(5px);
    }
    50% {
      -webkit-transform: translateX(0) translateY(-5px);
      transform: translateX(0) translateY(-5px);
    }
    100% {
      -webkit-transform: translateX(0) translateY(5px);
      transform: translateX(0) translateY(5px);
    }
  }
  @-webkit-keyframes move-one {
    0% {
      -webkit-transform: translateX(0) translateY(5px);
      transform: translateX(0) translateY(5px);
    }
    50% {
      -webkit-transform: translateX(0) translateY(-5px);
      transform: translateX(0) translateY(-5px);
    }
    100% {
      -webkit-transform: translateX(0) translateY(5px);
      transform: translateX(0) translateY(5px);
    }
  }

  .animation-two {
    position: absolute;
    bottom: -10px;
    -webkit-animation: move-two 8s ease-in-out infinite;
    animation: move-two 8s ease-in-out infinite;
  }
  @-webkit-keyframes move-two {
    0% {
      -webkit-transform: translateX(-25px) translateY(-225px);
      transform: translateX(-25px) translateY(-225px);
    }
    50% {
      -webkit-transform: translateX(-25px) translateY(-205px);
      transform: translateX(-25px) translateY(-205px);
    }
    100% {
      -webkit-transform: translateX(-25px) translateY(-225px);
      transform: translateX(-25px) translateY(-225px);
    }
  }
  @keyframes move-two {
    0% {
      -webkit-transform: translateX(-25px) translateY(-225px);
      transform: translateX(-25px) translateY(-225px);
    }
    50% {
      -webkit-transform: translateX(-25px) translateY(-205px);
      transform: translateX(-25px) translateY(-205px);
    }
    100% {
      -webkit-transform: translateX(-25px) translateY(-225px);
      transform: translateX(-25px) translateY(-225px);
    }
  }

  .animation-three {
    position: absolute;
    -webkit-animation: move-three 9s ease-in-out infinite;
    animation: move-three 9s ease-in-out infinite;
  }
  @-webkit-keyframes move-three {
    0% {
      -webkit-transform: translateX(-45px) translateY(-225px);
      transform: translateX(-45px) translateY(-225px);
    }
    50% {
      -webkit-transform: translateX(-45px) translateY(-205px);
      transform: translateX(-45px) translateY(-205px);
    }
    100% {
      -webkit-transform: translateX(-45px) translateY(-225px);
      transform: translateX(-45px) translateY(-225px);
    }
  }
  @keyframes move-three {
    0% {
      -webkit-transform: translateX(-45px) translateY(-225px);
      transform: translateX(-45px) translateY(-225px);
    }
    50% {
      -webkit-transform: translateX(-45px) translateY(-205px);
      transform: translateX(-45px) translateY(-205px);
    }
    100% {
      -webkit-transform: translateX(-45px) translateY(-225px);
      transform: translateX(-45px) translateY(-225px);
    }
  }
  .animation-four {
    position: absolute;
    -webkit-animation: move-four 6s ease-in-out infinite;
    animation: move-four 6s ease-in-out infinite;
  }
  .animation-new {
    position: absolute;
    bottom: 10px;
  }
  @-webkit-keyframes move-four {
    0% {
      -webkit-transform: translateX(330px) translateY(-215px);
      transform: translateX(330px) translateY(-215px);
    }
    50% {
      -webkit-transform: translateX(330px) translateY(-240px);
      transform: translateX(330px) translateY(-240px);
    }
    100% {
      -webkit-transform: translateX(330px) translateY(-215px);
      transform: translateX(330px) translateY(-215px);
    }
  }
  @keyframes move-four {
    0% {
      -webkit-transform: translateX(330px) translateY(-215px);
      transform: translateX(330px) translateY(-215px);
    }
    50% {
      -webkit-transform: translateX(330px) translateY(-240px);
      transform: translateX(330px) translateY(-240px);
    }
    100% {
      -webkit-transform: translateX(330px) translateY(-215px);
      transform: translateX(330px) translateY(-215px);
    }
  }
}

@media (min-width: 992px) and (max-width: 1199px) {
  .animation-four,
  .animation-new {
    display: none !important;
  }
}
.hero-content-left,
.sign-up-form-wrap {
  z-index: 2;
}
.bottom-img {
  position: relative;
  bottom: -10px;
  width: 100%;
}
.bottom-img img,
.bottom-img-absolute img {
  width: 100%;
}
@media (min-width: 1650px) {
  /* Only hide non-absolute bottom images on very wide screens */
  .bottom-img img { display: none; }
}

.bottom-img-absolute {
  bottom: -40px;
  width: 100%;
  position: absolute;
  line-height: 0;
  z-index: 0;
  display: block;
}

@media (max-width: 991px) {
  .bottom-img-absolute {
    bottom: -180px;
  }
}

@media (max-width: 575px) {
  .bottom-img-absolute {
    bottom: -380px;
  }
}

/* Mobile — switch to relative so it flows with content */
@media (max-width: 575px) {
  .bottom-img-absolute {
    position: relative;
    bottom: auto;
  }
  .bottom-img-absolute img {
    width: 100%;
    height: auto;
  }
}
.shape-bg {
  bottom: -8px;
}

.section-shape {
  bottom: -8px;
  left: 0;
  right: 0;
}
.section-shape img {
  width: 100%;
}

.hero-7 {
  width: 100%;
  position: relative;
}
.hero-7:after {
  content: ' ';
  background-image: url('../img/hero-bg-2.jpg');
  background-size: cover;
  background-position: center center;
  position: absolute;
  width: 100%;
  border-radius: 0;
  transform: skewY(-5deg);
  top: -180px;
  right: 0;
  bottom: 140px;
  z-index: -1;
}
.hero-7:before {
  position: absolute;
  content: '';
  background: rgba(0, 67, 139, 0.85);
  width: 100%;
  height: 100%;
  left: 0;
  transform: skewY(-5deg);
  top: -140px;
  right: 0;
  bottom: -50px;
}

/*hero subscribe form*/
.subscribe-form {
  position: relative;
  display: block;
  width: 85%;
}
.subscribe-form #email {
  background: #fdfcfb;
  font-family: inherit;
  color: #737373;
  letter-spacing: 1px;
  text-indent: 5%;
  border-radius: 30px;
}
.subscribe-form input.button {
  position: absolute;
  right: 4px;
  border-radius: 30px;
  padding: initial;
  top: 4px;
  bottom: 4px;
  width: 25%;
}
/*subscribe form footer*/

.subscribe-form-footer {
  position: absolute;
  top: 8px;
  width: 100%;
}

.subscribe-form-footer input.form-control {
  padding: 1.275rem 0.95rem;
  border-radius: 30px;
}
.subscribe-form-footer input.button {
  border-radius: 30px;
}
.subscribe-form-footer .d-flex {
  position: relative;
  width: 100%;
}
.subscribe-form-footer .d-flex .form-control {
  width: 100%;
  padding-right: 120px;
  border-radius: 30px;
  padding-top: 1.275rem;
  padding-bottom: 1.275rem;
}
.subscribe-form-footer button[type="submit"] {
  position: absolute !important;
  right: 4px !important;
  top: 4px !important;
  bottom: 4px !important;
  left: auto !important;
  width: auto !important;
  height: auto !important;
  padding: 0 22px !important;
  border-radius: 30px !important;
  background: #004858 !important;
  border: none !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  transition: background 0.15s !important;
}
.subscribe-form-footer button[type="submit"]:hover:not(:disabled) {
  background: #003540 !important;
}
.subscribe-form-footer button[type="submit"]:disabled {
  opacity: 0.65 !important;
  cursor: not-allowed !important;
}
/* ── CTA Search Section (replaces subscribe form) ─────────────────────────── */
.xcta-search-section {
  position: relative;
  padding: 90px 0 56px;
  text-align: center;
}
.xcta-wave {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  display: block;
  pointer-events: none;
}
.xcta-search-inner {
  position: relative;
  z-index: 2;
  max-width: 780px;
  margin: 0 auto;
}
.xcta-search-headline {
  font-size: 2.2rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: 10px;
  line-height: 1.2;
  text-shadow: 0 1px 4px rgba(0,0,0,0.25);
}
.xcta-search-sub {
  font-size: 1.05rem;
  color: rgba(255,255,255,0.88);
  margin-bottom: 28px;
  text-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.xcta-desktop-search { display: flex; justify-content: center; }
.xcta-mobile-search  { display: none; }
@media (max-width: 767px) {
  .xcta-search-headline { font-size: 1.6rem; }
  .xcta-search-sub      { font-size: 0.95rem; margin-bottom: 20px; }
  .xcta-desktop-search  { display: none; }
  .xcta-mobile-search   { display: flex; justify-content: center; }
  .xcta-search-section  { padding: 80px 0 36px; }
}

.shape-img {
  position: relative;
  z-index: 2;
  width: 100%;
}
.shape-img img {
  width: 100%;
  position: absolute;
  max-width: none;
  height: auto;
}

/*animation shape*/

@-webkit-keyframes p1 {
  0% {
    left: 0px;
    top: 0px;
  }
  50% {
    left: 0;
    top: 800px;
  }
  100% {
    left: 0px;
    top: 0px;
  }
}

@keyframes p1 {
  0% {
    left: 800px;
    top: 0px;
  }
  50% {
    left: 0px;
    top: 800px;
  }
  100% {
    left: 800px;
    top: 0px;
  }
}

@-webkit-keyframes p2 {
  0% {
    left: 0;
    top: 100px;
  }
  50% {
    left: 0;
    top: 800px;
  }
  100% {
    left: 0;
    top: 100px;
  }
}

@keyframes p2 {
  0% {
    left: 0;
    top: 100px;
  }
  50% {
    left: 0px;
    top: 800px;
  }
  100% {
    left: 0;
    top: 100px;
  }
}

@-webkit-keyframes p3 {
  0% {
    left: 300px;
    top: 900px;
  }
  50% {
    left: 500px;
    top: 0px;
  }
  100% {
    left: 300px;
    top: 900px;
  }
}

@keyframes p3 {
  0% {
    left: 300px;
    top: 900px;
  }
  50% {
    left: 500px;
    top: 0px;
  }
  100% {
    left: 300px;
    top: 900px;
  }
}

@-webkit-keyframes p4 {
  0% {
    left: 1000px;
    top: 500px;
  }
  50% {
    left: 00px;
    top: 500px;
  }
  100% {
    left: 1000px;
    top: 500px;
  }
}

@keyframes p4 {
  0% {
    left: 1000px;
    top: 500px;
  }
  50% {
    left: 0px;
    top: 500px;
  }
  100% {
    left: 1000px;
    top: 500px;
  }
}

@-webkit-keyframes p5 {
  0% {
    left: 500px;
    top: 1000px;
  }
  50% {
    left: 50%;
    top: 0px;
  }
  100% {
    left: 500px;
    top: 1000px;
  }
}

@keyframes p5 {
  0% {
    left: 500px;
    top: 1000px;
  }
  50% {
    left: 50%;
    top: 0px;
  }
  100% {
    left: 500px;
    top: 1000px;
  }
}

@-webkit-keyframes p6 {
  0% {
    left: 500px;
    top: 200px;
  }
  50% {
    left: 50%;
    top: 70%;
  }
  100% {
    left: 500px;
    top: 200px;
  }
}

@keyframes p6 {
  0% {
    left: 500px;
    top: 200px;
  }
  50% {
    left: 50%;
    top: 70%;
  }
  100% {
    left: 500px;
    top: 200px;
  }
}

@-webkit-keyframes p7 {
  0% {
    left: 50px;
    top: 10%;
  }
  50% {
    left: 50%;
    top: 10%;
  }
  100% {
    left: 50px;
    top: 10%;
  }
}

@keyframes p7 {
  0% {
    left: 50px;
    top: 10%;
  }
  50% {
    left: 50%;
    top: 10%;
  }
  100% {
    left: 50px;
    top: 10%;
  }
}

@-webkit-keyframes p8 {
  0% {
    left: 0;
    top: 20%;
  }
  50% {
    left: 50%;
    top: 20%;
  }
  100% {
    left: 0;
    top: 20%;
  }
}

@keyframes p8 {
  0% {
    left: 0;
    top: 20%;
  }
  50% {
    left: 50%;
    top: 20%;
  }
  100% {
    left: 0;
    top: 20%;
  }
}

@-webkit-keyframes p9 {
  0% {
    left: 1000px;
    top: 100px;
  }
  50% {
    left: 500px;
    top: 950px;
  }
  100% {
    left: 1000px;
    top: 100px;
  }
}

@keyframes p9 {
  0% {
    left: 1000px;
    top: 100px;
  }
  50% {
    left: 500px;
    top: 950px;
  }
  100% {
    left: 1000px;
    top: 100px;
  }
}

.circles {
  overflow: hidden;
  width: 100%;
  position: absolute;
  height: 1200px;
}
.point {
  border-radius: 50%;
  z-index: 999;
  position: absolute;
}
.animated-point-1 {
  background-color: #ED0000;
  height: 12px;
  width: 12px;
  position: relative;
  -webkit-animation-name: p1;
  -webkit-animation-duration: 80s;
  -webkit-animation-iteration-count: infinite;
  animation-name: p1;
  animation-duration: 80s;
  animation-iteration-count: infinite;
}

.animated-point-2 {
  background-color: green;
  height: 15px;
  width: 15px;
  position: relative;
  -webkit-animation-name: p2;
  -webkit-animation-duration: 90s;
  -webkit-animation-iteration-count: infinite;
  animation-name: p2;
  animation-duration: 90s;
  animation-iteration-count: infinite;
}

.animated-point-3 {
  background-color: orange;
  height: 8px;
  width: 8px;
  position: relative;
  -webkit-animation-name: p3;
  -webkit-animation-duration: 80s;
  -webkit-animation-iteration-count: infinite;
  animation-name: p3;
  animation-duration: 80s;
  animation-iteration-count: infinite;
}

.animated-point-4 {
  background-color: pink;
  height: 10px;
  width: 10px;
  position: relative;
  -webkit-animation-name: p4;
  -webkit-animation-duration: 80s;
  -webkit-animation-iteration-count: infinite;
  animation-name: p4;
  animation-duration: 80s;
  animation-iteration-count: infinite;
}

.animated-point-5 {
  background-color: #ffc64c;
  height: 12px;
  width: 12px;
  position: relative;
  -webkit-animation-name: p5;
  -webkit-animation-duration: 50s;
  -webkit-animation-iteration-count: infinite;
  animation-name: p5;
  animation-duration: 50s;
  animation-iteration-count: infinite;
}

.animated-point-6 {
  background-color: #ffc64c;
  height: 10px;
  width: 10px;
  position: relative;
  -webkit-animation-name: p6;
  -webkit-animation-duration: 70s;
  -webkit-animation-iteration-count: infinite;
  animation-name: p6;
  animation-duration: 70s;
  animation-iteration-count: infinite;
}

.animated-point-7 {
  background-color: orange;
  height: 14px;
  width: 14px;
  position: relative;
  -webkit-animation-name: p7;
  -webkit-animation-duration: 70s;
  -webkit-animation-iteration-count: infinite;
  animation-name: p7;
  animation-duration: 70s;
  animation-iteration-count: infinite;
}

.animated-point-8 {
  background-color: purple;
  height: 8px;
  width: 8px;
  position: relative;
  -webkit-animation-name: p8;
  -webkit-animation-duration: 50s;
  -webkit-animation-iteration-count: infinite;
  animation-name: p8;
  animation-duration: 50s;
  animation-iteration-count: infinite;
}

.animated-point-9 {
  background-color: purple;
  height: 12px;
  width: 12px;
  position: relative;
  -webkit-animation-name: p9;
  -webkit-animation-duration: 100s;
  -webkit-animation-iteration-count: infinite;
  animation-name: p9;
  animation-duration: 100s;
  animation-iteration-count: infinite;
}

/*hero 2 css*/
.hero-section-2,
.hero-section-3 {
  position: relative;
  overflow: hidden;
}

.hero-section-2:before {
  content: '';
  position: absolute;
  z-index: -1;
  width: 100%;
  height: 175%;
  bottom: 0;
  background-image: url(../../img/hero-bg-shape-3.svg);
  background-repeat: no-repeat;
  background-size: cover;
}

.shape-image {
  position: absolute;
  width: 100%;
  height: auto;
  bottom: 76px;
  z-index: 0;
  left: 268px;
  overflow: hidden;
  background-size: cover;
  right: 0;
}

@media (min-width: 320px) and (max-width: 767px) {
  .shape-image {
    display: none;
  }
}

/*hero background video css*/

.video-section-wrap {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
}
.video-section-wrap .background-video-overly {
  display: flex;
  flex-direction: column;
  justify-content: center;
  background-image: linear-gradient(
    to right,
    rgba(32, 40, 119, 0.64),
    rgba(55, 46, 149, 0.65),
    rgba(83, 49, 177, 0.72),
    rgba(114, 48, 205, 0.62),
    rgba(150, 41, 230, 0.6)
  );
}

/*=========================================
            06. PROMO SECTION CSS
============================================*/
.single-promo span {
  font-size: 70px;
  line-height: inherit;
  margin-bottom: 20px;
}
.single-promo-1 {
  box-shadow: 0 3px 20px 0px rgba(0, 0, 0, 0.12);
  border-radius: 1.5rem !important;
}
.single-promo-1 span {
  font-size: 35px;
  background-image: url('../../img/promo-icon-bg.svg');
  background-size: 150px;
  padding: 42px;
  background-repeat: no-repeat;
  background-position: 45% 20%;
}
.single-promo img {
  width: 70px;
  height: 70px;
  margin-bottom: 20px;
}
.single-promo .img-full-box {
  width: auto !important;
  height: auto !important;
}
.single-promo-hover {
  transition: all 0.2s ease-out;
  will-change: transform;
}
.single-promo-hover:hover {
  transform: translateY(-10px);
  box-shadow: 0 1rem 3rem rgba(31, 45, 61, 0.125) !important;
}

/*promo section new style*/

.single-promo-card {
  transition: all 0.2s ease;
  box-shadow: 0 3px 20px 0 rgba(0, 0, 0, 0.12);
}
.card.single-promo-card {
  border: 1px solid #eff2f7;
  border-radius: 1rem;
}
.card.single-promo-card:hover {
  background: #6730e3;
  color: #ffffff;
}
.card.single-promo-card:hover span,
.card.single-promo-card:hover h5,
.card.single-promo-card:hover p.text-muted {
  color: #ffffff !important;
}
.single-promo-card .card-body {
  padding: 1.5rem;
}

/*client section css*/
.client-section-wrap ul {
  display: block;
}
.client-section-wrap ul li {
  padding-right: 50px;
  margin: 5px 0;
}
.client-section-wrap ul li img {
  transition: all 0.3s ease-in;
}
.client-section-wrap ul li img:hover {
  transform: scale(1.2);
  -webkit-transform: scale(1.2);
  -moz-transform: scale(1.2);
  filter: none;
  -webkit-filter: grayscale(0%);
}
.client-section-wrap ul li:last-child {
  padding-right: 0;
}

.single-client {
  display: -ms-grid;
  display: grid;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -ms-grid-column-align: center;
  justify-items: center;
  width: 60%;
  height: auto;
  -webkit-transition: -webkit-transform 0.5s ease-in;
  transition: -webkit-transform 0.5s ease-in;
  transition: transform 0.5s ease-in;
  transition: transform 0.5s ease-in, -webkit-transform 0.5s ease-in;
  margin: 8px auto;
}
.single-client img {
  max-width: 100%;
  max-height: 100%;
  -webkit-filter: opacity(50%);
  /* Safari 6.0 - 9.0 */
  filter: opacity(90%);
  width: 100%;
}
.single-client:hover {
  -webkit-transform: scale(1.2);
  -ms-transform: scale(1.2);
  transform: scale(1.2);
}
.single-client:hover .client-img {
  -webkit-filter: none;
  filter: none;
  opacity: 1;
}

/*=========================================
            07. ABOUT US CSS
============================================*/
.switchable {
  position: relative;
}

.imageblock-section {
  position: relative;
  padding: 0;
}
.imageblock-section .imageblock-section-img {
  position: absolute;
  height: 100%;
  top: 0;
  z-index: 2;
  padding: 0;
}
.switchable.switchable-content div[class*='col-']:first-child {
  float: right;
  right: 0;
  left: auto;
}
.switchable > div[class*='col-'] {
  padding: 0;
}

.background-image-holder {
  position: absolute;
  height: 100%;
  top: 0;
  left: 0;
  background-size: cover !important;
  background-position: 50% 50% !important;
  z-index: 0;
  transition: opacity 0.3s linear;
  -webkit-transition: opacity 0.3s linear;
  opacity: 0;
  background: #252525;
}

.background-image-holder:not([class*='col-']) {
  width: 100%;
}

.switchable div[class*='col-']:first-child {
  float: left;
  right: auto;
}

@media (max-width: 767px) {
  .switchable .imageblock-section-img[class*='col-'] {
    float: none !important;
  }
}

.switchable > div[class*='col-'] {
  padding: 0;
}
@media (max-width: 767px) {
  .imageblock-section .imageblock-section-img {
    position: relative;
    min-height: 18.57142857em;
  }
}

@media (min-width: 768px) {
  .switchable .container > .row {
    flex-flow: row-reverse;
  }
  .switchable.switchable-content .container > .row {
    flex-flow: row;
  }
}

.single-card {
  width: calc(50% - 25px);
  margin-left: 25px;
  margin-bottom: 50px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  transition: box-shadow 0.3s ease-in-out 0s;
  box-sizing: border-box;
  box-shadow: 0 8px 20px 0 rgba(16, 66, 97, 0.07);
  padding: 35px 15px;
  border-radius: 10px;
  float: left;
  text-align: center;
}
.single-card:nth-child(2n) {
  position: relative;
  top: 40px;
}
.single-card h3 {
  font-size: 34px;
  color: inherit !important;
  margin: 0;
  line-height: 34px;
  font-weight: 700;
  position: relative;
}

.single-card span {
  font-size: 2.95714286em;
  line-height: 1.75125468em;
}

.counter-card {
  float: none;
  display: block;
  overflow: hidden;
  width: auto;
  margin: auto;
}
.box-animation-1 {
  animation: animation-1 5s ease-out infinite;
}
.box-animation-2 {
  animation: animation-2 4s ease-out infinite;
}
.box-animation-3 {
  animation: animation-3 5s ease-out infinite;
}
.box-animation-4 {
  animation: animation-4 4s ease-out infinite;
}

@keyframes animation-1 {
  50% {
    transform: translate(0, 20px);
  }
}
@keyframes animation-2 {
  50% {
    transform: translate(0, 35px);
  }
}
@keyframes animation-3 {
  50% {
    transform: translate(0, 25px);
  }
}
@keyframes animation-4 {
  50% {
    transform: translate(0, 40px);
  }
}
@keyframes shrink {
  0% {
    width: 90%;
    margin: 0 5%;
  }
  50% {
    width: 60%;
    margin: 0 18%;
  }
  100% {
    width: 90%;
    margin: 0 5%;
  }
}

/*about us app*/
.overflow-hidden {
  overflow: hidden;
}
.background-shape-img {
  position: relative;
}
.background-shape-img:before {
  content: '';
  position: absolute;
  z-index: -1;
  width: 100%;
  height: 100%;
  top: 0;
  background-image: url('../../img/about-bg-shape.svg');
  background-repeat: no-repeat;
  background-size: cover;
}

.background-shape-img-story {
  position: relative;
}
.background-shape-img-story:before {
  content: '';
  position: absolute;
  z-index: -1;
  width: 100%;
  height: 134%;
  top: 0;
  background-image: url('../../img/about-bg-shape.svg');
  background-repeat: no-repeat;
  background-size: cover;
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg);
}

/*=========================================
            08. FEATURE SECTION CSS
============================================*/
.icon-md {
  font-size: 32px;
  line-height: 35px;
}
.icon-lg {
  font-size: 70px;
  line-height: 75px;
}
.single-feature .icon {
  font-size: 22px;
  line-height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
}

.icon-box-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  margin-bottom: 40px;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.icon-box {
  height: 65px;
  width: 65px;
  color: #9629e6;
  text-align: center;

  border-radius: 4px;
  -webkit-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  margin-bottom: 0;
  margin-right: 30px;
  background: #fff;
  padding: 15px;

  background: #ffffff 0% 0% no-repeat padding-box;
  box-shadow: 0px 5px 6px #00000091;
  border-radius: 12px;
  opacity: 1;
}
.icon-box img {
  vertical-align: middle;
  border-style: none;
}
.icon-box.gray-light-bg {
  background: #f4f7fa;
}
.icon-box-wrap p {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.single-feature-hover {
  z-index: 0;
  position: relative;
  background: #ffffff;
  box-shadow: 0 0 0 1px #ebebeb;
  padding: 10px;
  box-sizing: border-box;
  -webkit-transition: box-shadow 0.3s ease, z-index 0s 0.3s ease,
    -webkit-transform 0.3s ease;
  transition: box-shadow 0.3s ease, z-index 0s 0.3s ease,
    -webkit-transform 0.3s ease;
  transition: box-shadow 0.3s ease, transform 0.3s ease, z-index 0s 0.3s ease;
  transition: box-shadow 0.3s ease, transform 0.3s ease, z-index 0s 0.3s ease,
    -webkit-transform 0.3s ease;
}

.single-feature-hover:hover {
  z-index: 1;
  box-shadow: 0 8px 50px rgba(0, 0, 0, 0.2);
  -webkit-transform: scale(1.05);
  transform: scale(1.05);
  border-radius: 4px;
  -webkit-transition: box-shadow 0.1s ease, z-index 0s 0.1s ease,
    -webkit-transform 0.1s ease;
  transition: box-shadow 0.1s ease, z-index 0s 0.1s ease,
    -webkit-transform 0.1s ease;
  transition: box-shadow 0.1s ease, transform 0.1s ease, z-index 0s 0.1s ease;
  transition: box-shadow 0.1s ease, transform 0.1s ease, z-index 0s 0.1s ease,
    -webkit-transform 0.3s ease;
}
.border {
  border-color: #ebebeb;
}
.single-services span {
  margin-bottom: 15px;
  display: block;
}

.feature-list li {
  position: relative;
  padding: 0 0 10px 22px;
  margin: 0 0 10px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.feature-list li:before {
  content: '\e6af';
  position: absolute;
  top: 1px;
  left: 0;
  font-family: 'themify';
  font-weight: 400;
  color: #9629e6;
}

/*feature new style*/

.icon-shape {
  display: inline-block;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  text-align: center;
  border-radius: 0.25rem;
}

.icon {
  width: 50px;
  height: 50px;
}
.icon span {
  line-height: 50px;
  font-size: 22px;
}
/*feature tab style*/
.feature-tab.nav-tabs {
  border-bottom: 0;
}
.feature-tab li a.nav-link {
  border: 1px solid #ebebeb;
  -webkit-box-shadow: 0 30px 40px 0 rgba(52, 27, 159, 0.1);
  box-shadow: 0 30px 40px 0 rgba(52, 27, 159, 0.1);
  text-align: center;
  padding: 15px;
  border-radius: 6px;
  min-width: 110px;
  transition: all 0.3s ease-in;
}
.feature-tab li a.nav-link.active,
.feature-tab li a.nav-link:hover {
  border-color: #ebebeb;
  background: #03738c;
  color: #ffffff;
}
.feature-tab li a.nav-link.active {
  background: #03738c;
  color: #ffffff;
}
.feature-tab li a.nav-link.active span,
.feature-tab li a.nav-link:hover span {
  color: #ffffff;
}
.feature-tab li a.h6 {
  font-size: 14px;
  line-height: 16px;
}
.feature-tab li {
  margin-right: 15px;
}
.feature-tab li:last-child {
  margin-right: 0;
}
.feature-tab li a span {
  display: block;
  font-size: 25px;
  margin-bottom: 10px;
  color: #03738c;
}
.feature-tab-content {
  margin-top: 25px;
  min-height: 260px;
}
/*=========================================
            09. VIDEO PROMO CSS
============================================*/
.background-img {
  position: relative;
  width: 100%;
  display: block;
}

.background-img:before {
  position: absolute;
  content: '';
  background-image: linear-gradient(135deg, #004858 0%, #0a7a8f 100%) !important;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}

.video-promo-content {
  transition: all 800ms ease-in-out;
}
.video-promo-content a img {
  transition: all 800ms ease-in-out;
}
.video-promo-content a img:hover {
  -ms-transform: rotate(45deg); /* IE 9 */
  -webkit-transform: rotate(45deg); /* Chrome, Safari, Opera */
  transform: rotate(45deg);
}

.video-promo-content h5 {
  color: #ffffff;
}
.video-play-icon {
  width: 50px;
  height: 50px;
  line-height: 50px;
  border-radius: 50%;
  position: relative;
  z-index: 4;
  display: inline-block;
  border: 2px solid #e33733;
  cursor: pointer;
  background: #ffffff;
  color: #e33733;
}
.video-play-icon span {
  position: absolute;
  text-align: center;
  width: 100%;
  top: 25%;
  font-size: 23px;
  left: 2px;
}
.video-promo-content a.video-play-icon-without-bip:hover span {
  color: #ffffff;
}
.video-promo-content a.video-play-icon {
  border-radius: 50%;
  display: block;
  -webkit-animation: ripple-white 1s linear infinite;
  animation: ripple-white 1s linear infinite;
  -webkit-transition: 0.5s;
}

.video-promo-content a.video-play-icon-without-bip {
  animation: none;
}
.video-promo-content a.video-play-icon-without-bip:hover {
  -webkit-animation: ripple-white 1s linear infinite;
  animation: ripple-white 1s linear infinite;
  -webkit-transition: 0.5s;
  background-color: #ee403a;
}
@-webkit-keyframes ripple-white {
  0% {
    -webkit-box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.1),
      0 0 0 10px rgba(255, 255, 255, 0.1), 0 0 0 20px rgba(255, 255, 255, 0.1);
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.1),
      0 0 0 10px rgba(255, 255, 255, 0.1), 0 0 0 20px rgba(255, 255, 255, 0.1);
  }
  100% {
    -webkit-box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.1),
      0 0 0 20px rgba(255, 255, 255, 0.1), 0 0 0 30px rgba(255, 255, 255, 0);
    box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.1),
      0 0 0 20px rgba(255, 255, 255, 0.1), 0 0 0 30px rgba(255, 255, 255, 0);
  }
}

@keyframes ripple-white {
  0% {
    -webkit-box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.1),
      0 0 0 10px rgba(255, 255, 255, 0.1), 0 0 0 20px rgba(255, 255, 255, 0.1);
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.1),
      0 0 0 10px rgba(255, 255, 255, 0.1), 0 0 0 20px rgba(255, 255, 255, 0.1);
  }
  100% {
    -webkit-box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.1),
      0 0 0 20px rgba(255, 255, 255, 0.1), 0 0 0 30px rgba(255, 255, 255, 0);
    box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.1),
      0 0 0 20px rgba(255, 255, 255, 0.1), 0 0 0 30px rgba(255, 255, 255, 0);
  }
}
/*=========================================
            10. COUNTER CSS
============================================*/
.counter-wrap {
  background: #ffffff;
  width: 100%;
  display: block;
  position: relative;
  bottom: -60px;
  padding: 30px 0;
  border-radius: 6px;
  box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.12);
}

.counter-wrap {
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  grid-auto-flow: dense;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(255px, 1fr));
}

.counter-wrap li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  overflow: hidden;
  text-align: center;
  border-right: 1px solid #ebebeb;
  margin: 10px 0 !important;
}
.counter-wrap li:last-child {
  border-right: none;
  margin-right: 0 !important;
}
.single-counter span {
  font-weight: bold;
  font-family: 'Montserrat', sans-serif;
  color: #9629e6;
  font-size: 25px;
  line-height: 28px;
}

/*=========================================
            11. PRICING CSS
============================================*/
.card.single-pricing-pack {
  transition: all 0.2s ease 0s;
  box-shadow: 0 0 0 1px #ebebeb;
  border: none;
  border-top: 4px solid transparent;

  background: #ffffff 0% 0% no-repeat padding-box;
  box-shadow: 0px 5px 6px #00000091;
  border-radius: 35px;
  opacity: 1;
  margin-bottom: 3em;
}

/* .card.single-pricing-pack:hover {
  z-index: 2;
  border-radius: 1rem !important;
}
.single-pricing-pack:hover {
  box-shadow: 0 1rem 3rem rgba(31, 45, 61, 0.125) !important;
  transform: translate(0, -5px);
  border-top: 4px solid #227b68;
} */
.single-pricing-pack .card-body {
  color: rgb(132, 146, 166);
  flex: 1 1 auto;
  padding: 1.5rem;
}
.pricing-header {
  position: relative;
  background: transparent;
}
.pricing-img {
  width: 100%;
  height: 120px;
  border-radius: 50%;
  display: inline-block;
  position: relative;
  line-height: 120px;
  margin: 0 auto;
  padding: 12px;
}

.font-weight-bolder {
  font-weight: 700;
  font-family: 'Montserrat', sans-serif;
}

.pricing-header::after {
  content: '';
  display: block;
  width: 80%;
  position: absolute;
  bottom: 0;
  left: 50%;
  margin-left: -40%;
  height: 1px;
  background: radial-gradient(
    at center center,
    rgb(222, 228, 239) 0px,
    rgba(255, 255, 255, 0) 75%
  );
}

.pricing-feature-list li {
  font-size: 16px;
  line-height: 24px;
  color: #555555
}

/*price new style*/
/* .popular-price {
  box-shadow: 0 1rem 3rem rgba(31, 45, 61, 0.125) !important;
  transform: translate(0, -5px);
  border-top: 4px solid #227b68 !important;
} */

/*pricing faq*/

.accordion-faq .card {
  margin-bottom: 1.5rem;
  border-radius: 0.375rem !important;
  box-shadow: 0 0.75rem 1.5rem rgba(18, 38, 63, 0.03);
  background: #ffffff;
}
.accordion-faq.accordion > .card {
  overflow: hidden;
}

.accordion-faq.accordion .card-header {
  position: relative;
  cursor: pointer;
  background: #ffffff;
}
.accordion-faq.accordion .card-header:first-child {
  border-radius: calc(0.375rem - 1px) calc(0.375rem - 1px) 0 0;
}
.accordion-faq.accordion .card-header {
  border-bottom: 1px solid #eff2f7;
}
.accordion-faq.accordion > .card:not(:first-of-type) .card-header:first-child {
  border-radius: 0;
}

.accordion-faq.accordion > .card .card-header {
  margin-bottom: -1px;
}
.accordion-faq.accordion > .card .card-header h3 {
  font-weight: 600;
  font-family: 'Montserrat', sans-serif;
  width: 95%;
}
.accordion-faq.accordion .card-header[aria-expanded='false']:after {
  content: '+';
}
.accordion-faq.accordion .card-header[aria-expanded='true']:after {
  content: '-';
}
.accordion-faq.accordion .card-header:after {
  content: '+';
  position: absolute;
  right: 1.5rem;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
}

/*sccreenshot css*/
.screen-slider-content {
  position: relative;
}

.screenshot-frame {
  background-image: url(../../img/phone-frame2.png);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  display: block;
  width: 285px;
  height: 518px;
  position: absolute;
  top: -10px;
  left: calc(50% + 0.5px);
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  z-index: 2;
  border-radius: 40px;
}
@media (min-width: 320px) and (max-width: 1200px) {
  .screenshot-frame {
    display: none;
  }
}
.screen-carousel .owl-item img {
  -webkit-transform: scale(0.85);
  transform: scale(0.85);
  -webkit-transition: 1s;
  transition: 1s;
  border: 1px solid #ebebeb;
  border-radius: 30px;
}

.screen-carousel .owl-item.active.center img {
  -webkit-transform: scale(1);
  transform: scale(1);
}

/*=========================================
            12. TESTIMONIAL CSS
============================================*/
.testimonial-wrap {
  padding: 30px;
}
.testimonial-wrap span.icon {
  font-size: 35px;
  color: #202877;
}
.testimonial-wrap blockquote {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  height: 127px;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  margin-bottom: 0;
}
blockquote:before {
  content: '\201C';
  position: absolute;
  top: 22px;
  left: 60px;
  transform: translate(-50%, -50%);
  width: 3rem;
  height: 2rem;
  font: 6em/1.08em sans-serif;
  color: #d8d8d8;
}
.client-say {
  position: relative;
  display: inline-block;
}
.client-say p {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  height: 115px;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  margin-bottom: 0;
  float: left;
}
.client-say img {
  position: relative;
  width: 6% !important;
  display: initial !important;
  top: 5px;
  margin-right: 10px;
}

.author-img {
  width: 4.425rem;
  height: 4.425rem;
  line-height: 4.425rem;
}

.dot-indicator.owl-theme button.owl-dot span {
  display: inline-block;
  width: 12px;
  height: 12px;
  box-sizing: border-box;
  background: #d8d8d8;
  border-radius: 50%;
  -webkit-transform: scale(0.8);
  transform: scale(0.8);
  transition: 0.3s;
}
.dot-indicator.owl-theme button.owl-dot:focus {
  border: none;
  outline: none;
}
.dot-indicator.owl-theme button.owl-dot.active span {
  background: #9629e6;
  border: 2px solid transparent;
  -webkit-transform: scale(0.8);
  transform: scale(0.8);
}
.screen-carousel.dot-indicator.owl-theme .owl-nav.disabled + .owl-dots {
  margin-top: 20px;
}

.arrow-indicator.owl-theme .owl-nav {
  position: absolute;
  left: 0;
  margin-top: 4px;
}
.arrow-indicator.owl-theme .owl-nav [class*='owl-'] {
  width: 40px;
  height: 40px;
  margin: 2px;
  box-shadow: 0 0 0 1px #ebebeb;
  background: #ffffff;
  border-radius: 50%;
}

.arrow-indicator.owl-theme .owl-nav [class*='owl-']:focus {
  outline: none;
}
.arrow-indicator.owl-theme .owl-nav [class*='owl-'] span {
  font-size: 20px;
  line-height: 20px;
  color: #9629e6;
}
.arrow-indicator.owl-theme .owl-nav [class*='owl-']:hover {
  background: #9629e6 !important;
}
.arrow-indicator.owl-theme .owl-nav [class*='owl-']:hover span {
  color: #ffffff !important;
}

.background-shape-right {
  position: relative;
}
.background-shape-right:before {
  content: '';
  position: absolute;
  z-index: -1;
  width: 100%;
  height: 100%;
  top: 0;
  left: 50%;
  background-image: url(../../img/shape-bg-right.svg);
  background-repeat: no-repeat;
}

/*=========================================
            13. CONTACT FORM CSS
============================================*/
.sign-up-form-wrap {
  display: block;
  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12);
}

.shadow-lg {
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
}
.list-creative > li + li {
  border-top: 1px solid #ebebeb;
}
@media (min-width: 992px) {
  .list-creative > li {
    padding: 30px 0;
  }
}
.list-terms-medium {
  position: relative;
  padding-left: 30px;
}
.list-terms-medium::before {
  content: '';
  position: absolute;
  top: 2px;
  left: 0;
  bottom: 2px;
  width: 4px;
}
.list-terms-medium dt {
  letter-spacing: 0.1em;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 14px;
  color: #565656;
}
.list-creative .address::before {
  background: #9629e6;
}
.list-creative .phone::before {
  background: #202877;
}
.list-creative .email::before {
  background: #e23531;
}
.list-terms-medium a,
.list-terms-medium p,
.list-terms-medium a:active,
.list-terms-medium a:focus {
  color: #9b9b9b;
  text-decoration: none;
}
.list-terms-medium a:hover {
  color: #9629e6;
}

.google-map {
  height: 100%;
  margin-bottom: -8px;
}

.google-map iframe {
  width: 100%;
  border: 0;
  filter: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><filter id='grayscale'><feColorMatrix type='matrix' values='0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0'/></filter></svg>#grayscale"); /* Firefox 10+ */
  -webkit-filter: grayscale(99%); /* Chrome 19+ & Safari 6+ */
  -webkit-backface-visibility: hidden; /* Fix for transition flickering */
}

/*our team css*/
.single-team-member .team-info {
  background-image: linear-gradient(
    to right,
    rgba(236, 113, 93, 0.9),
    rgba(151, 37, 18, 0.9)
  );
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 0.3s, visibility 0.3s;
  transition: opacity 0.3s, visibility 0.3s;
}
.team-image img {
  display: block;
  height: 100%;
  width: 100%;
  overflow: hidden;
  box-shadow: 5px 5px 10px grey;
}
.team-info {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.team-info h5 {
  -webkit-transition-delay: 0.2s;
  transition-delay: 0.2s;
  color: inherit;
}
.team-info h6 {
  -webkit-transition-delay: 0.1s;
  transition-delay: 0.1s;
}
.team-info h5,
.team-info h6,
.team-info .team-social {
  -webkit-transform: translateY(25px);
  transform: translateY(25px);
  opacity: 0;
  -webkit-transition: opacity 0.45s cubic-bezier(0.19, 1, 0.22, 1),
    -webkit-transform 0.45s cubic-bezier(0.19, 1, 0.22, 1);
  transition: opacity 0.45s cubic-bezier(0.19, 1, 0.22, 1),
    -webkit-transform 0.45s cubic-bezier(0.19, 1, 0.22, 1);
  transition: transform 0.45s cubic-bezier(0.19, 1, 0.22, 1),
    opacity 0.45s cubic-bezier(0.19, 1, 0.22, 1);
  transition: transform 0.45s cubic-bezier(0.19, 1, 0.22, 1),
    opacity 0.45s cubic-bezier(0.19, 1, 0.22, 1),
    -webkit-transform 0.45s cubic-bezier(0.19, 1, 0.22, 1);
}
.single-team-member:hover .team-info {
  opacity: 1;
  visibility: visible;
}
.single-team-member:hover .team-info h6 {
  opacity: 1;
}
.single-team-member:hover .team-info h5,
.single-team-member:hover .team-info h6,
.single-team-member:hover .team-info .team-social {
  opacity: 1;
  -webkit-transform: translateY(0);
  transform: translateY(0);
}
.team-social li a {
  text-decoration: none;
  color: inherit;
  opacity: 0.8;
}
.team-social li a:hover {
  opacity: 1;
}
.team-social li a span {
  padding: 6px;
}

.visible-info {
  width: 100%;
}

/*=========================================
            15. FOOTER CSS
============================================*/

.background-img-2 {
  position: relative;
  display: block;
  width: 100%;
}
.background-img-2:before {
  position: absolute;
  content: '';
  background-image: linear-gradient(135deg, #004858 0%, #0a7a8f 100%) !important;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}

.page-footer {
  background: #fff;
  padding: 50px 0 20px;
}

.social-list-wrap ul li span {
  font-size: 16px;
  line-height: inherit;
  vertical-align: middle;
}
.footer-nav-wrap ul li strong {
  font-size: 18px;
  line-height: 19px;
  font-weight: bold;
}
.footer-nav-wrap ul li a {
  font-size: 16px;
  line-height: 19px;
  color: inherit;
  opacity: 0.8;
}
.support-list li span {
  font-size: 20px;
  line-height: 25px;
}
.footer-nav-wrap ul li a:hover,
.copyright-text a:hover,
.social-list li a:hover {
  opacity: 1;
  text-decoration: none;
}

.copyright-text {
  font-size: 16px;
}
.social-list li span {
  padding: 6px;
}
.social-list li a,
.copyright-text a {
  color: #202877;
  opacity: 0.8;
}

/* CUSTOM */

.img-fluid-exploroff {
  max-width: 90%;
  height: auto;
  padding-top: 20px;
}

.img-fluid-phone {
  max-width: 100%;
  height: auto;
}

.team-mobile {
  text-align: center;
  margin-top: 16px;
  margin-bottom: 24px;
  display: none;
}

.team-mobile-icon {
  color: #000;
}

@media (min-width: 320px) and (max-width: 992px) {
  .img-fluid-exploroff {
    width: 60px;
    padding-top: 6px;
    padding-bottom: 6px;
    margin-left: 20px;
  }
  .team-mobile {
    display: block;
  }
  .mt-4 {
    margin-top: 4px !important;
  }
}
@media (max-width: 575px) and (min-width: 320px) {
  .img-fluid-phone {
    height: 500px;
    object-fit: cover;
  }
  .team-mobile {
    display: block;
  }
  .mt-4 {
    margin-top: 4px !important;
  }
}

@media (max-width: 767px) and (min-width: 575px) {
  .img-fluid-phone {
    height: 500px;
    object-fit: cover;
  }
  .team-mobile {
    display: block;
  }
  .mt-4 {
    margin-top: 4px !important;
  }
}

/* .solid-btn-base:hover {
  background: #ED0000;
  color: #cdcdcd;
  border-color: #cdcdcd;
} */

.img-fluid-mobile {
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

.circle-img {
  border-radius: 30px;
}

.large-my-text li {
  font-size: 20px;
  line-height: 1.4em;
  padding: 0 20px 0 20px;
}

/*=========================================
            04. Yulia Style CSS
============================================*/

.yulia-tochki {
  list-style: square !important;
  margin-left: 40px;
}
/* 
.yulia-header-background {
  background-color: #081d43;
} */

.yulia-header-background ul li a {
  color: #ffffff;
}
.yulia-header-background ul li a:hover,
.white-bg.affix ul li a:hover {
  opacity: 1;
}
.yulia-header-background {
  background: linear-gradient(135deg, #004858 0%, #0a7a8f 100%) !important;
}
.yulia-container {
  margin-top: 3rem !important;
}

.pink-color {
  color: white;
  background-color: #c90957;
  border-color: #d9d9d9;
}

.pink-color:hover {
  color: #ffffff;
  background-color: #730e35;
  border-color: #ffffff;
}

.badge-pink {
  color: #ffffff;
  background-color: #c90957;
}

.tild.background-img:before {
  position: absolute;
  content: '';
  background-image: linear-gradient(
    to right,
    rgba(95, 159, 172, 0.4),
    rgba(0, 72, 88, 0.85)
  );
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}

.yulia-white-color-button {
  color: #378c9e;
  background-color: #ffffff;
  border-color: #004858;
}

.yulia-white-color-button:hover {
  color: #ffffff;
  background-color: #004858;
  border-color: #ffffff;
}

.rounded-corners {
  border-radius: 30px;
}

#features {
  margin-top: 2em;
}

#pricing {
  margin-top: 2em;
}

#download {
  margin-top: 2em;
}

/* .yulia-landingpage-padding {
  padding-top: 200px;
  margin-top: 200px;
  border-color: #ED0000;
  border-width: 2px;
} */

.yulia-background-img {
  position: relative;
  width: 100%;
  display: block;
}

.yulia-background-img:before {
  position: absolute;
  content: '';
  background-image: linear-gradient(
    to right,
    rgba(47, 163, 144, 0.25),
    rgba(0, 192, 159, 0.35)
  );
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}

#mc_embed_signup {
  background: #fff;
  clear: left;
  font: 14px Helvetica, Arial, sans-serif;
}

button {
  border-radius: 50px;
  border: solid white 4px;
  left: 260px;
  width: 80px;
  height: 50px;
  font-weight: 700;
  color: #fff;
  background: #ED0000;
  position: relative;
}

.msg-alert {
  background-color: rgba(255, 255, 255, 0.7);
  padding: 0px 4px;
  border-radius: 20px;
  margin-top: 30px;
}

.intext-link {
  color: blue;
}

.intext-link:hover {
  color: blue;
  text-decoration: underline;
}

.small-heading {
  font-size: 1.5rem !important;
  padding: 0 1px;
}

/* ===============================
   Equal height pricing cards
   =============================== */

/* Make each Bootstrap column a flex container */
.package-section .row>[class*="col-"] {
  display: flex;
  margin-bottom: 30px;
  /* space between rows of cards */
}

/* Make the card fill the whole column height */
.package-section .card.single-pricing-pack {
  width: 100%;
  display: flex;
  flex-direction: column;
  /* stack content vertically */
  height: 100%;
}

/* Card body stretches to take available space */
.package-section .card.single-pricing-pack .card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
}

/* Push buttons/links to the bottom of the card */
.package-section .card.single-pricing-pack .card-body a,
.package-section .card.single-pricing-pack .card-body button {
  margin-top: auto;
}

/* ===============================
   Rectangular, equal-size images
   =============================== */

/* Image wrapper */
.package-section .pricing-img {
  height: 220px;
  /* same height for all images */
  width: 100%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
  /* small rounded corners, not oval */
}

/* Actual image */
.package-section .pricing-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* fill box without distortion */
  border-radius: 20px;
  /* remove any circular/oval radius */
}

/* Optional: add a bit more space above the bottom button */
.package-section .card.single-pricing-pack .card-body .btn,
.package-section .card.single-pricing-pack .card-body .solid-btn,
.package-section .card.single-pricing-pack .card-body .outline-btn {
  margin-top: auto;
}

/* =============================================
   SUBMIT ITINERARY PAGE
   ============================================= */

.exploroff-submit-page {
  background-color: #ffffff;
  min-height: 100vh;
  padding: 140px 20px 80px;
}

.exploroff-submit-page .container {
  max-width: 720px;
}

/* Form card */
.exploroff-submit-card {
  background: transparent;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
  margin-bottom: 56px;
}

.exploroff-submit-title {
  margin: 40px 0 10px 0;
  font-size: 40px;
  line-height: 1.1;
  font-weight: 700;
  color: #004858;
}

.exploroff-submit-subtitle {
  margin: 0 0 32px 0;
  font-size: 17px;
  line-height: 1.6;
  color: #777777;
}

/* Auth — sign-in prompt */
.exploroff-auth-section {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  padding: 8px 0;
}

.exploroff-auth-prompt {
  margin: 0;
  font-size: 16px;
  color: #666666;
}

.exploroff-google-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  position: static !important;
  left: auto !important;
  width: auto !important;
  height: auto !important;
  padding: 13px 28px !important;
  border: 1.5px solid #dadce0 !important;
  border-radius: 8px !important;
  background: #ffffff !important;
  font-family: inherit !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: #3c4043 !important;
  cursor: pointer !important;
  transition: background 0.15s ease, box-shadow 0.15s ease !important;
  white-space: nowrap !important;
}

.exploroff-google-btn:hover {
  background: #f8f8f8 !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
}

.exploroff-google-icon {
  display: block !important;
  width: 18px !important;
  height: 18px !important;
  flex-shrink: 0 !important;
  position: static !important;
}

/* Signed-in user bar */
.exploroff-user-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: #f4f6f4;
  border-radius: 12px;
  margin-bottom: 24px;
  gap: 12px;
}

.exploroff-user-info {
  display: flex;
  align-items: center;
  gap: 12px;
}

.exploroff-user-info-link {
  text-decoration: none !important;
  border-radius: 8px;
  padding: 4px 8px;
  margin: -4px -8px;
  transition: background 0.15s;
}

.exploroff-user-info-link:hover {
  background: rgba(0, 72, 88, 0.07);
  text-decoration: none !important;
}

.exploroff-user-info-link .exploroff-user-name {
  color: #222222;
}

.exploroff-user-info-link:hover .exploroff-user-label {
  color: #004858;
}

.exploroff-user-bar-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.exploroff-edit-profile-btn-sm {
  font-size: 14px !important;
  padding: 6px 14px !important;
}

.exploroff-user-avatar {
  width: 38px !important;
  height: 38px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  display: block !important;
  position: static !important;
  left: auto !important;
  flex-shrink: 0 !important;
}

.exploroff-user-avatar-fallback {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #004858;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 700;
  flex-shrink: 0;
}

.exploroff-user-details {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.exploroff-user-name {
  font-size: 16px;
  font-weight: 600;
  color: #222222;
  line-height: 1.2;
}

.exploroff-user-label {
  font-size: 14px;
  color: #888888;
}

.exploroff-signout-link {
  position: static !important;
  left: auto !important;
  width: auto !important;
  height: auto !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  font-family: inherit !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: #004858 !important;
  cursor: pointer !important;
  text-decoration: underline !important;
  white-space: nowrap !important;
}

/* Form */
.exploroff-submit-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.exploroff-submit-group {
  width: 100%;
}

.exploroff-submit-label {
  display: block;
  font-size: 16px;
  font-weight: 600;
  color: #004858;
  margin-bottom: 8px;
}

/* Inputs — heavy specificity to beat global template styles */
.exploroff-submit-page input.exploroff-submit-input,
.exploroff-submit-page textarea.exploroff-submit-textarea {
  display: block !important;
  position: static !important;
  width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  font-family: inherit !important;
  font-size: 16px !important;
  color: #333333 !important;
  background: #ffffff !important;
  background-image: none !important;
  border: 1.5px solid #dde0e0 !important;
  border-radius: 10px !important;
  outline: none !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.exploroff-submit-page input.exploroff-submit-input {
  height: 52px !important;
  padding: 0 16px !important;
  line-height: 52px !important;
}

.exploroff-submit-page textarea.exploroff-submit-textarea {
  min-height: 120px !important;
  padding: 14px 16px !important;
  line-height: 1.6 !important;
  resize: vertical !important;
}

.exploroff-submit-page input.exploroff-submit-input:focus,
.exploroff-submit-page textarea.exploroff-submit-textarea:focus {
  border-color: #004858 !important;
  box-shadow: 0 0 0 3px rgba(0, 72, 88, 0.1) !important;
}

.exploroff-submit-page input.exploroff-submit-input::placeholder,
.exploroff-submit-page textarea.exploroff-submit-textarea::placeholder {
  color: #aaaaaa !important;
}

/* Submit button */
.exploroff-submit-actions {
  padding-top: 4px;
}

.exploroff-submit-button {
  display: block !important;
  position: relative !important;
  left: auto !important;
  width: 100% !important;
  height: auto !important;
  padding: 15px 24px !important;
  border: 2px solid #004858 !important;
  border-radius: 999px !important;
  background: #004858 !important;
  color: #ffffff !important;
  font-family: inherit !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: 0.3px !important;
  cursor: pointer !important;
  overflow: hidden !important;
  transition: all 0.25s ease !important;
}

.exploroff-submit-button::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: #ffffff !important;
  transform: scaleX(0) !important;
  transform-origin: left !important;
  transition: transform 0.25s ease !important;
  z-index: 0 !important;
}

.exploroff-submit-button span,
.exploroff-submit-button::after {
  position: relative !important;
  z-index: 1 !important;
}

.exploroff-submit-button:hover {
  color: #004858 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 24px rgba(0, 72, 88, 0.25) !important;
}

.exploroff-submit-button:hover::before {
  transform: scaleX(1) !important;
}

.exploroff-submit-button:active {
  transform: translateY(0) !important;
  box-shadow: 0 4px 10px rgba(0, 72, 88, 0.2) !important;
}

.exploroff-submit-button:disabled {
  opacity: 0.6 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

.exploroff-tooltip-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  vertical-align: middle;
}

.exploroff-tooltip-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #ccdddf;
  color: #004858;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  line-height: 1;
  flex-shrink: 0;
}

.exploroff-tooltip-box {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  width: 260px;
  background: #004858;
  color: #ffffff;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  padding: 10px 14px;
  border-radius: 10px;
  text-transform: none;
  letter-spacing: 0;
  pointer-events: none;
  z-index: 9999;
  box-shadow: 0 4px 16px rgba(0,0,0,0.2);
}

.exploroff-tooltip-box::after {
  content: '';
  position: absolute;
  bottom: 100%;
  left: 10px;
  border: 6px solid transparent;
  border-bottom-color: #004858;
}

.exploroff-tooltip-wrap:hover .exploroff-tooltip-box,
.exploroff-tooltip-visible {
  display: block !important;
}

.exploroff-field-error {
  margin: 6px 0 0 0 !important;
  font-size: 16px !important;
  color: #c0392b !important;
  font-weight: 500 !important;
}

.exploroff-submit-message {
  margin-top: 4px;
  font-size: 16px;
  font-weight: 600;
  color: #004858;
  padding: 12px 16px;
  background: #eef4f5;
  border-radius: 8px;
}

/* =============================================
   COMMUNITY FEED
   ============================================= */

.exploroff-feed-section {
  margin-top: 0;
}

.exploroff-feed-title {
  margin: 0 0 6px 0;
  font-size: 32px;
  font-weight: 700;
  color: #004858;
}

.exploroff-feed-subtitle {
  margin: 0 0 24px 0;
  font-size: 16px;
  color: #888888;
}

.exploroff-feed-loading {
  font-size: 16px;
  color: #888888;
  padding: 16px 0;
}

.exploroff-feed-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.exploroff-feed-card {
  background: #ffffff;
  border: 1.5px solid #ebebeb;
  border-radius: 16px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.exploroff-feed-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.08);
  border-color: #c8dfe3;
}

.exploroff-feed-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}

.exploroff-feed-card-main {
  min-width: 0;
  flex: 1;
}

.exploroff-feed-card-title {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: #004858;
  line-height: 1.3;
}

.exploroff-feed-card-title-link {
  text-decoration: none;
  color: #004858;
}

.exploroff-feed-card-title-link:visited {
  color: #004858;
}

.exploroff-feed-card-title-link .exploroff-feed-card-title {
  color: #004858;
}

.exploroff-feed-card-title-link:hover .exploroff-feed-card-title {
  color: #007a99;
  text-decoration: none;
}

.exploroff-feed-card-date {
  margin: 4px 0 0 0;
  font-size: 14px;
  color: #aaaaaa;
}

.exploroff-feed-user-link {
  font-weight: 600;
  color: #555555;
  text-decoration: none;
}

.exploroff-feed-user-link:hover {
  color: #004858;
  text-decoration: underline;
}

.exploroff-feed-user-link:visited {
  color: #555555;
}

.exploroff-feed-card-description {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: #666666;
}

.exploroff-feed-vote-button {
  flex-shrink: 0 !important;
  position: static !important;
  left: auto !important;
  width: auto !important;
  height: auto !important;
  border: 1.5px solid #dde0e0 !important;
  border-radius: 8px !important;
  background: #ffffff !important;
  color: #004858 !important;
  padding: 8px 12px !important;
  font-family: inherit !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  transition: background 0.15s ease, border-color 0.15s ease !important;
}

.exploroff-feed-vote-button:hover {
  background: #eef4f5 !important;
  border-color: #004858 !important;
}

.exploroff-feed-map-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 16px;
  font-weight: 700;
  color: #ffffff;
  background: #004858;
  text-decoration: none;
  margin-top: auto;
  padding: 7px 16px;
  border-radius: 999px;
  transition: background 0.2s ease;
}

.exploroff-feed-map-link:hover {
  background: #007a99;
  color: #ffffff;
  text-decoration: none;
}

.exploroff-feed-map-link:visited {
  color: #ffffff;
}

/* Responsive */
@media (max-width: 768px) {
  .exploroff-submit-page {
    padding: 86px 16px 60px;
  }

  .exploroff-submit-card {
    padding: 0;
  }

  .exploroff-submit-title {
    font-size: 30px;
    margin: 20px 0 8px;
  }

  .exploroff-submit-subtitle {
    font-size: 15px;
    margin-bottom: 20px;
  }
}

@media (max-width: 576px) {
  .exploroff-submit-page {
    padding: 76px 16px 48px;
  }

  .exploroff-submit-title {
    font-size: 26px;
    margin: 12px 0 6px;
  }

  .exploroff-user-bar {
    flex-wrap: wrap;
    gap: 8px;
    padding: 12px 14px;
  }

  .exploroff-user-info {
    flex: 1;
    min-width: 0;
  }

  .exploroff-user-name {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .exploroff-user-bar-actions {
    flex: 0 0 100%;
    padding-left: 50px;
    gap: 8px;
  }

  .exploroff-feed-grid {
    grid-template-columns: 1fr;
  }

  .exploroff-feed-title {
    font-size: 26px;
  }
}

.exploroff-feed-card-title-link {
  text-decoration: none;
  color: #004858;
}

.exploroff-feed-card-title-link:visited {
  color: #004858;
}

.exploroff-feed-card-title-link .exploroff-feed-card-title {
  color: #004858;
}

.exploroff-feed-card-title-link:hover .exploroff-feed-card-title {
  color: #007a99;
  text-decoration: none;
}

/* Itinerary detail page */
.itinerary-page-loading {
  min-height: 60vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  font-size: 18px;
  color: #555555;
  padding-top: 100px;
}

.itinerary-page-description {
  font-size: 18px;
  line-height: 1.7;
  color: #555555;
  margin-top: 16px;
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}

.itinerary-page-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 20px;
  flex-wrap: wrap;
}

.itinerary-page-date {
  font-size: 16px;
  color: #999999;
}

.itinerary-page-separator {
  color: #cccccc;
}

.itinerary-vote-btn {
  font-size: 16px;
  padding: 8px 14px;
}

.itinerary-page-votemsg {
  font-size: 16px;
  color: #666666;
}

.itinerary-page-cta {
  display: inline-block;
  margin: 32px auto 16px;
  padding: 16px 32px;
  background-color: #004858;
  color: #ffffff;
  border-radius: 999px;
  font-size: 17px;
  font-weight: 700;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.itinerary-page-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 72, 88, 0.2);
  color: #ffffff;
  text-decoration: none;
}

.itinerary-page-back {
  margin-top: 16px;
  font-size: 16px;
}

.itinerary-page-back a {
  color: #004858;
  font-weight: 600;
  text-decoration: none;
}

.itinerary-page-back a:hover {
  text-decoration: underline;
}

.itinerary-page-back a:visited {
  color: #004858;
}

/* ── Profile page ─────────────────────────────────── */

.exploroff-profile-header-card {
  margin-bottom: 24px;
}

.exploroff-profile-top {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}

.exploroff-profile-avatar-wrap {
  flex-shrink: 0;
}

.exploroff-profile-avatar-lg {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: linear-gradient(135deg, #004858 0%, #00a896 100%);
  color: #fff;
  font-size: 28px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
  position: relative;
}

.exploroff-profile-avatar-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}

.exploroff-profile-avatar-editable {
  cursor: pointer;
}

.exploroff-avatar-camera-icon {
  width: 32px;
  height: 32px;
  color: rgba(255, 255, 255, 0.9);
}

.exploroff-avatar-uploading {
  font-size: 22px;
  color: #fff;
}

.exploroff-ig-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.exploroff-avatar-error {
  font-size: 11px;
  color: #c0392b;
  margin: 6px 0 0;
  max-width: 80px;
  text-align: center;
  line-height: 1.3;
}

.exploroff-profile-avatar-editable:hover {
  opacity: 0.85;
  transform: scale(1.05);
  transition: opacity 0.18s, transform 0.18s;
}

.exploroff-profile-name-block {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.exploroff-profile-name {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 0 !important;
  margin-bottom: 6px !important;
}

.exploroff-agent-badge {
  display: inline-block;
  background: linear-gradient(135deg, #e8740c, #f5a623);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 999px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  vertical-align: middle;
}

.exploroff-profile-bio {
  font-size: 16px;
  color: #4a5568;
  line-height: 1.6;
  margin: 0;
}

.exploroff-edit-profile-btn {
  display: inline-block;
  padding: 8px 18px;
  border: 2px solid #004858;
  border-radius: 999px;
  color: #004858 !important;
  font-size: 16px;
  font-weight: 600;
  text-decoration: none !important;
  transition: background 0.18s, color 0.18s;
  white-space: nowrap;
  flex-shrink: 0;
}

.exploroff-edit-profile-btn:hover {
  background: #004858;
  color: #fff !important;
  text-decoration: none !important;
}

@media (max-width: 600px) {
  .exploroff-profile-top {
    align-items: flex-start;
    gap: 12px;
  }
  .exploroff-profile-name-block {
    flex: 1;
    min-width: 0;
    width: 100%;
  }
  /* scoped to profile page only — does NOT affect user bar */
  .exploroff-profile-top .exploroff-edit-profile-btn {
    flex: 0 0 100%;
    display: inline-block;
    margin-top: 4px;
    font-size: 15px;
    padding: 7px 16px;
  }
  .exploroff-profile-name {
    font-size: 24px;
  }
  .exploroff-profile-bio {
    font-size: 15px;
    margin-top: 6px;
  }

  /* User bar — keep Edit + Sign out both visible */
  .exploroff-user-bar {
    flex-wrap: wrap;
    gap: 8px;
    padding: 12px 14px;
  }
  .exploroff-user-bar-actions {
    flex: 0 0 100%;
    padding-left: 50px;
    gap: 10px;
    flex-wrap: nowrap;
  }
  .exploroff-user-bar-actions .exploroff-edit-profile-btn,
  .exploroff-user-bar-actions .exploroff-edit-profile-btn-sm {
    flex: 0 0 auto;
  }
  .exploroff-signout-link {
    flex-shrink: 0 !important;
  }

  /* Tooltip — flip to right-anchored so it doesn't overflow viewport */
  .exploroff-tooltip-box {
    left: auto;
    right: 0;
    width: min(260px, 80vw);
  }
  .exploroff-tooltip-box::after {
    left: auto;
    right: 10px;
  }
}

.exploroff-profile-qa {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 16px;
  padding-top: 20px;
  border-top: 1px solid #e8ecef;
}

.exploroff-profile-qa-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.exploroff-profile-qa-q {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #8a9bb0;
}

.exploroff-profile-qa-a {
  font-size: 16px;
  color: #1a2a3a;
  font-weight: 500;
}

/* ── Travel agent card ───────────────────────────── */

.exploroff-agent-card {
  background: linear-gradient(135deg, #004858 0%, #006475 100%);
  border-radius: 16px;
  padding: 28px 32px;
  color: #fff;
  margin-bottom: 32px;
}

.exploroff-agent-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}

.exploroff-agent-card-name {
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  margin: 0 0 6px;
}

.exploroff-agent-card-tagline {
  font-size: 16px;
  color: rgba(255,255,255,0.85);
  font-style: italic;
  margin: 0 0 4px;
}

.exploroff-agent-card-specialty {
  font-size: 14px;
  color: rgba(255,255,255,0.7);
  margin: 0;
}

.exploroff-agent-card-badge {
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 999px;
  padding: 6px 16px;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
}

.exploroff-agent-card-contacts {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.exploroff-agent-contact-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.25);
  border-radius: 999px;
  padding: 8px 18px;
  color: #fff !important;
  font-size: 16px;
  font-weight: 600;
  text-decoration: none !important;
  transition: background 0.18s;
}

.exploroff-agent-contact-link:hover {
  background: rgba(255,255,255,0.28);
  text-decoration: none !important;
  color: #fff !important;
}

/* ── Edit profile form extras ───────────────────── */

.exploroff-profile-section-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #8a9bb0;
  padding: 8px 0 4px;
  border-bottom: 1px solid #e8ecef;
  margin-bottom: 4px;
}

.exploroff-submit-select {
  display: block !important;
  width: 100% !important;
  height: 52px !important;
  padding: 0 36px 0 16px !important;
  font-family: inherit !important;
  font-size: 16px !important;
  color: #333333 !important;
  background-color: #ffffff !important;
  border: 1.5px solid #dde0e0 !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  outline: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%238a9bb0' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  cursor: pointer;
}

.exploroff-agent-toggle-wrap {
  padding: 4px 0;
}

.exploroff-agent-toggle-label {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-weight: normal;
  margin: 0;
}

.exploroff-agent-checkbox {
  width: 18px !important;
  height: 18px !important;
  position: static !important;
  left: auto !important;
  margin: 0 !important;
  cursor: pointer;
  accent-color: #004858;
  box-shadow: none !important;
}

.exploroff-agent-toggle-text {
  font-size: 16px;
  color: #1a2a3a;
}

.exploroff-agent-fields {
  background: #f0f7f9;
  border-radius: 12px;
  padding: 20px 24px;
  margin-bottom: 8px;
  border: 1px solid #d4e8ed;
}

.exploroff-agent-fields .exploroff-submit-group {
  margin-bottom: 20px;
}

.exploroff-agent-fields .exploroff-submit-group:last-child {
  margin-bottom: 0;
}

.exploroff-agent-fields .exploroff-submit-label {
  margin-bottom: 6px !important;
  display: block;
}

/* ===================================
   MEGA MENU
   =================================== */

/* Make container the positioning context so right:0 aligns with search pill */
.navbar .container {
  position: relative;
}

.main-menu ul > li.mega-dropdown {
  position: static !important;
}

/* Remove focus/active border on dropdown trigger */
.main-menu .mega-dropdown .nav-link:focus,
.main-menu .mega-dropdown .nav-link:focus-visible,
.main-menu .mega-dropdown .nav-link:active {
  outline: none !important;
  box-shadow: none !important;
  border: none !important;
}

.main-menu ul > li.mega-dropdown .mega-menu-panel {
  display: block !important;
  width: 960px !important;
  max-width: calc(100vw - 24px) !important;
  left: auto !important;
  right: 0 !important;
  top: 76px !important;
  padding: 0 !important;
  border-radius: 16px !important;
  border: none !important;
  box-shadow: 0 20px 60px rgba(0, 40, 55, 0.18), 0 4px 12px rgba(0, 72, 88, 0.08) !important;
  transform: translateY(-8px) !important;
  transform-origin: top right !important;
  visibility: hidden;
  opacity: 0;
  overflow: hidden !important;
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s !important;
}

/* Show on click — toggled by React state */
.main-menu ul > li.mega-dropdown.mega-open .mega-menu-panel {
  transform: translateY(0) !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* Left items area — very subtle off-white tint */
.mega-items-area {
  padding: 28px 28px 20px 28px;
  background: #fafcfd;
}

/* Column headers — left accent bar, clickable */
.mega-col-header {
  display: block;
  color: #004858 !important;
  font-weight: 800;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  padding: 0 0 10px 10px;
  margin-bottom: 14px;
  border-left: 3px solid #0a7a8f;
  text-decoration: none !important;
  transition: color 0.15s;
}
a.mega-col-header:hover {
  color: #0a7a8f !important;
  text-decoration: none !important;
}

/* Item links */
.mega-menu-panel .dropdown-item {
  padding: 4px 0 4px 10px !important;
  font-size: 14px !important;
  color: #444 !important;
  background: transparent !important;
  border-radius: 0 !important;
  line-height: 1.4 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  transition: color 0.15s, padding-left 0.15s !important;
}

.mega-menu-panel .dropdown-item:hover {
  color: #004858 !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding-left: 16px !important;
}

/* "See All >" links */
.mega-menu-panel .mega-see-all {
  color: #0a7a8f !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  margin-top: 8px !important;
}

.mega-menu-panel .mega-see-all:hover {
  color: #004858 !important;
  padding-left: 10px !important;
}

/* Column divider */
.mega-col-sep {
  width: 1px;
  background: #e2eaed;
  margin: 0 4px;
  align-self: stretch;
}

/* ── Dark CTA card (Guided Tour) ── */
.mega-cta-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  border-radius: 0;
  overflow: hidden;
}

.mega-cta-card img {
  width: 100%;
  height: 160px;
  object-fit: cover;
  display: block;
  filter: brightness(0.88);
}

.mega-cta-card-body {
  background: #004858;
  flex: 1;
  padding: 18px 20px 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.mega-cta-label {
  display: inline-block;
  background: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  border-radius: 20px;
  padding: 3px 10px;
  margin-bottom: 10px;
}

.mega-cta-card-body p {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.8);
  line-height: 1.5;
  margin: 0 0 14px;
}

.mega-cta-btn {
  position: relative;
  display: block;
  background: #ffffff!important;
  color: #004858 !important;
  border-radius: 30px!important;
  font-weight: 700;
  font-size: 16px;
  text-align: center;
  border-radius: 30px;
  padding: 12px 20px;
  border: 2px solid #004858;
  text-decoration: none !important;
  overflow: hidden;
  z-index: 1;
  transition: color 0.28s ease;
}

.mega-cta-btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: #004858;
  transition: left 0.28s ease;
  z-index: -1;
}

.mega-cta-btn:hover {
  color: #ffffff !important;
  border: 2px solid#ffffff!important;
  text-decoration: none !important;
}

.mega-cta-btn:hover::before {
  left: 0;
}

/* ── Light CTA card (Submit Itinerary) ── */
.mega-submit-card {
  border-radius: 10px;
  overflow: hidden;
  border: 1.5px solid #dde8ec;
}

.mega-submit-card img {
  width: 100%;
  height: 148px;
  object-fit: cover;
  display: block;
}

.mega-submit-card-body {
  background: #ffffff;
  padding: 14px 16px;
}

.mega-submit-card-title {
  display: block;
  align-items: left;
  font-size: 1rem;
  font-weight: 700;
  color: #004858 !important;
  text-decoration: none !important;
  background: none;
  padding: 0;
  margin-bottom: 8px;
  transition: color 0.18s;
}

.mega-submit-inline {
  border-top: 1px solid #e2eaed;
  margin-top: 18px;
  padding-top: 16px;
}

.mega-submit-inline p {
  font-size: 14px;
  color: #888;
  line-height: 1.5;
  margin: 5px 0 0;
}

.mega-submit-card-title .mega-submit-arrow {
  font-size: 0.78rem;
  color: #004858;
  transition: transform 0.22s ease;
  display: inline-block;
}

.mega-submit-card-title:hover {
  color: #006d80 !important;
  text-decoration: none !important;
}

.mega-submit-card-title:hover .mega-submit-arrow {
  transform: translateX(4px);
}

.mega-submit-card-body p {
  font-size: 14px;
  color: #666;
  line-height: 1.5;
  margin: 0;
}

/* Orange variant for mega CTA button */
.mega-cta-btn-orange {
  background: linear-gradient(135deg, #ff7043 0%, #e64a19 100%) !important;
  color: #fff !important;
  border-color: transparent !important;
}
.mega-cta-btn-orange::before { display: none !important; }
.mega-cta-btn-orange:hover { opacity: 0.88 !important; color: #fff !important; border-color: transparent !important; }

/* Resets only the two problematic global `button` rules — left and position */
.xbtn {
  left: auto !important;
  position: static !important;
}

/* ── Airbnb-style trip search bar (desktop only) ── */
.xsearch-airbnb-wrap {
  flex-shrink: 0;
  width: 520px;
  position: relative;
}
.xsearch-airbnb-pill {
  display: flex;
  align-items: center;
  background: #fff;
  border-radius: 50px;
  border: 1.5px solid #d8d8d8;
  box-shadow: 0 2px 10px rgba(0,0,0,0.09);
  height: 46px;
  width: 520px;
  overflow: hidden;
  transition: box-shadow 0.18s, border-color 0.18s;
}
.xsearch-airbnb-pill:hover { box-shadow: 0 4px 18px rgba(0,0,0,0.13); }
.xsearch-airbnb-open { border-color: #bbb !important; }
/* Each field button */
.xsearch-airbnb-pill > button:first-child {
  flex: 1.4 1 0;
}
.xsearch-af {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0 14px;
  background: transparent;
  border: none;
  cursor: pointer;
  height: 100%;
  overflow: hidden;
  transition: background 0.15s;
  text-align: left;
}
.xsearch-af:hover { background: #f5f5f5; }
.xsearch-af-active { background: #efefef !important; }
.xsearch-af-label {
  display: block;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #111111 !important;
  line-height: 1.2;
  white-space: nowrap;
}
.xsearch-af-value {
  display: block;
  font-size: 13px !important;
  color: #999999 !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.4;
  margin-top: 1px;
}
.xsearch-af-selected { color: #333333 !important; font-weight: 500 !important; }
.xsearch-af-divider {
  width: 1px;
  height: 20px;
  background: #e0e0e0;
  flex-shrink: 0;
}
/* Orange search circle */
.xsearch-airbnb-go {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  min-width: 34px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ff7043 0%, #e64a19 100%);
  border: none;
  color: #fff !important;
  cursor: pointer;
  margin: 0 5px 0 2px;
  transition: opacity 0.15s, transform 0.12s;
  font-size: 1rem;
  -webkit-text-stroke: 0.4px #fff;
}
.xsearch-airbnb-go:hover { opacity: 0.88; transform: scale(1.07); }
/* Per-field dropdown panels — positioned relative to wrap */
.xsearch-panel {
  position: absolute;
  top: calc(100% + 10px);
  background: #ffffff;
  border-radius: 20px;
  box-shadow: 0 10px 44px rgba(0,0,0,0.18);
  z-index: 99999;
  animation: xpanelIn 0.15s ease;
  padding: 16px;
  text-align: left;
}
@keyframes xpanelIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.xsearch-panel-where    { left: 0;     width: 300px; }
.xsearch-panel-duration { left: 150px; width: 230px; }
.xsearch-panel-activity { right: 0;    width: 240px; }
.xsearch-panel-colhead {
  font-size: 11px;
  font-weight: 700;
  color: #555;
  text-transform: uppercase;
  letter-spacing: 0.7px;
  margin: 0 0 10px;
}
/* Destination card grid for Where panel */
.xsearch-dest-grid {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.xsearch-dest-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px;
  border-radius: 12px;
  cursor: pointer;
  transition: background 0.12s;
}
.xsearch-dest-card:hover { background: #f4fafb; }
.xsearch-dest-card--sel { background: #fff3ef; }
.xsearch-dest-icon {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.95rem;
}
.xsearch-dest-text { display: flex; flex-direction: column; min-width: 0; }
.xsearch-dest-name {
  font-size: 14px;
  font-weight: 600;
  color: #111;
  line-height: 1.3;
}
.xsearch-dest-sub {
  font-size: 12px;
  color: #888;
  margin-top: 1px;
}
/* Option rows for Duration/Activity panels */
.xsearch-option-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.xsearch-opt-row {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 9px 8px;
  border-radius: 10px;
  cursor: pointer;
  transition: background 0.12s;
}
.xsearch-opt-row:hover { background: #f4fafb; }
.xsearch-opt-row--sel  { background: #fff3ef; }
.xsearch-opt-icon {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: #f0f6f8;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #004858;
  font-size: 0.85rem;
  flex-shrink: 0;
}
.xsearch-opt-name {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: #111;
  line-height: 1.3;
}
.xsearch-opt-sub {
  display: block;
  font-size: 12px;
  color: #888;
  margin-top: 1px;
}
.xsearch-opt-check {
  margin-left: auto;
  color: #ff7043;
  font-size: 0.8rem;
  flex-shrink: 0;
}

/* Bottom "View All" bar */
.mega-view-all-bar {
  background: #f0f4f5;
  border-top: 1px solid #e0eaed;
  padding: 10px 28px;
}

.mega-view-all-bar .dropdown-item {
  color: #004858 !important;
  font-weight: 700 !important;
  font-size: 0.72rem !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  padding: 4px 10px !important;
  display: inline-block !important;
  width: auto !important;
  border-radius: 20px !important;
}

.mega-view-all-bar .dropdown-item:hover {
  background: #ddedf2 !important;
  color: #004858 !important;
}

/* Mobile */
@media (max-width: 1199px) {
  .main-menu ul > li.mega-dropdown {
    position: relative !important;
  }

  .main-menu ul > li.mega-dropdown .mega-menu-panel {
    width: 100% !important;
    max-width: 100% !important;
    left: 0 !important;
    top: 8px !important;
    transform: none !important;
    position: relative !important;
    box-shadow: none !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .main-menu ul > li.mega-dropdown.mega-open .mega-menu-panel {
    transform: none !important;
    left: 0 !important;
    right: auto !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .mega-items-area {
    padding: 12px 16px !important;
  }

  .mega-col-sep { display: none; }

  .mega-cta-card { margin-top: 16px; }

  .mega-cta-card img { height: 120px; }
}

/* ===================================
   NAV BUTTONS
   =================================== */

.nav-cta-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  border-radius: 50px;
  padding: 10px 28px;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.2px;
  white-space: nowrap;
  text-decoration: none !important;
  line-height: 1.4;
  border: 2px solid #e64a19;
  background: #ffffff;
  color: #e64a19 !important;
  overflow: hidden;
  z-index: 1;
  transition: color 0.28s ease;
}

.nav-cta-btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #ff7043 0%, #e64a19 100%);
  transition: left 0.28s ease;
  z-index: -1;
}

.nav-cta-btn:hover {
  color: #ffffff !important;
  text-decoration: none !important;
}

.nav-cta-btn:hover::before {
  left: 0;
}

.nav-cta-btn:active {
  transform: scale(0.98);
}

/* Override transparent-nav white-link rule for the CTA button */
.bg-transparent ul li a.nav-cta-btn,
.white-bg.affix ul li a.nav-cta-btn,
.custom-nav.affix ul li a.nav-cta-btn {
  color: #e64a19 !important;
  background: #ffffff !important;
  font-weight: 700;
  opacity: 1 !important;
}

.bg-transparent ul li a.nav-cta-btn:hover,
.white-bg.affix ul li a.nav-cta-btn:hover,
.custom-nav.affix ul li a.nav-cta-btn:hover {
  color: #ffffff !important;
  opacity: 1 !important;
}

/* ===================================
   NAV SEARCH BAR
   =================================== */

@keyframes fadeSlideDown {
  from { opacity: 0; transform: translateX(-50%) translateY(-6px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

.xsearch-pill {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  background: #ffffff !important;
  border: 1.5px solid #d0d0d0 !important;
  border-radius: 50px !important;
  padding: 5px 12px 5px 5px !important;
  min-width: 200px;
  cursor: text;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  transition: border-color 0.18s, box-shadow 0.18s;
}

.xsearch-pill:hover {
  border-color: #bbb !important;
  box-shadow: 0 3px 12px rgba(0,0,0,0.12);
}

.xsearch-pill:focus-within {
  border-color: #ccc !important;
  box-shadow: 0 0 0 2px rgba(0,0,0,0.05), 0 3px 12px rgba(0,0,0,0.1);
}

.xsearch-pill input.xsearch-input {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  background: transparent !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  -webkit-box-shadow: none !important;
  border-radius: 0 !important;
  padding: 4px 42px !important;
  font-size: 16px !important;
  color: #333 !important;
  height: auto !important;
  line-height: normal !important;
  min-height: 0 !important;
  width: auto !important;
}

.xsearch-pill input.xsearch-input::placeholder {
  color: #aaa !important;
}

.xsearch-btn {
  flex-shrink: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  background: linear-gradient(135deg, #ff7043 0%, #e64a19 100%) !important;
  border: none !important;
  cursor: pointer !important;
  color: #ffffff !important;
  transition: opacity 0.18s, transform 0.12s !important;
}

.xsearch-btn:hover {
  opacity: 0.9 !important;
  transform: scale(1.06) !important;
}

/* Nav search wrapper — static position like mega-dropdown so panel anchors to fixed nav */
.nav-search-wrapper { flex-shrink: 0; position: static !important; }

/* Mobile search bar — shown only on mobile/tablet */
/* "Start your search" trigger pill — hidden on desktop */
.nav-mobile-search-trigger { display: none; }

/* Mobile: hide desktop search/menu, show hamburger — breakpoint < 1200px */
@media (max-width: 1199px) {
  .nav-search-wrapper { display: none; }
  .navbar-collapse  { display: none !important; }

  /* DOM order: logo → search pill → hamburger */
  .navbar .container {
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    padding-right: 16px !important;
    gap: 10px;
  }
  .navbar-brand { flex-shrink: 0; }
  /* Push hamburger to the far right */
  .navbar .navbar-toggler { flex-shrink: 0; margin-left: auto; padding: 0.4rem 0.5rem; }

  .nav-mobile-search-trigger {
    display: flex;
    flex: 0 1 300px;
    min-width: 0;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: #fff;
    border-radius: 50px;
    padding: 9px 16px;
    font-size: 1rem;
    font-weight: 600;
    color: #333;
    cursor: pointer;
    box-shadow: 0 1px 6px rgba(0,0,0,0.12);
    border: 1.5px solid #e2e2e2;
    white-space: nowrap;
    overflow: hidden;
    margin: 0 auto;
  }
  .nav-mobile-search-trigger i { font-size: 0.95rem; color: #555; flex-shrink: 0; }
}

/* =============================================
   REI-style Mobile Drawer
   ============================================= */

/* Overlay backdrop */
.mobile-drawer-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  z-index: 10000;
}
.mobile-drawer-overlay.open {
  display: block;
}

/* Drawer panel */
.mobile-drawer {
  position: fixed;
  top: 0;
  left: 0;
  width: 320px;
  max-width: 88vw;
  height: 100%;
  background: #fff;
  z-index: 10001;
  transform: translateX(-100%);
  transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
  box-shadow: 4px 0 24px rgba(0,0,0,0.18);
}
.mobile-drawer.open {
  transform: translateX(0);
}

/* Only show on mobile/tablet (< 1200px) */
@media (min-width: 1200px) {
  .mobile-drawer,
  .mobile-drawer-overlay { display: none !important; }
}

/* Drawer header — teal background, logo left / close right */
.mobile-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  height: 60px;
  min-height: 60px;
  background: linear-gradient(135deg, #004858 0%, #0a7a8f 100%);
  flex-shrink: 0;
  overflow: visible;
  position: relative;
  z-index: 1;
}
.mobile-drawer-header a {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.mobile-drawer-close {
  background: rgba(255,255,255,0.15);
  border: none;
  border-radius: 50%;
  font-size: 0.95rem;
  color: #fff;
  cursor: pointer;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  flex-shrink: 0;
}
.mobile-drawer-close:hover {
  background: rgba(255,255,255,0.25);
}

/* Search in drawer — Airbnb card */
.mobile-drawer-search {
  padding: 12px 14px 0;
  background: #f4f7f8;
  border-bottom: 1px solid #e0e8ea;
  flex-shrink: 0;
}

/* ── Mobile Airbnb search card ─────────────────────────────────────────── */
.xmobile-search-card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 2px 16px rgba(0,0,0,0.10);
  overflow: hidden;
  margin-bottom: 12px;
}
.xmobile-section { background: #fff; }
.xmobile-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  cursor: pointer;
  user-select: none;
}
.xmobile-section--open .xmobile-section-header {
  padding-bottom: 8px;
}
.xmobile-section-title {
  font-size: 16px;
  font-weight: 700;
  color: #111;
}
.xmobile-section-value {
  font-size: 14px;
  color: #aaa;
}
.xmobile-section-value--set {
  color: #0a7a8f;
  font-weight: 600;
}
.xmobile-section-body {
  padding: 0 12px 10px;
}
.xmobile-divider {
  height: 1px;
  background: #f0f0f0;
  margin: 0 16px;
}
/* Destination rows (Where section) */
.xmobile-dest-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 4px;
  border-radius: 10px;
  cursor: pointer;
}
.xmobile-dest-row:hover { background: #f7fbfc; }
.xmobile-dest-row--sel { background: #fff8f5; }
.xmobile-dest-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.9rem;
}
.xmobile-dest-text { display: flex; flex-direction: column; min-width: 0; }
.xmobile-dest-name {
  font-size: 16px;
  font-weight: 600;
  color: #111;
  line-height: 1.3;
}
.xmobile-dest-sub {
  font-size: 13px;
  color: #888;
  margin-top: 1px;
}
/* Option rows (Duration/Activity sections) */
.xmobile-opt-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 9px 4px;
  border-radius: 10px;
  cursor: pointer;
}
.xmobile-opt-row:hover { background: #f7fbfc; }
.xmobile-opt-row--sel { background: #fff8f5; }
.xmobile-opt-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: #f0f6f8;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #004858;
  font-size: 0.88rem;
  flex-shrink: 0;
}
.xmobile-opt-name {
  display: block;
  font-size: 16px;
  font-weight: 600;
  color: #111;
  line-height: 1.3;
}
.xmobile-opt-sub {
  display: block;
  font-size: 13px;
  color: #888;
  margin-top: 1px;
}
/* Footer actions */
.xmobile-search-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-top: 1px solid #f0f0f0;
}
.xmobile-clear-btn {
  font-size: 16px;
  font-weight: 600;
  color: #555;
  background: none;
  border: none;
  text-decoration: underline;
  cursor: pointer;
  padding: 6px 0;
}
.xmobile-search-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  background: linear-gradient(135deg, #ff7043 0%, #e64a19 100%);
  color: #fff !important;
  border: none;
  border-radius: 25px;
  padding: 9px 18px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  min-width: 130px;
}

/* Sliding panels container */
.mobile-drawer-panels {
  position: relative;
  flex: 1;
  overflow: hidden;
}

/* Main panel */
.mobile-panel-main {
  position: absolute;
  inset: 0;
  overflow-y: auto;
  transform: translateX(0);
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.mobile-panel-main.slide-out {
  transform: translateX(-100%);
}

/* Sub panel */
.mobile-panel-sub {
  position: absolute;
  inset: 0;
  overflow-y: auto;
  transform: translateX(100%);
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.mobile-panel-sub.slide-in {
  transform: translateX(0);
}

/* Main menu rows */
.mobile-menu-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 17px 20px 17px 28px;
  border: none;
  border-bottom: 1px solid #f0f0f0;
  background: #fff;
  font-size: 0.97rem;
  font-weight: 500;
  color: #1a1a1a;
  text-decoration: none;
  cursor: pointer;
  text-align: left;
}
.mobile-menu-row > i {
  font-size: 0.75rem;
  color: #bbb;
}
.mobile-menu-row:hover {
  background: #f7f7f7;
  color: #004858;
}

/* Back row */
.mobile-back-row {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 14px 20px;
  border: none;
  border-bottom: 2px solid #e0e0e0;
  background: #f8f8f8;
  font-size: 0.92rem;
  font-weight: 700;
  color: #333;
  cursor: pointer;
  text-align: left;
}
.mobile-back-row i {
  font-size: 0.8rem;
}

/* Sub-menu section label */
.mobile-sub-section-label {
  padding: 12px 20px 6px;
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1.1px;
  color: #004858;
  background: #f8fafb;
  border-bottom: 1px solid #eef2f3;
}

/* Sub-menu item rows */
.mobile-sub-row {
  display: block;
  padding: 14px 20px;
  border-bottom: 1px solid #f0f0f0;
  font-size: 0.93rem;
  color: #2a2a2a;
  text-decoration: none;
}
.mobile-sub-row:hover {
  background: #f4f9fb;
  color: #004858;
}
.mobile-sub-view-all {
  font-weight: 700;
  color: #004858;
  margin-top: 4px;
}

/* Category-level rows in sub-menu (no individual links, just categories) */
.mobile-sub-category {
  display: flex;
  align-items: center;
  padding: 16px 20px;
  font-size: 1rem;
  font-weight: 600;
  color: #1a1a1a;
  border-bottom: 1px solid #ebebeb;
  text-decoration: none;
}
.mobile-sub-category i {
  margin-right: 14px;
  color: #0a7a8f;
  font-size: 1.15rem;
  width: 20px;
  flex-shrink: 0;
}
.mobile-sub-category:hover {
  background: #f4f9fb;
  color: #004858;
  text-decoration: none;
}

/* Icon in main menu rows */
.mobile-menu-icon {
  margin-right: 14px;
  color: #0a7a8f;
  font-size: 1.35rem;
  width: 22px;
  text-align: center;
  flex-shrink: 0;
}

/* CTA at bottom of main panel */
.mobile-drawer-ctas {
  margin-top: 8px;
}
.mobile-cta-submit {
  display: block;
  text-align: center;
  padding: 14px 24px;
  margin: 20px 16px;
  background: linear-gradient(135deg, #ff7043 0%, #e64a19 100%);
  border-radius: 30px;
  text-decoration: none;
  color: #fff;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.3px;
}
.mobile-cta-submit:hover {
  opacity: 0.9;
  color: #fff;
  text-decoration: none;
}
/* Heading inside the mobile search card */
.xmobile-card-heading {
  padding: 12px 16px 6px;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: #888;
  display: flex;
  align-items: center;
  gap: 6px;
}
/* Submit link inside Itineraries sub-menu */
.mobile-sub-submit-wrap {
  padding: 8px 16px 16px;
}
/* Pinned footer at drawer bottom */
.mobile-drawer-footer {
  flex-shrink: 0;
  padding: 10px 16px 14px;
  border-top: 1px solid #f0f0f0;
  background: #fff;
}
.mobile-cta-submit--footer {
  margin: 0 !important;
}


/* ============================================================
   DYNAMIC POST LAYOUT (DynamicPost.js)
   ============================================================ */

.xpost-hero {
  min-height: 440px;
  position: relative;
  display: flex;
  align-items: flex-end;
  margin-top: 0;
  overflow: hidden;
}
.xpost-hero-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
}
.xpost-hero-overlay {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 70px 0 44px;
  background: linear-gradient(135deg, rgba(0,72,88,0.9) 0%, rgba(10,122,143,0.9) 100%);
}
.xpost-no-hero {
  padding: 140px 0 56px;
  background: linear-gradient(135deg, #004858 0%, #0a7a8f 100%);
}

/* Breadcrumb */
.xpost-breadcrumb {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 0.76rem;
  color: rgba(255,255,255,0.65);
  margin-bottom: 18px;
  flex-wrap: wrap;
}
.xpost-breadcrumb a { color: rgba(255,255,255,0.65); text-decoration: none; }
.xpost-breadcrumb a:hover { color: #fff; }
.xpost-breadcrumb .ti-angle-right { font-size: 0.55rem; }
.xpost-breadcrumb span { color: rgba(255,255,255,0.9); }

/* Hero title & meta */
.xpost-title {
  font-size: clamp(1.7rem, 4vw, 2.6rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.2;
  max-width: 760px;
  margin-bottom: 14px;
}
.xpost-title-plain {
  font-size: clamp(1.7rem, 4vw, 2.4rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.2;
  max-width: 760px;
  margin: 14px 0 0;
}
.xpost-excerpt {
  font-size: 1.05rem;
  color: rgba(255,255,255,0.82);
  max-width: 640px;
  margin-bottom: 18px;
  line-height: 1.6;
}
.xpost-excerpt-plain {
  font-size: 1.05rem;
  color: rgba(255,255,255,0.82);
  max-width: 640px;
  margin: 12px 0 0;
  line-height: 1.6;
}
.xpost-meta {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}
.xpost-meta span {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 14px;
  color: rgba(255,255,255,0.72);
}
.xpost-meta .ti-timer,
.xpost-meta .ti-location-pin,
.xpost-meta .ti-flag-alt { font-size: 0.85rem; }

/* Body layout */
.xpost-body {
  padding: 24px 0 96px;
  background: #fff;
}
.xpost-grid {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 52px;
  align-items: start;
}

/* Article content */
.xpost-content h2 {
  font-size: 1.5rem;
  font-weight: 800;
  color: #081d43;
  margin-top: 44px;
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 2px solid #edf6f9;
  line-height: 1.3;
}
.xpost-content h3 {
  font-size: 1.15rem;
  font-weight: 700;
  color: #004858;
  margin-top: 30px;
  margin-bottom: 12px;
  line-height: 1.4;
}
.xpost-content p {
  font-size: 1rem;
  line-height: 1.85;
  color: #2d2d2d;
  margin-bottom: 18px;
}
.xpost-content ul,
.xpost-content ol {
  padding-left: 22px;
  margin-bottom: 20px;
}
.xpost-content ul {
  list-style: disc !important;
}
.xpost-content ol {
  list-style: decimal !important;
}
.xpost-content ul ul {
  list-style: circle !important;
}
.xpost-content li {
  font-size: 1rem;
  line-height: 1.8;
  color: #2d2d2d;
  margin-bottom: 8px;
}
.xpost-content strong { color: #081d43; font-weight: 700; }
.xpost-content a { color: #004858; text-decoration: underline; font-weight: 600; }
.xpost-content a:hover { color: #0a7a8f; }

/* Sidebar */
.xpost-sidebar { position: sticky; top: 90px; }
.xpost-sidebar-card {
  background: #f3f9fb;
  border-radius: 16px;
  padding: 24px;
  margin-bottom: 20px;
}
.xpost-sidebar-card h4 {
  font-size: 0.78rem;
  font-weight: 800;
  color: #081d43;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 12px;
}
.xpost-sidebar-card p {
  font-size: 16px;
  color: #555;
  line-height: 1.65;
  margin-bottom: 16px;
}

/* Sidebar CTA card */
.xpost-sidebar-cta-card { background: #edf6f9; border: 2px solid #c8e8f0; }
.xpost-sidebar-cta-icon {
  width: 42px; height: 42px;
  background: linear-gradient(135deg, #004858 0%, #0a7a8f 100%);
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 14px;
}
.xpost-sidebar-cta-icon i { color: #fff; font-size: 1.1rem; }
.xpost-sidebar-cta-btn {
  display: block;
  background: linear-gradient(135deg, #ff7043 0%, #e64a19 100%);
  color: #fff !important;
  text-align: center;
  padding: 12px 20px;
  border-radius: 30px;
  font-weight: 700;
  font-size: 0.88rem;
  text-decoration: none !important;
  transition: opacity 0.2s;
}
.xpost-sidebar-cta-btn:hover { opacity: 0.88; }

/* Trail stats */
.xpost-stats { display: flex; flex-direction: column; gap: 10px; }
.xpost-stat {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid #e0edf0;
}
.xpost-stat:last-child { border-bottom: none; }
.xpost-stat-label { font-size: 14px; color: #666; font-weight: 500; }
.xpost-stat-value { font-size: 16px; color: #081d43; font-weight: 700; }

/* Tags */
.xpost-tags-list { display: flex; flex-wrap: wrap; gap: 6px; }
.xpost-tag-pill {
  background: #e0f0f5;
  color: #004858;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Browse links */
.xpost-browse-card { background: #fff; border: 1px solid #e2eaed; }
.xpost-browse-link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 0;
  border-bottom: 1px solid #f0f0f0;
  color: #004858;
  text-decoration: none;
  font-size: 16px;
  font-weight: 600;
}
.xpost-browse-link:last-child { border-bottom: none; }
.xpost-browse-link:hover { color: #0a7a8f; }

/* Where to Stay sidebar card */
.xpost-stay-card { background: #fff; border: 1px solid #e2eaed; }
.xpost-stay-title { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: #1a2e35; margin: 0 0 12px; }
.xpost-stay-list { display: flex; flex-direction: column; gap: 2px; }
.xpost-stay-item {
  display: flex; justify-content: space-between; align-items: flex-start;
  padding: 10px 0; border-bottom: 1px solid #f0f4f6;
  text-decoration: none; gap: 8px;
}
.xpost-stay-item:last-child { border-bottom: none; padding-bottom: 0; }
.xpost-stay-item:hover .xpost-stay-name { color: #0a7a8f; }
.xpost-stay-name { font-size: 16px; font-weight: 600; color: #1a2e35; line-height: 1.3; }
.xpost-stay-type { font-size: 13px; color: #6b8a94; text-align: right; flex-shrink: 0; line-height: 1.4; }

/* Loading spinner */
.xpost-spinner {
  width: 40px; height: 40px;
  border: 4px solid #e0f0f5;
  border-top-color: #004858;
  border-radius: 50%;
  animation: xspin 0.75s linear infinite;
}
@keyframes xspin { to { transform: rotate(360deg); } }

/* FareHarbor price loading shimmer */
.fh-price-loading {
  display: inline-block;
  width: 64px;
  height: 22px;
  border-radius: 4px;
  background: linear-gradient(90deg, rgba(255,255,255,0.15) 25%, rgba(255,255,255,0.35) 50%, rgba(255,255,255,0.15) 75%);
  background-size: 200% 100%;
  animation: fh-shimmer 1.4s infinite;
  vertical-align: middle;
}
@keyframes fh-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Mobile */
@media (max-width: 900px) {
  .xpost-grid { grid-template-columns: 1fr; gap: 40px; }
  .xpost-sidebar { position: static; }
  .xpost-hero { min-height: 320px; }
  .xpost-body { padding: 24px 0 64px; }
}
@media (max-width: 576px) {
  .xpost-hero-overlay { padding: 90px 0 32px; }
  .xpost-no-hero { padding: 100px 0 24px; }
  .xpost-content-static iframe { height: 420px !important; }
}

/* ============================================================
   COLLECTION PAGE CARDS (BlogCollectionPage / ItinerariesCollectionPage)
   ============================================================ */

.xcollection-card {
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid #e8ecef;
  display: flex;
  flex-direction: column;
  width: 100%;
  box-shadow: 0 2px 10px rgba(0,0,0,0.06);
  transition: box-shadow 0.22s, transform 0.22s;
}
.xcollection-card:hover {
  box-shadow: 0 8px 28px rgba(0,40,55,0.13);
  transform: translateY(-2px);
}
.xcollection-card-img {
  width: 100%;
  height: 210px;
  object-fit: cover;
  display: block;
  transition: opacity 0.2s, transform 0.2s;
}
.xcollection-card-img-placeholder {
  height: 210px;
  background: linear-gradient(135deg, #004858 0%, #0a7a8f 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}
.xcollection-card-img-placeholder i {
  color: rgba(255,255,255,0.4);
  font-size: 2.5rem;
}
.xcollection-card-body {
  padding: 22px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.xcollection-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 10px;
}
.xcollection-card-tag {
  display: inline-block;
  background: #edf6f9;
  color: #004858;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  padding: 3px 9px;
  border-radius: 20px;
}
.xcollection-card-title {
  font-size: 1rem;
  font-weight: 700;
  color: #081d43;
  margin-bottom: 10px;
  line-height: 1.4;
}
.xcollection-card-excerpt {
  font-size: 16px;
  color: #666;
  line-height: 1.65;
  flex: 1;
  margin-bottom: 18px;
}
.xcollection-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: auto;
}
.xcollection-card-meta {
  font-size: 14px;
  color: #999;
  display: flex;
  align-items: center;
  gap: 4px;
}
.xcollection-card-link {
  color: #004858;
  font-weight: 700;
  font-size: 16px;
  text-decoration: none;
  white-space: nowrap;
}
.xcollection-card-link:hover { color: #0a7a8f; }

.xcollection-card-region-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: #004858;
  color: #fff;
  border-radius: 12px;
  padding: 3px 10px;
  font-size: 0.72rem;
  font-weight: 700;
}

/* Submit CTA block on itineraries page */
.xcollection-submit-cta {
  margin-top: 52px;
  background: linear-gradient(135deg, #004858 0%, #0a7a8f 100%);
  border-radius: 16px;
  padding: 48px 40px;
  text-align: center;
  color: #fff;
}
.xcollection-submit-cta h2 {
  font-size: 1.7rem;
  font-weight: 800;
  margin-bottom: 12px;
  color: #fff;
}
.xcollection-submit-cta p {
  color: #fff;
  max-width: 480px;
  margin: 0 auto 28px;
  line-height: 1.6;
}
.xcollection-submit-btn {
  display: inline-block;
  background: linear-gradient(135deg, #ff7043 0%, #e64a19 100%);
  color: #fff !important;
  border-radius: 30px;
  padding: 14px 36px;
  font-weight: 700;
  text-decoration: none !important;
  font-size: 1rem;
  transition: opacity 0.2s;
}
.xcollection-submit-btn:hover { opacity: 0.88; }


/* ============================================================
   ITINERARIES HERO
   ============================================================ */
.xitinerary-hero {
  color: #fff;
  padding: 64px 0 48px;
  text-align: center;
}
.xitinerary-hero-eyebrow {
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 0.8rem;
  opacity: 0.8;
  margin-bottom: 12px;
}
.xitinerary-hero-title {
  font-size: 2.4rem;
  font-weight: 800;
  margin-bottom: 16px;
}
.xitinerary-hero-sub {
  font-size: 1.1rem;
  opacity: 0.9;
  max-width: 560px;
  margin: 0 auto 28px;
}
.xitinerary-hero-btn {
  display: inline-block;
  background: #fff;
  color: #004858;
  border-radius: 24px;
  padding: 12px 28px;
  font-weight: 700;
  text-decoration: none;
  font-size: 0.95rem;
  transition: opacity 0.18s;
}
.xitinerary-hero-btn:hover { opacity: 0.88; text-decoration: none; color: #004858; }
.xitinerary-hero-btn--orange {
  background: linear-gradient(135deg, #ff7043 0%, #e64a19 100%);
  color: #fff !important;
}
.xitinerary-hero-btn--orange:hover { color: #fff !important; }

/* ============================================================
   US MAP SECTION
   ============================================================ */
.usmap-section {
  background: #fff;
  padding: 64px 0 0;
}
.usmap-header {
  text-align: center;
  margin-bottom: 24px;
}
.usmap-eyebrow {
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 0.78rem;
  color: #007a8a;
  margin-bottom: 8px;
  font-weight: 700;
}
.usmap-heading {
  font-size: 1.9rem;
  font-weight: 800;
  color: #1a2e35;
  margin-bottom: 8px;
}
.usmap-sub {
  font-size: 0.95rem;
  color: #667;
  margin: 0;
}
.usmap-wrap {
  position: relative;
}
.usmap-inner {
  position: relative;
  max-width: 720px;
  margin: 0 auto;
  user-select: none;
}
.usmap-img {
  width: 100%;
  height: auto;
  display: block;
}

/* Pins */
.usmap-pin {
  position: absolute;
  transform: translate(-50%, -50%);
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  text-decoration: none;
  z-index: 5;
}
.usmap-pin-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: #4de8ff;
  opacity: 0;
  animation: usmap-pulse 2s ease-out infinite;
}
.usmap-pin-ring--delay { animation-delay: 0.7s; }
@keyframes usmap-pulse {
  0%   { transform: scale(0.5); opacity: 0.7; }
  100% { transform: scale(2.2); opacity: 0; }
}
.usmap-pin-dot {
  position: relative;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #4de8ff;
  border: 2.5px solid #002f3d;
  transition: transform 0.15s, background 0.15s;
  z-index: 2;
}
.usmap-pin:hover .usmap-pin-dot,
.usmap-pin--active .usmap-pin-dot {
  background: #fff;
  transform: scale(1.3);
}

/* Hover card */
.usmap-card {
  position: absolute;
  top: 50%;
  right: 24px;
  transform: translateY(-50%);
  width: 220px;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0,0,0,0.4);
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  animation: usmap-card-in 0.18s ease;
  z-index: 10;
}
@keyframes usmap-card-in {
  from { opacity: 0; transform: translateY(-46%); }
  to   { opacity: 1; transform: translateY(-50%); }
}
.usmap-card-img {
  width: 100%;
  height: 110px;
  object-fit: cover;
}
.usmap-card-body {
  padding: 12px 14px;
}
.usmap-card-region {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #0a7a8f;
}
.usmap-card-title {
  font-size: 14px;
  font-weight: 700;
  color: #004858;
  margin: 4px 0 6px;
  line-height: 1.3;
}
.usmap-card-excerpt {
  font-size: 13px;
  color: #666;
  margin: 0 0 8px;
  line-height: 1.4;
}
.usmap-card-cta {
  font-size: 13px;
  font-weight: 700;
  color: #0a7a8f;
}

/* Mobile pin list (shown below map on small screens) */
.usmap-pin-list {
  display: none;
  background: #fff;
  border-top: 1px solid #e2eaed;
}
.usmap-pin-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 20px;
  border-bottom: 1px solid #f0f4f6;
  text-decoration: none;
  color: inherit;
  transition: background 0.15s;
}
.usmap-pin-row:hover { background: #f6fbfc; text-decoration: none; }
.usmap-pin-thumb {
  width: 56px;
  height: 42px;
  object-fit: cover;
  border-radius: 6px;
  flex-shrink: 0;
}
.usmap-pin-row-region {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #0a7a8f;
  display: block;
}
.usmap-pin-row-title {
  font-size: 16px;
  font-weight: 700;
  color: #004858;
  margin: 2px 0 0;
  line-height: 1.3;
}
.usmap-pin-row-arrow {
  margin-left: auto;
  color: #ccc;
  font-size: 0.7rem;
  flex-shrink: 0;
}

@media (max-width: 767px) {
  .xitinerary-hero-title { font-size: 1.8rem; }
  .usmap-card { display: none !important; }
  .usmap-pin-list { display: block; }
  .usmap-section { padding: 32px 0 0; }
  .usmap-heading { font-size: 1.5rem; }
}

/* ============================================================
   TAG FILTER BAR
   ============================================================ */

.xtag-toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 22px;
  border-radius: 30px;
  border: 1.5px solid #004858;
  background: #fff;
  color: #004858;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.4px;
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
}
.xtag-toggle-btn:hover {
  background: #004858;
  color: #fff;
}
.xtag-filter-bar {
  background: #f8f9fa;
  border-top: 1px solid #eef0f2;
  border-bottom: 1px solid #eef0f2;
  padding: 14px 0;
  margin-bottom: 12px;
}
.xtag-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.xtag-filter-pill {
  padding: 6px 14px;
  border-radius: 30px;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.7px;
  cursor: pointer;
  background: #fff;
  color: #555;
  border: 1.5px solid #dde2e5;
  transition: all 0.15s;
  user-select: none;
}
.xtag-filter-pill:hover {
  border-color: #004858;
  color: #004858;
}
.xtag-filter-pill.active {
  background: #004858;
  color: #fff;
  border-color: #004858;
}

/* Active filter label + clear */
.xtag-filter-label {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
  font-size: 0.9rem;
  color: #555;
  flex-wrap: wrap;
}
.xtag-filter-clear {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.78rem;
  font-weight: 700;
  color: #004858;
  cursor: pointer;
  padding: 4px 10px;
  border-radius: 20px;
  border: 1.5px solid #004858;
  transition: all 0.15s;
  user-select: none;
}
.xtag-filter-clear:hover {
  background: #004858;
  color: #fff;
}
.xtag-filter-clear .ti-close { font-size: 0.65rem; }

/* Category filter bar (BlogCollectionPage) */
.xcategory-filter-bar {
  background: #f4f8fa;
  border-top: 1px solid #e2eaed;
  border-bottom: 1px solid #e2eaed;
  padding: 16px 0;
  margin-bottom: 8px;
}
.xcategory-filter-row {
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
  align-items: center;
  justify-content: center;
  overflow-x: auto;
  padding: 2px 0;
}
.xcategory-pill {
  padding: 11px 26px;
  left: 0;
  width: 140px;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  cursor: pointer;
  background: #dde8ec;
  color: #004858;
  border: none;
  transition: background 0.18s, color 0.18s;
  user-select: none;
  white-space: nowrap;
  flex-shrink: 0;
  line-height: 1;
}
.xcategory-pill:hover {
  background: #c4d6dd;
  color: #004858;
}
.xcategory-pill.active {
  background: #004858;
  color: #fff;
}
.xcategory-divider {
  color: #b8c8ce;
  font-size: 1.1rem;
  font-weight: 300;
  flex-shrink: 0;
  padding: 0 4px;
  user-select: none;
}
.xcategory-desktop-only { display: flex; }
.xcategory-mobile-only  { display: none; }
@media (max-width: 767px) {
  .xcategory-desktop-only { display: none; }
  .xcategory-mobile-only  { display: block; }
}
.xcategory-select {
  width: 100%;
  padding: 12px 40px 12px 16px;
  border-radius: 8px;
  border: 1.5px solid #c4d6dd;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23004858' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 14px center;
  appearance: none;
  -webkit-appearance: none;
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #004858;
  cursor: pointer;
  outline: none;
}
.xcategory-select:focus {
  border-color: #004858;
  box-shadow: 0 0 0 3px rgba(0,72,88,0.1);
}

/* Active tag pill on card */
.xcollection-card-tag {
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.xcollection-card-tag:hover,
.xcollection-card-tag.active {
  background: #004858;
  color: #fff;
}

/* Clickable card image + title */
.xcollection-card-img-link {
  display: block;
  overflow: hidden;
}
.xcollection-card-img-link:hover .xcollection-card-img {
  opacity: 0.92;
  transform: scale(1.02);
}
.xcollection-card-title-link {
  color: inherit;
  text-decoration: none;
}
.xcollection-card-title-link:hover {
  color: #0a7a8f;
  text-decoration: none;
}

/* FAQ section inside article */
.xpost-faq {
  margin-top: 48px;
  padding-top: 36px;
  border-top: 2px solid #eef0f2;
}
.xpost-faq-heading {
  font-size: 1.5rem;
  font-weight: 800;
  color: #004858;
  margin-bottom: 24px;
}
.xpost-faq-item {
  margin-bottom: 24px;
  padding: 20px 24px;
  background: #f8fcfd;
  border-left: 4px solid #0a7a8f;
  border-radius: 0 8px 8px 0;
}
.xpost-faq-q {
  font-size: 1rem;
  font-weight: 700;
  color: #004858;
  margin-bottom: 8px;
}
.xpost-faq-a {
  font-size: 0.95rem;
  color: #444;
  margin: 0;
  line-height: 1.65;
}

/* Guided tour sidebar card */
.xpost-sidebar-tour-card {
  background: linear-gradient(135deg, #004858 0%, #0a7a8f 100%);
  color: #fff;
  position: relative;
  overflow: hidden;
  padding: 0 !important;
}
.xpost-sidebar-tour-img {
  width: 100%;
  height: 160px;
  object-fit: cover;
  display: block;
}
.xpost-sidebar-tour-body {
  padding: 20px 20px 22px;
  text-align: center;
}
.xpost-sidebar-tour-card h4 {
  color: #fff;
  margin-bottom: 8px;
}
.xpost-sidebar-tour-card p {
  color: rgba(255,255,255,0.88);
  font-size: 0.88rem;
  margin-bottom: 0;
}

/* Mobile: white card with teal button */
@media (max-width: 900px) {
  .xpost-sidebar-tour-card {
    background: #fff !important;
    border: 1px solid #e0eaec;
    box-shadow: 0 4px 24px rgba(0,72,88,0.08);
  }
  .xpost-sidebar-tour-img { height: 220px; }
  .xpost-sidebar-tour-card h4 { color: #004858 !important; }
  .xpost-sidebar-tour-card p { color: #556 !important; }
  .xpost-sidebar-tour-price { color: #004858 !important; }
  .xpost-sidebar-tour-divider { background: rgba(0,72,88,0.2) !important; }
  .xpost-sidebar-tour-btn {
    background: linear-gradient(135deg, #004858 0%, #0a7a8f 100%) !important;
    color: #fff !important;
  }
  .xpost-sidebar-tour-btn::before { background: #002f3d !important; }
  .xpost-sidebar-tour-btn:hover { color: #fff !important; }
}
.xpost-sidebar-tour-badge {
  display: inline-block;
  background: rgba(255,255,255,0.2);
  color: #fff;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 20px;
  margin-bottom: 10px;
}
.xpost-sidebar-tour-btn {
  position: relative;
  overflow: hidden;
  display: inline-block;
  margin-top: 14px;
  padding: 10px 22px;
  background: #fff;
  color: #004858;
  border-radius: 30px;
  font-size: 16px;
  font-weight: 800;
  text-decoration: none;
  letter-spacing: 0.3px;
  transition: color 0.3s ease;
  z-index: 0;
}
.xpost-sidebar-tour-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: #004858;
  border-radius: 30px;
  transform: translateX(-101%);
  transition: transform 0.3s ease;
  z-index: -1;
}
.xpost-sidebar-tour-btn:hover {
  color: #fff;
  text-decoration: none;
}
.xpost-sidebar-tour-btn:hover::before {
  transform: translateX(0);
}

/* Static post content (old articles) strip out old section chrome */
.xpost-content-static .about-us,
.xpost-content-static .package-section {
  padding: 0 !important;
  background: none !important;
}
.xpost-content-static .section-heading { margin-bottom: 24px !important; }
.xpost-content-static .container { padding: 0 !important; max-width: none !important; }
.xpost-content-static .row { margin: 0 !important; }

/* Force all column wrappers to full width so text matches map width */
.xpost-content-static [class*="col-"] {
  flex: 0 0 100% !important;
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.xpost-content-static .justify-content-center {
  justify-content: flex-start !important;
}

/* Google Maps iframes — responsive & contained */
.xpost-content-static iframe {
  display: block;
  border-radius: 14px;
  border: none;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  margin-bottom: 8px;
}

/* Map section containment — prevent route bleeding past edge */
section[id^="map-"] {
  overflow: hidden;
  max-width: 100%;
  width: 100%;
}
section[id^="map-"] iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  border: none;
}

/* Mobile map height — tall enough to show full route + directions panel */
@media (max-width: 767px) {
  section[id^="map-"] iframe {
    height: 420px;
  }
}
@media (max-width: 480px) {
  section[id^="map-"] iframe {
    height: 380px;
  }
}
.xpost-content-static h1 {
  font-size: 1.8rem;
  font-weight: 800;
  color: #004858;
  margin-bottom: 16px;
  text-align: left;
}
.xpost-content-static h2 {
  font-size: 1.3rem;
  font-weight: 700;
  color: #004858;
  margin-top: 32px;
  margin-bottom: 12px;
}
.xpost-content-static .card {
  border: none;
  box-shadow: none;
  border-radius: 0;
}
.xpost-content-static .card-header {
  background: none;
  border: none;
  border-bottom: 1px solid #eef0f2;
  padding: 14px 0;
  cursor: pointer;
}
.xpost-content-static .card-header h3 {
  font-size: 1rem;
  font-weight: 700;
  color: #004858;
  margin: 0;
}
.xpost-content-static .card-body { padding: 12px 0 16px; }
.xpost-content-static .overflow-hidden { overflow: visible !important; }

/* Strip white card wrappers from renderUniqueContent sections */
.xpost-content-static .col-12 > div {
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
}
.xpost-content-static .col-12 h2 {
  font-size: 1.5rem !important;
  font-weight: 800 !important;
  color: #081d43 !important;
  margin-top: 44px !important;
  margin-bottom: 16px !important;
  padding-bottom: 10px !important;
  border-bottom: 2px solid #edf6f9 !important;
  line-height: 1.3 !important;
}
.xpost-content-static .col-12 > div > div {
  font-size: 1rem !important;
  line-height: 1.85 !important;
  color: #2d2d2d !important;
  width: 100% !important;
}

/* Tour card price */
.xpost-sidebar-tour-price {
  font-size: 1.6rem;
  font-weight: 800;
  color: #fff;
  margin-bottom: 4px;
  line-height: 1;
}
.xpost-sidebar-tour-divider {
  width: 40px;
  height: 2px;
  background: rgba(255,255,255,0.4);
  margin: 10px auto 12px;
}

/* ============================================================
   INLINE INFO CARDS (chain-lakes-loop TripInfo)
   ============================================================ */
.xinfo-card {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  background: #fff;
  border-radius: 14px;
  padding: 20px;
  margin: 32px 0;
  box-shadow: 0 2px 16px rgba(0,72,88,0.08);
  border: 1px solid #e8eef0;
}
.xinfo-card-img {
  width: 130px;
  height: 130px;
  object-fit: cover;
  border-radius: 10px;
  flex-shrink: 0;
}
.xinfo-card-body {
  flex: 1;
  min-width: 0;
}
.xinfo-card-label {
  font-size: 11px;
  font-weight: 700;
  color: #9aacb0;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin: 0 0 6px;
}
.xinfo-card-title {
  font-size: 1.15rem;
  font-weight: 800;
  color: #003d4d;
  margin: 0 0 8px;
  line-height: 1.25;
}
.xinfo-card-price {
  font-size: 1.4rem;
  font-weight: 800;
  color: #007a8a;
  margin: 0 0 10px;
  line-height: 1;
}
.xinfo-card-desc {
  font-size: 16px;
  color: #556;
  margin: 0 0 14px;
  line-height: 1.6;
}
.xinfo-card-btn {
  display: inline-block;
  background: linear-gradient(135deg, #ff7043, #e64a19);
  color: #fff;
  padding: 9px 18px;
  border-radius: 8px;
  text-decoration: none;
  font-size: 16px;
  font-weight: 700;
}
.xinfo-card-btn:hover { color: #fff; text-decoration: none; opacity: 0.9; }

@media (max-width: 500px) {
  .xinfo-card { flex-direction: column; gap: 14px; }
  .xinfo-card-img { width: 100%; height: 180px; border-radius: 8px; }
}


/* FAQ Accordion */
.xfaq-section {
  margin: 48px 0 0;
}
.xfaq-title {
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  color: #1a2e35 !important;
  margin-bottom: 20px !important;
  margin-top: 0 !important;
  border-bottom: none !important;
  padding-bottom: 0 !important;
}
.xfaq-list {
  /* no top border — avoids double line under title */
}
.xfaq-item {
  border-bottom: 1px solid #e0f0ee;
}
.xfaq-question {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 16px 0 !important;
  cursor: pointer !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: #1a2e35 !important;
  margin: 0 !important;
  user-select: none;
  border-bottom: none !important;
  line-height: 1.4 !important;
}
.xfaq-question span:first-child {
  color: #1a2e35;
  flex: 1;
  min-width: 0;
}
.xfaq-question:hover,
.xfaq-question:hover span:first-child {
  color: #007a8a !important;
}
.xfaq-question:hover .xfaq-icon {
  color: #007a8a;
}
.xfaq-icon {
  font-size: 1.4rem;
  font-weight: 300;
  color: #5a8a90;
  flex-shrink: 0;
  margin-left: 16px;
  line-height: 1;
}
.xfaq-answer {
  padding: 0 0 16px;
  color: #4a5568;
  line-height: 1.75;
}
.xfaq-answer p {
  margin: 0;
}

/* Related posts section */
.xrelated-section {
  background: #fff;
  padding: 28px 0 56px;
}
.xrelated-title {
  font-size: 1.5rem;
  font-weight: 800;
  color: #004858;
  margin-bottom: 28px;
}
.xrelated-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
@media (max-width: 768px) {
  .xrelated-grid {
    grid-template-columns: 1fr;
  }
}
.xrelated-card {
  display: block;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none;
  border: 1px solid #e2e8e9;
  transition: box-shadow 0.2s, transform 0.2s;
}
.xrelated-card:hover {
  box-shadow: 0 6px 20px rgba(0,72,88,0.1);
  transform: translateY(-2px);
  text-decoration: none;
}
.xrelated-card-img {
  width: 100%;
  height: 160px;
  object-fit: cover;
  display: block;
}
.xrelated-card-body {
  padding: 16px;
}
.xrelated-card-title {
  font-size: 16px;
  font-weight: 700;
  color: #004858;
  margin: 0 0 6px;
  line-height: 1.4;
}
.xrelated-card-excerpt {
  font-size: 14px;
  color: #6b7a7d;
  margin: 0;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* =============================================
   TRIP FINDER  —  /find-my-trip
   ============================================= */

/* ─ Page wrapper ─ */
.tfinder-page {
  min-height: 100vh;
  background: #f4f7fa;
  padding-top: 76px;
}

/* ─ Intro screen ─ */
.tfinder-intro {
  padding: 60px 0 80px;
  background: #fff;
  border-bottom: 1px solid #e8edf2;
}
.tfinder-intro-inner {
  max-width: 560px;
  margin: 0 auto;
  text-align: center;
}
.tfinder-intro-eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #004858;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.tfinder-intro-title {
  font-size: 40px;
  font-weight: 900;
  color: #081d43;
  line-height: 1.15;
  margin: 0 0 14px;
}
.tfinder-intro-sub {
  font-size: 17px;
  color: #555;
  line-height: 1.6;
  margin: 0 0 36px;
}
.tfinder-intro-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-bottom: 40px;
}
.tfinder-start-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 260px;
  padding: 14px 24px;
  border-radius: 50px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: transform 0.15s, background 0.15s, border-color 0.15s, color 0.15s;
  white-space: nowrap;
  font-family: inherit;
  border: 2px solid transparent;
  left: auto !important;
  position: static !important;
}
.tfinder-start-btn--primary {
  background: #004858;
  color: #fff;
  border-color: #004858;
}
.tfinder-start-btn--primary:hover:not(:disabled) {
  background: #003540;
  border-color: #003540;
  transform: translateY(-2px);
}
.tfinder-start-btn--primary:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}
.tfinder-start-btn--ghost {
  background: transparent;
  color: #555;
  border-color: #cdd3da;
}
.tfinder-start-btn--ghost:hover {
  border-color: #004858;
  color: #004858;
}
.tfinder-intro-steps {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex-wrap: wrap;
}
.tfinder-intro-step {
  display: flex;
  align-items: center;
  gap: 5px;
  background: #f4f7fa;
  border: 1px solid #e0e6ed;
  border-radius: 20px;
  color: #555;
  font-size: 12px;
  font-weight: 600;
  padding: 5px 12px;
}
.tfinder-intro-step i { font-size: 11px; }

/* ─ Quiz screen ─ */
.tfinder-q-screen {
  background: #fff;
  min-height: 70vh;
  transition: opacity 0.26s ease, transform 0.26s ease;
}
.tfinder-q-exit-forward {
  opacity: 0;
  transform: translateX(-32px);
  pointer-events: none;
}
.tfinder-q-exit-back {
  opacity: 0;
  transform: translateX(32px);
  pointer-events: none;
}

/* Top bar */
.tfinder-topbar {
  background: #fff;
  border-bottom: 1px solid #e0e6ed;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  padding: 12px 0;
  position: sticky;
  top: 114px;
  z-index: 99;
}
.tfinder-topbar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.tfinder-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: 1.5px solid #e0e6ed;
  color: #555;
  font-size: 16px;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 20px;
  cursor: pointer;
  transition: border-color 0.15s, color 0.15s;
  font-family: inherit;
  flex-shrink: 0;
  left: auto !important;
  position: static !important;
}
.tfinder-back-btn:hover { border-color: #004858; color: #004858; }
.tfinder-dots {
  display: flex;
  align-items: center;
  gap: 6px;
}
.tfinder-dot {
  height: 6px;
  width: 6px;
  border-radius: 3px;
  background: #cdd3da;
  transition: all 0.22s ease;
}
.tfinder-dot.done {
  background: #004858;
  width: 18px;
}
.tfinder-dot.active {
  background: #081d43;
  width: 6px;
}
.tfinder-topbar-count {
  font-size: 14px;
  font-weight: 600;
  color: #9a9a9a;
  flex-shrink: 0;
}

/* Question body */
.tfinder-q-body {
  max-width: 520px;
  margin: 0 auto;
  padding: 40px 0 60px;
  box-sizing: border-box;
  text-align: center;
}
.tfinder-q-icon {
  font-size: 26px;
  color: #004858;
  margin-bottom: 12px;
}
.tfinder-q-title {
  font-size: 26px;
  font-weight: 800;
  color: #081d43;
  line-height: 1.25;
  margin: 0 0 6px;
}
.tfinder-q-sub {
  font-size: 16px;
  color: #9a9a9a;
  margin: 0 0 28px;
}

/* Options */
.tfinder-options-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  text-align: left;
}
.tfinder-opt {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  padding: 15px 18px;
  background: #fff;
  border: 1.5px solid #e0e6ed;
  border-radius: 12px;
  cursor: pointer;
  text-align: left;
  box-sizing: border-box;
  transition: background 0.14s, border-color 0.14s, transform 0.1s;
  font-family: inherit;
  left: auto !important;
  position: static !important;
}
.tfinder-opt:hover {
  border-color: #004858;
  background: #f4f7fa;
  transform: translateX(3px);
}
.tfinder-opt:active { transform: scale(0.99); }
.tfinder-opt--selected {
  background: #eaf4f6 !important;
  border-color: #004858 !important;
  transform: none !important;
}
.tfinder-opt-icon {
  width: 36px;
  height: 36px;
  background: #f4f7fa;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  color: #555;
  flex-shrink: 0;
}
.tfinder-opt--selected .tfinder-opt-icon {
  background: #d0e8ed;
  color: #004858;
}
.tfinder-opt-text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.tfinder-opt-label {
  font-size: 16px;
  font-weight: 700;
  color: #081d43;
  display: block;
  line-height: 1.15;
}
.tfinder-opt-sub {
  font-size: 14px;
  color: #9a9a9a;
  display: block;
  line-height: 1.2;
}
.tfinder-opt-check {
  font-size: 16px;
  color: #004858;
  opacity: 0;
  transition: opacity 0.15s;
  flex-shrink: 0;
}
.tfinder-opt--selected .tfinder-opt-check { opacity: 1; }

/* ─ Results ─ */
.tfinder-results-hero {
  background: #f4f7fa;
  padding: 0 0 60px;
}
.tfinder-rh-inner {
  padding: 48px 0 32px;
  border-bottom: 1px solid #e0e6ed;
  margin-bottom: 40px;
}
.tfinder-rh-eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #004858;
  margin: 0 0 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.tfinder-rh-title {
  font-size: 32px;
  font-weight: 900;
  color: #081d43;
  margin: 0 0 18px;
  line-height: 1.2;
}
.tfinder-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 20px;
}
.tfinder-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: #fff;
  border: 1px solid #e0e6ed;
  color: #555;
  border-radius: 20px;
  font-size: 14px;
  font-weight: 600;
  padding: 5px 13px;
}
.tfinder-restart-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: linear-gradient(135deg, #ff7043 0%, #e64a19 100%);
  border: none;
  color: #fff;
  font-size: 14px;
  padding: 6px 16px;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
  transition: opacity 0.14s;
  left: auto !important;
  position: static !important;
  width: 130px;
}
.tfinder-restart-btn:hover { opacity: 0.88; }

/* Results body */
.tfinder-results-body {
  padding: 0 0 60px;
  box-sizing: border-box;
  width: 100%;
}
.tfinder-results-section { margin-bottom: 40px; }

/* Match cards */
.tfinder-matches-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
.tfinder-match-card {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  border: 1px solid #e8edf2;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  transition: transform 0.18s, box-shadow 0.18s;
}
.tfinder-match-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.10);
  text-decoration: none;
  color: inherit;
}
.tfinder-match-img-wrap {
  position: relative;
  height: 190px;
  overflow: hidden;
  flex-shrink: 0;
}
.tfinder-match-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s;
}
.tfinder-match-card:hover .tfinder-match-img { transform: scale(1.05); }
.tfinder-match-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  background: #004858;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 20px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.tfinder-match-badge--perfect { background: linear-gradient(135deg, #ff7043 0%, #e64a19 100%); }
.tfinder-match-body {
  padding: 16px 18px 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 5px;
}
.tfinder-match-region {
  font-size: 11px;
  font-weight: 700;
  color: #9a9a9a;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.tfinder-match-title {
  font-size: 16px;
  font-weight: 800;
  color: #081d43;
  line-height: 1.3;
  margin: 0;
}
.tfinder-match-excerpt {
  font-size: 16px;
  color: #555;
  line-height: 1.5;
  margin: 0;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.tfinder-match-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 2px;
}
.tfinder-tag {
  background: #f4f7fa;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  color: #555;
  padding: 2px 8px;
}
.tfinder-match-cta {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 10px;
  font-size: 16px;
  font-weight: 700;
  color: #004858;
}

/* Others strip */
.tfinder-others-label {
  font-size: 11px;
  font-weight: 700;
  color: #9a9a9a;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0 0 12px;
}
.tfinder-others-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.tfinder-mini-card {
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  border: 1px solid #e8edf2;
  opacity: 0.8;
  display: flex;
  flex-direction: column;
  transition: opacity 0.18s, transform 0.18s;
}
.tfinder-mini-card:hover {
  opacity: 1;
  transform: translateY(-2px);
  text-decoration: none;
  color: inherit;
}
.tfinder-mini-img { width: 100%; height: 90px; object-fit: cover; display: block; }
.tfinder-mini-body { padding: 10px 12px; display: flex; flex-direction: column; gap: 3px; }
.tfinder-mini-region { font-size: 11px; font-weight: 700; color: #9a9a9a; text-transform: uppercase; }
.tfinder-mini-title { font-size: 16px; font-weight: 700; color: #081d43; line-height: 1.3; }

/* Custom CTA */
.tfinder-custom-cta {
  background: #fff;
  border: 1.5px solid #e0e6ed;
  border-radius: 14px;
  padding: 36px 32px;
  display: flex;
  align-items: center;
  gap: 28px;
}
.tfinder-custom-cta-text { flex: 1; }
.tfinder-custom-cta-icon {
  font-size: 26px;
  color: #004858;
  margin-bottom: 10px;
}
.tfinder-custom-cta-title {
  font-size: 20px;
  font-weight: 800;
  color: #081d43;
  margin: 0 0 8px;
}
.tfinder-custom-cta-sub {
  font-size: 16px;
  color: #555;
  line-height: 1.6;
  margin: 0;
}
.tfinder-custom-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #004858;
  color: #fff;
  font-size: 16px;
  font-weight: 800;
  padding: 13px 24px;
  border-radius: 50px;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  transition: background 0.14s, transform 0.12s;
}
.tfinder-custom-cta-btn:hover {
  background: #003540;
  transform: translateY(-2px);
  text-decoration: none;
  color: #fff;
}

/* ─ Nav submit pill ─ */
.nav-submit-btn {
  background: linear-gradient(135deg, #ff7043 0%, #e64a19 100%) !important;
  color: #fff !important;
  border-radius: 20px !important;
  padding: 7px 20px !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  transition: opacity 0.15s !important;
  display: inline-flex !important;
  align-items: center !important;
}
.nav-submit-btn:hover { opacity: 0.88 !important; color: #fff !important; }

/* ─ Itineraries page banner ─ */
.itineraries-finder-banner {
  background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
  padding: 18px 0;
}
.itineraries-finder-banner-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
.itineraries-finder-banner-title { font-size: 17px; font-weight: 700; color: #fff; }
.itineraries-finder-banner-sub { font-size: 14px; color: rgba(255,255,255,0.5); margin-top: 2px; }
.itineraries-finder-banner-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #4ade80;
  color: #0f172a;
  font-size: 16px;
  font-weight: 800;
  padding: 10px 26px;
  border-radius: 50px;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.14s, transform 0.12s;
}
.itineraries-finder-banner-btn:hover {
  background: #22c55e;
  transform: translateY(-1px);
  text-decoration: none;
  color: #0f172a;
}

/* ─ Responsive ─ */
@media (max-width: 620px) {
  .tfinder-page { padding-top: 58px; }
  .tfinder-intro { padding: 36px 0 50px; }
  .tfinder-intro-title { font-size: 26px; }
  .tfinder-intro-sub { margin-bottom: 28px; }
  .tfinder-intro-steps { display: none; }
  .tfinder-q-title { font-size: 20px; }
  .tfinder-q-sub { margin-bottom: 20px; }
  .tfinder-q-icon { font-size: 22px; margin-bottom: 8px; }
  .tfinder-rh-title { font-size: 22px; }
  .tfinder-matches-grid { grid-template-columns: 1fr; }
  .tfinder-others-row { grid-template-columns: 1fr 1fr; }
  .tfinder-custom-cta { flex-direction: column; gap: 20px; padding: 24px 20px; }
  .tfinder-custom-cta-btn { width: 100%; justify-content: center; }
  .tfinder-start-btn { width: 100%; max-width: 320px; }
  .tfinder-rh-inner { padding: 28px 0 20px; }
  .tfinder-q-body { padding: 20px 0 32px; }
  .tfinder-topbar { top: 58px; padding: 8px 0; }
  .tfinder-topbar-inner { padding: 12px 4px 0px 4px; }
  .tfinder-back-btn { font-size: 14px; padding: 5px 11px; margin-left: 2px; }
  .tfinder-topbar-count { font-size: 13px; }
  .tfinder-opt { padding: 12px 14px; gap: 12px; }
  .tfinder-opt-icon { width: 32px; height: 32px; font-size: 14px; }
  .tfinder-opt-label { font-size: 16px; }
  .tfinder-opt-sub { font-size: 14px; }
  .tfinder-chips { gap: 6px; }
  .tfinder-chip { font-size: 14px; padding: 4px 10px; }
}
@media (max-width: 380px) {
  .tfinder-others-row { grid-template-columns: 1fr; }
  .tfinder-intro-title { font-size: 22px; }
  .tfinder-q-title { font-size: 18px; }
}

/* =============================================
   REQUEST CUSTOM ITINERARY  —  /request-itinerary
   ============================================= */
.xrequest-main {
  min-height: 100vh;
  background: #f4f6f8;
  padding: 100px 0 80px;
}
.xrequest-container {
  max-width: 640px;
  margin: 0 auto;
  padding: 0 24px;
  box-sizing: border-box;
}
.xrequest-header { text-align: center; margin-bottom: 32px; }
.xrequest-badge {
  display: inline-block;
  background: #dcfce7;
  color: #16a34a;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 4px 14px;
  border-radius: 20px;
  margin-bottom: 14px;
}
.xrequest-title { font-size: 32px; font-weight: 800; color: #111827; margin: 0 0 10px; }
.xrequest-sub { font-size: 16px; color: #6b7280; line-height: 1.6; margin: 0; }
.xrequest-card {
  background: #fff;
  border-radius: 18px;
  padding: 36px 40px;
  box-shadow: 0 2px 20px rgba(0,0,0,0.07);
}
.xrequest-field { margin-bottom: 18px; }
.xrequest-field label { display: block; font-size: 16px; font-weight: 700; color: #374151; margin-bottom: 6px; }
.xrequest-field input,
.xrequest-field textarea,
.xrequest-field select {
  width: 100%;
  box-sizing: border-box;
  border: 1.5px solid #e5e7eb;
  border-radius: 10px;
  padding: 11px 14px;
  font-size: 16px;
  color: #111827;
  background: #fafafa;
  outline: none;
  font-family: inherit;
  transition: border-color 0.14s;
  -webkit-appearance: none;
}
.xrequest-field input:focus,
.xrequest-field textarea:focus,
.xrequest-field select:focus { border-color: #16a34a; background: #fff; }
.xrequest-field textarea { resize: vertical; min-height: 90px; }
.xrequest-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.xrequest-submit-btn {
  width: 100%;
  background: #16a34a;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  padding: 14px;
  border: none;
  border-radius: 50px;
  cursor: pointer;
  margin-top: 6px;
  font-family: inherit;
  transition: background 0.14s, transform 0.12s;
}
.xrequest-submit-btn:hover { background: #15803d; transform: translateY(-1px); }
.xrequest-submit-btn:disabled { background: #d1d5db; cursor: not-allowed; transform: none; }
.xrequest-success { text-align: center; padding: 44px 20px; }
.xrequest-success-icon { font-size: 48px; color: #16a34a; margin-bottom: 14px; }
.xrequest-success-title { font-size: 24px; font-weight: 800; color: #111827; margin: 0 0 10px; }
.xrequest-success-sub { font-size: 16px; color: #6b7280; line-height: 1.6; }
.xrequest-error {
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 8px;
  color: #dc2626;
  font-size: 16px;
  padding: 10px 14px;
  margin-bottom: 16px;
}
@media (max-width: 500px) {
  .xrequest-card { padding: 24px 18px; }
  .xrequest-row { grid-template-columns: 1fr; }
  .xrequest-title { font-size: 26px; }
}

/* ── Inline email capture ── */
.xiec-wrap {
  margin: 40px 0;
  background: linear-gradient(135deg, #eaf4f7 0%, #d8ecf3 100%);
  border: 1.5px solid #9ac8d8;
  border-radius: 30px;
  padding: 28px 32px;
}
.xiec-inner {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}
.xiec-icon {
  font-size: 28px;
  color: #0a7a8f;
  flex-shrink: 0;
}
.xiec-text {
  flex: 1;
  min-width: 160px;
}
.xiec-text strong {
  display: block;
  font-size: 17px;
  font-weight: 700;
  color: #004858;
  margin-bottom: 2px;
}
.xiec-text span {
  font-size: 14px;
  color: #4a7a90;
}
.xiec-form {
  display: flex;
  gap: 8px;
  flex: 2;
  min-width: 240px;
}
.xiec-input {
  flex: 1;
  border: 1.5px solid #9ac8d8;
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 14px;
  outline: none;
  background: #fff;
  color: #004858;
  transition: border-color 0.2s;
}
.xiec-input:focus { border-color: #0a7a8f; }
.xiec-btn {
  background: linear-gradient(135deg, #004858 0%, #0a7a8f 100%);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 10px 20px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.2s;
}
.xiec-btn:hover { opacity: 0.88; }
.xiec-btn:disabled { opacity: 0.6; cursor: not-allowed; }
.xiec-success {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 24px;
}
.xiec-success .xiec-checkmark {
  font-size: 22px;
  color: #0a7a8f;
  font-weight: 700;
}
.xiec-success p {
  margin: 0;
  font-size: 15px;
  color: #004858;
  font-weight: 500;
}
.xiec-error {
  width: 100%;
  font-size: 13px;
  color: #dc2626;
  margin: 6px 0 0;
}
@media (max-width: 640px) {
  .xiec-wrap { padding: 22px 18px; }
  .xiec-inner { gap: 14px; }
  .xiec-form { flex-direction: column; }
  .xiec-btn { width: 100%; }
}

/* suppress global blockquote:before on custom quote */
.xguide-quote:before { content: none; }

/* ── Guided experience section ── */
.xguide-section {
  padding: 90px 0;
  background: #f7faf9;
}
.xguide-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
.xguide-photo-wrap {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0,0,0,0.15);
}
.xguide-photo {
  width: 100%;
  height: 500px;
  object-fit: cover;
  display: block;
}
.xguide-price-badge {
  position: absolute;
  bottom: 20px;
  left: 20px;
  background: #fff;
  color: #1a3c34;
  font-size: 20px;
  font-weight: 800;
  padding: 10px 18px;
  border-radius: 50px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.12);
  letter-spacing: -0.3px;
}
.xguide-price-badge span {
  font-size: 14px;
  font-weight: 500;
  color: #5a7a72;
}
.xguide-eyebrow {
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  background: linear-gradient(135deg, #004858 0%, #0a7a8f 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 10px;
}
.xguide-heading {
  font-size: 38px;
  font-weight: 800;
  color: #004858;
  line-height: 1.15;
  margin-bottom: 18px;
}
.xguide-body {
  font-size: 16px;
  line-height: 1.7;
  color: #2d4a55;
  margin-bottom: 24px;
}
.xguide-perks {
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.xguide-perks li {
  font-size: 15px;
  color: #004858;
  display: flex;
  align-items: center;
  gap: 9px;
}
.xguide-perks li i {
  color: #0a7a8f;
  font-size: 13px;
  flex-shrink: 0;
}
.xguide-quote {
  background: #fff;
  border-left: 4px solid #0a7a8f;
  border-radius: 0 12px 12px 0;
  padding: 18px 22px;
  margin: 0 0 28px;
}
.xguide-quote p {
  font-size: 15px;
  font-style: italic;
  color: #2d4a55;
  margin: 0 0 10px;
  line-height: 1.6;
}
.xguide-quote footer {
  display: flex;
  align-items: center;
  gap: 10px;
}
.xguide-stars {
  color: #f59e0b;
  font-size: 14px;
  letter-spacing: 1px;
}
.xguide-quote cite {
  font-style: normal;
  font-size: 13px;
  color: #5a7a85;
  font-weight: 500;
}
.xguide-cta {
  display: inline-flex;
  align-items: center;
  background: linear-gradient(135deg, #004858 0%, #0a7a8f 100%);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  padding: 16px 32px;
  border-radius: 50px;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  transition: box-shadow 0.3s, transform 0.2s;
  box-shadow: 0 4px 20px rgba(0,72,88,0.35);
  z-index: 0;
}
.xguide-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #0a7a8f 0%, #004858 100%);
  transform: translateX(-100%);
  transition: transform 0.35s ease;
  z-index: -1;
  border-radius: 50px;
}
.xguide-cta:hover::before { transform: translateX(0); }
.xguide-cta:hover {
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(0,72,88,0.4);
}
.xguide-note {
  font-size: 12px;
  color: #7a9a92;
  margin-top: 10px;
  margin-bottom: 0;
}
@media (max-width: 991px) {
  .xguide-grid { grid-template-columns: 1fr; gap: 36px; }
  .xguide-photo { height: 340px; }
  .xguide-heading { font-size: 30px; }
}
@media (max-width: 576px) {
  .xguide-section { padding: 60px 0; }
  .xguide-perks { grid-template-columns: 1fr; }
  .xguide-cta { width: 100%; justify-content: center; }
}
