.elementor-kit-6{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS */.wpcf7{width:100%}
.wpcf7-form{font-family:'Inter',sans-serif}
.wpcf7-form p{display:flex; flex-wrap:wrap; gap:14px; margin:0 0 14px}
.wpcf7-form p > label{flex:1 1 200px; display:flex; flex-direction:column; gap:.3rem; font-size:.85rem; font-weight:600; color:#0f2a37}
.wpcf7-form-control-wrap{display:block; width:100%}
.wpcf7-form input[type="text"],.wpcf7-form input[type="email"],.wpcf7-form input[type="tel"],.wpcf7-form input[type="date"],.wpcf7-form input[type="number"],.wpcf7-form input[type="url"],.wpcf7-form select,.wpcf7-form textarea{width:100%; padding:.7rem .9rem; border:1px solid #e6ddc9; border-radius:8px; font-size:.95rem; font-family:inherit; background:#fdfaf3; color:#0f2a37; font-weight:400; line-height:1.4}
.wpcf7-form input:focus,.wpcf7-form select:focus,.wpcf7-form textarea:focus{outline:2px solid #1f7a8c; border-color:#1f7a8c}
.wpcf7-form textarea{min-height:80px; resize:vertical}
.wpcf7-form p:last-of-type{margin-top:8px; margin-bottom:0}
.wpcf7-form input[type="submit"]{width:100%; background:#c95a3a; color:#fff; padding:.9rem 1.4rem; border-radius:999px; font-weight:600; border:0; cursor:pointer; font-size:.98rem; font-family:inherit; line-height:1; transition:transform .15s ease, box-shadow .15s ease, background .15s ease}
.wpcf7-form input[type="submit"]:hover{transform:translateY(-1px); box-shadow:0 8px 22px rgba(201,90,58,.35); background:#b14a30}
.wpcf7-form input[type="submit"]:disabled{opacity:.6; cursor:wait}
.wpcf7-response-output{border-radius:8px; padding:12px 16px; margin:16px 0 0; font-size:.9rem; line-height:1.4}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.unaccepted .wpcf7-response-output,.wpcf7 form.payment-required .wpcf7-response-output{border:1px solid #c95a3a; background:#fdf0eb; color:#c95a3a}
.wpcf7 form.sent .wpcf7-response-output{border:1px solid #2e7d4f; background:#ecf6f0; color:#2e7d4f}
.wpcf7-not-valid-tip{color:#c95a3a; font-size:.8rem; margin-top:.25rem; font-weight:500}
.wpcf7-form-control.wpcf7-not-valid{border-color:#c95a3a !important}
.wpcf7-spinner{vertical-align:middle; margin-left:.5rem}
@media (max-width:600px){.wpcf7-form p > label{flex:1 1 100%}}
/* Hide duplicate WP page title when Elementor renders the page */
body.elementor-page .entry-content > article > header { display: none; }
body.elementor-page main#main.entry-content { max-width: none; padding: 0; margin: 0; }
body.elementor-page article { padding: 0 !important; margin: 0 !important; }
/* === New homepage design — CF7 booking card === */
.elementor-widget-shortcode .wpcf7 { width:100%; }
.elementor-widget-shortcode .wpcf7-form { font-family: 'Inter', sans-serif; }
.elementor-widget-shortcode .wpcf7-form p {
  display:flex; flex-wrap:wrap; gap:12px; margin:0 0 12px;
}
.elementor-widget-shortcode .wpcf7-form p > label {
  flex:1 1 180px; display:flex; flex-direction:column; gap:6px;
  font-size:13px; font-weight:800; color:#102027;
}
.elementor-widget-shortcode .wpcf7-form input[type="text"],
.elementor-widget-shortcode .wpcf7-form input[type="email"],
.elementor-widget-shortcode .wpcf7-form input[type="tel"],
.elementor-widget-shortcode .wpcf7-form input[type="date"],
.elementor-widget-shortcode .wpcf7-form input[type="number"],
.elementor-widget-shortcode .wpcf7-form select,
.elementor-widget-shortcode .wpcf7-form textarea {
  width:100%; padding:13px 14px; border-radius:15px; border:1px solid #d9e5e2;
  font: inherit; background:#fbfdfc; color:#102027; font-weight:400; line-height:1.4;
  outline:none; transition: border-color .2s, box-shadow .2s;
}
.elementor-widget-shortcode .wpcf7-form input:focus,
.elementor-widget-shortcode .wpcf7-form select:focus,
.elementor-widget-shortcode .wpcf7-form textarea:focus {
  border-color:#0b6b78; box-shadow:0 0 0 4px rgba(11,107,120,.12);
}
.elementor-widget-shortcode .wpcf7-form textarea { min-height:88px; resize:vertical; }
.elementor-widget-shortcode .wpcf7-form input[type="submit"] {
  width:100%; background:#053945; color:#fff; padding:14px 19px;
  border-radius:999px; font-weight:800; border:0; cursor:pointer;
  font-size:14px; font-family:inherit; line-height:1;
  transition: transform .15s, background .15s;
  margin-top:6px;
}
.elementor-widget-shortcode .wpcf7-form input[type="submit"]:hover {
  background:#082f38; transform:translateY(-2px);
}
.elementor-widget-shortcode .wpcf7-response-output {
  border-radius:14px; padding:12px 16px; margin:14px 0 0; font-size:13px;
}
.elementor-widget-shortcode .wpcf7 form.invalid .wpcf7-response-output {
  border:1px solid #b96336; background:#fbeee5; color:#b96336;
}
.elementor-widget-shortcode .wpcf7 form.sent .wpcf7-response-output {
  border:1px solid #1e513b; background:#e8f3ec; color:#1e513b;
}
.elementor-widget-shortcode .wpcf7-not-valid-tip { color:#b96336; font-size:12px; margin-top:4px; }

/* === Vjosa responsive container fixes (managed) === */
/* These rules add the mobile/tablet behavior that the old Section/Column
   layout gave for free but the new Container layout doesn't.
   The header is explicitly excluded so it stays horizontal with hamburger. */

/* ---- MOBILE: 767 px and below ---- */
@media (max-width: 767px) {
  /* Stack any row-flex container to column. Header excluded. */
  .e-con.e-flex:not(.vjosa-header):not(.vjosa-no-stack):not(.swiper-wrapper) {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  /* Direct child containers fill the full width */
  .e-con.e-flex:not(.vjosa-header):not(.vjosa-no-stack) > .e-con,
  .e-con.e-flex:not(.vjosa-header):not(.vjosa-no-stack) > .e-con-inner > .e-con {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
  }

  /* Reduce horizontal page padding */
  .e-con.e-parent {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* Compress big section vertical padding (boxed inner) */
  .e-con-boxed > .e-con-inner {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }

  /* Cap headings */
  body h1, body .elementor-widget-heading h1.elementor-heading-title {
    font-size: clamp(2rem, 9vw, 3.2rem) !important;
    line-height: 1.05 !important;
    letter-spacing: -1.5px !important;
  }
  body h2, body .elementor-widget-heading h2.elementor-heading-title {
    font-size: clamp(1.6rem, 7vw, 2.4rem) !important;
    line-height: 1.1 !important;
  }
  body h3, body .elementor-widget-heading h3.elementor-heading-title {
    font-size: 1.3rem !important;
  }
  body p { font-size: 15px !important; line-height: 1.6 !important; }

  /* Hero / fixed min-height sections become content-driven on mobile */
  .e-con[style*="min-height"] {
    min-height: auto !important;
  }

  /* Image widgets behave */
  .elementor-widget-image,
  .elementor-widget-image .elementor-widget-container,
  .elementor-widget-image img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
  }

  /* CF7 booking card fields wrap properly */
  .elementor-widget-shortcode .wpcf7-form p > label {
    flex: 1 1 100% !important;
  }

  /* Image-stack containers (used in Why Vjosa) should stack vertically */
  .e-con .e-con.e-child { margin-bottom: 14px; }

  /* Trust pills (3-column inner row) should stack and look like list */
  .e-con .e-con.e-child > .elementor-widget-text-editor { margin-bottom: 12px; }

  /* Footer columns stack with left alignment */
  .vjosa-footer .e-con-inner,
  .vjosa-footer > .e-con {
    align-items: flex-start !important;
    text-align: left !important;
  }
}

/* ---- TABLET: 768 – 1024 px ---- */
@media (min-width: 768px) and (max-width: 1024px) {
  /* 3-column card grids become 2-column on tablet */
  .e-con.e-flex.e-parent > .e-con.e-child:nth-child(n) {
    flex-basis: calc(50% - 12px) !important;
    max-width: calc(50% - 12px) !important;
  }
  /* Heading sizes a bit smaller */
  body h1 { font-size: clamp(2.6rem, 5.5vw, 3.6rem) !important; }
  body h2 { font-size: clamp(2rem, 4vw, 2.8rem) !important; }
  /* Page padding */
  .e-con.e-parent {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}

/* ---- HEADER: stays horizontal, becomes compact ---- */
.vjosa-header.e-con.e-flex,
.vjosa-header .e-con-inner {
  flex-direction: row !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
}
@media (max-width: 1024px) {
  /* Hide the nav-menu container on tablet/mobile (hamburger lives inside it) */
  .vjosa-header .e-con > .elementor-widget-nav-menu {
    display: block;
  }
  /* Shrink Whatsapp button text to icon-only on tight screens */
  .vjosa-header .elementor-widget-button .elementor-button .elementor-button-text {
    display: inline;
  }
}
@media (max-width: 480px) {
  /* On very small phones: drop the WhatsApp button text, keep icon */
  .vjosa-header .elementor-widget-button:first-of-type .elementor-button-text {
    display: none;
  }
  .vjosa-header .elementor-widget-button:first-of-type .elementor-button {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
}

/* ---- GLOBAL safety: prevent horizontal scroll caused by overflowing children ---- */
html, body { overflow-x: hidden; }
.e-con, .e-con-inner { max-width: 100%; }
.elementor-widget-container { word-break: break-word; }

/* === END Vjosa responsive === */

/* === Vjosa header + footer restyle (managed) === */
/* Restyles the theme's existing .site-nav and .site-footer markup to match
   the new sand/teal design — works without any theme file upload. */

/* HEADER — make the existing .site-nav look like the new .topbar */
.site-nav {
  position: sticky !important; top: 0 !important; z-index: 50 !important;
  background: rgba(247,241,232,.92) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  backdrop-filter: blur(16px) !important;
  border-bottom: 1px solid rgba(217,229,226,.88) !important;
  box-shadow: none !important;
}
.site-nav .nav-inner {
  display: flex !important; align-items: center !important;
  justify-content: space-between !important; gap: 20px !important;
  padding: 10px 0 !important;
}

/* Text "Vjosa Adventures" logo — replace with V brand mark + name */
.site-nav .site-logo {
  display: inline-flex !important; align-items: center !important;
  font-family: 'Fraunces', 'Playfair Display', Georgia, serif !important;
  font-weight: 700 !important; font-size: 1.35rem !important;
  letter-spacing: -.3px !important; color: #0f2a37 !important;
  text-decoration: none !important; background: none !important; padding: 0 !important;
}
.site-nav .site-logo::before, .site-nav .site-logo::after { content: none !important; }
.site-nav .site-logo span { display: inline !important; color: #c95a3a !important; }

/* Nav links — new color palette */
.site-nav .nav-links {
  display: flex !important; gap: 22px !important; align-items: center !important;
  list-style: none !important; padding: 0 !important; margin: 0 !important;
}
.site-nav .nav-links li { padding: 0 !important; border: 0 !important; }
.site-nav .nav-links a {
  font-family: 'Inter', sans-serif !important; font-size: 14px !important;
  font-weight: 650 !important; color: #66757f !important;
  text-decoration: none !important; padding: 0 !important;
  background: none !important;
}
.site-nav .nav-links a:hover { color: #0b6b78 !important; }

/* Book Now CTA (existing .btn.btn-primary) — new amber styling */
.site-nav .nav-links .nav-cta a,
.site-nav .nav-links a.btn.btn-primary {
  display: inline-flex !important; align-items: center !important;
  gap: 8px !important; padding: 13px 19px !important;
  border-radius: 999px !important;
  background: #f3a51f !important; color: #261704 !important;
  font-weight: 800 !important; font-size: 14px !important;
  box-shadow: 0 12px 24px rgba(243,165,31,.26) !important;
  text-decoration: none !important; line-height: 1 !important;
  border: 1px solid transparent !important;
  transition: transform .2s, box-shadow .2s !important;
}
.site-nav .nav-links .nav-cta a:hover,
.site-nav .nav-links a.btn.btn-primary:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 18px 34px rgba(243,165,31,.34) !important;
  color: #261704 !important;
}

/* Mobile */
@media (max-width: 960px) {
  .site-nav .nav-links li:not(.nav-cta) { display: none !important; }
  .site-nav .menu-toggle {
    display: block !important; background: none !important;
    border: 0 !important; font-size: 24px !important; color: #102027 !important;
    cursor: pointer !important; padding: 6px 10px !important;
  }
}
@media (max-width: 480px) {
  .site-nav .site-logo::after { display: none; }
}

/* FOOTER — restyle the existing 4-column .site-footer to new dark design */
.site-footer {
  background: #082d36 !important;
  color: rgba(255,255,255,.75) !important;
  padding: 48px 0 28px !important;
  font-family: 'Inter', sans-serif !important;
}
.site-footer .foot-grid {
  display: grid !important;
  grid-template-columns: 1.4fr 1fr 1fr 1fr !important;
  gap: 36px !important; align-items: start !important;
}
@media (max-width: 860px) { .site-footer .foot-grid { grid-template-columns: 1fr 1fr !important; } }
@media (max-width: 560px) { .site-footer .foot-grid { grid-template-columns: 1fr !important; } }

/* Footer brand — add V mark before the "VjosaAdventures" text logo */
.site-footer .site-logo {
  display: inline !important;
  font-family: 'Fraunces', 'Playfair Display', Georgia, serif !important;
  font-weight: 700 !important; font-size: 1.35rem !important;
  letter-spacing: -.3px !important; color: #ffffff !important;
  text-decoration: none !important;
  margin-bottom: 12px !important;
}
.site-footer .site-logo::before, .site-footer .site-logo::after { content: none !important; }
.site-footer .site-logo span { color: #e9a73a !important; }

.site-footer h4 {
  color: #fff !important; font-family: 'Inter', sans-serif !important;
  font-size: 13px !important; letter-spacing: .08em !important;
  text-transform: uppercase !important; font-weight: 800 !important;
  margin: 0 0 12px !important;
}
.site-footer a {
  color: rgba(255,255,255,.78) !important; text-decoration: none !important;
  display: block !important; padding: .2rem 0 !important;
  font-size: 14px !important;
}
.site-footer a:hover { color: #fff !important; }
.site-footer p { color: rgba(255,255,255,.70) !important; font-size: 14px !important; line-height: 1.7 !important; }
.site-footer strong { color: #fff !important; }
.site-footer .copy {
  margin-top: 36px !important; padding-top: 18px !important;
  border-top: 1px solid rgba(255,255,255,.1) !important;
  display: flex !important; justify-content: space-between !important;
  flex-wrap: wrap !important; gap: 10px !important;
  font-size: 12px !important; color: rgba(255,255,255,.55) !important;
}

/* Floating WhatsApp — refresh styling */
.fab {
  background: #25D366 !important; color: #fff !important;
  padding: 14px 20px !important; border-radius: 999px !important;
  font-weight: 800 !important; font-family: 'Inter', sans-serif !important;
  box-shadow: 0 12px 28px rgba(0,0,0,.22) !important;
}

/* === END Vjosa header+footer === */

/* === Vjosa landing polish (managed) === */
/* Card hover lift */
.vjosa-card { transition: transform .22s ease, box-shadow .22s ease; }
.vjosa-card:hover { transform: translateY(-4px); box-shadow: 0 26px 60px rgba(5,57,69,.18) !important; }
.vjosa-card img { transition: transform .4s ease; }
.vjosa-card:hover img { transform: scale(1.04); }
.vjosa-card .elementor-widget-image { overflow: hidden; }

/* Uniform gallery grid */
.vjosa-gallery .elementor-widget-image,
.vjosa-gallery .elementor-widget-image .elementor-widget-container,
.vjosa-gallery .elementor-widget-image a,
.vjosa-gallery .elementor-widget-image figure { height: 100%; margin: 0; }
.vjosa-gallery-cell { overflow: hidden; border-radius: 16px; }
.vjosa-gallery-cell img {
  width: 100% !important; height: 260px !important; object-fit: cover !important;
  border-radius: 16px !important; transition: transform .45s ease; display:block;
}
.vjosa-gallery-cell:hover img { transform: scale(1.06); }
@media (max-width: 1024px){ .vjosa-gallery-cell img { height: 220px !important; } }
@media (max-width: 767px){ .vjosa-gallery-cell img { height: 200px !important; } }

/* Smooth button transitions + hover lift */
.elementor-button { transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease !important; }
.elementor-button:hover { transform: translateY(-2px); }

/* Tour/price card images flush to top corners */
.vjosa-card > .elementor-widget-image:first-child img { border-radius: 22px 22px 0 0 !important; }

/* Make container images fill nicely */
.elementor-widget-image img { display:block; }

/* Tighten heading rhythm on mobile */
@media (max-width: 767px){
  .elementor-widget-heading .elementor-heading-title { line-height: 1.15 !important; }
}
/* === END landing polish === */

/* === Vjosa mobile rework v2 (managed) === */

/* ---------- HEADER: logo left, hamburger inline on the right ---------- */
@media (max-width: 960px) {
  .site-nav .nav-inner {
    display: flex !important; flex-wrap: nowrap !important;
    align-items: center !important; justify-content: space-between !important;
    position: relative; gap: 12px;
  }
  .site-nav .site-logo { order: 0; flex: 0 1 auto; }
  .site-nav .menu-toggle {
    display: block !important; order: 1; margin-left: auto;
    background: none; border: 0; font-size: 26px; line-height: 1;
    color: #102027; cursor: pointer; padding: 4px 6px;
  }
  /* the menu list is a dropdown, out of the top-bar flow */
  .site-nav .nav-links {
    position: absolute !important; top: 100% !important; left: 0; right: 0; width: auto !important;
    margin: 0; order: 2;
  }
  .site-nav .nav-links:not(.open) { display: none !important; }
  .site-nav .nav-links.open {
    display: flex !important; flex-direction: column !important; align-items: stretch !important;
    background: #ffffff; padding: 12px 20px; gap: 0;
    border-bottom: 1px solid #d9e5e2; box-shadow: 0 16px 34px rgba(5,57,69,.14); z-index: 70;
  }
  .site-nav .nav-links.open li,
  .site-nav .nav-links.open li:not(.nav-cta) { display: block !important; width: 100%; }
  .site-nav .nav-links.open a {
    display: block; padding: 12px 4px; font-size: 16px; font-weight: 700;
    border-bottom: 1px solid #f0f4f3; color: #102027;
  }
  .site-nav .nav-links.open li:last-child a { border-bottom: 0; }
  .site-nav .nav-links.open a:hover { color: #0b6b78; }
}

/* ---------- GRID: stack on phone, 2-up on tablet ---------- */
@media (max-width: 767px) { .e-con.e-grid { grid-template-columns: 1fr !important; } }
@media (min-width: 768px) and (max-width: 1024px) { .e-con.e-grid { grid-template-columns: repeat(2, 1fr) !important; } }

/* ---------- PHONE layout polish ---------- */
@media (max-width: 767px) {
  .e-con.e-parent { padding-left: 16px !important; padding-right: 16px !important; }
  .elementor-widget-heading h1.elementor-heading-title { font-size: clamp(2rem, 8.5vw, 2.6rem) !important; line-height: 1.1 !important; }
  .elementor-widget-heading h2.elementor-heading-title { font-size: clamp(1.55rem, 6.6vw, 2rem) !important; line-height: 1.16 !important; }
  .elementor-widget-heading h3.elementor-heading-title { font-size: 1.3rem !important; line-height: 1.2 !important; }
  .elementor-widget-text-editor p { font-size: 15.5px; line-height: 1.6; }
  #top.e-con { min-height: auto !important; }
  .elementor-widget-shortcode .wpcf7-form p { flex-direction: column !important; gap: 10px !important; }
  .elementor-widget-shortcode .wpcf7-form p > label { flex: 1 1 100% !important; }
  .vjosa-gallery-cell img { height: 200px !important; }
}

/* ---------- no horizontal scroll ---------- */
html, body { overflow-x: hidden; }
.e-con, .e-con-inner { max-width: 100%; }
.elementor-widget-container { word-break: break-word; }

/* === END mobile rework v2 === *//* End custom CSS */