/* ==========================================================================
   Hambik King of Tours — self-contained stylesheet
   Replaces the Bridge / Elementor / Qode CSS that no longer resolves
   (the original wp-content URLs are dead). Reimplements the Elementor
   section/column grid plus the theme look, with no external dependencies.
   ========================================================================== */

:root {
  --navy: #12324c;
  --navy-deep: #0c2438;
  --gold: #c8862a;
  --gold-light: #e0a63c;
  --ink: #2f3a44;
  --muted: #6b7a88;
  --line: #e2e7ec;
  --paper: #ffffff;
  --paper-alt: #f5f7f9;
  --wrap: 1300px;
  --heading: 'Montserrat', 'Segoe UI', Arial, sans-serif;
  --body: 'Open Sans', 'Segoe UI', Arial, sans-serif;
}

/* --------------------------------------------------------------- base --- */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--body);
  font-size: 15px;
  line-height: 1.75;
  color: var(--ink);
  background: var(--paper);
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--heading);
  color: var(--navy);
  font-weight: 700;
  line-height: 1.25;
  margin: 0 0 .6em;
}

p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }

a { color: var(--gold); text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--navy); }

img { max-width: 100%; height: auto; border: 0; vertical-align: middle; }

/* The archived markup carries Word paste residue (mso-* style blocks and
   empty <o:p> tags) that browsers would otherwise render as stray text. */
.MsoNormal { margin: 0 0 .9em; }
o\:p, .elementor-widget-container style { display: none; }

.elementor-screen-only,
.screen-reader-response {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

/* ------------------------------------------------- elementor structure --- */

.elementor-section { position: relative; }

.elementor-container {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  margin-inline: auto;
  width: 100%;
  max-width: var(--wrap);
  padding-inline: 20px;
}

/* Full-width sections bleed to the viewport edge. */
.elementor-section-full_width > .elementor-container,
.elementor-section-stretched > .elementor-container {
  max-width: 100%;
  padding-inline: 0;
}

.elementor-column {
  display: flex;
  position: relative;
  min-width: 0;
  min-height: 1px;
}

.elementor-col-100 { width: 100%; }
.elementor-col-50  { width: 50%; }
.elementor-col-33  { width: 33.333%; }
.elementor-col-25  { width: 25%; }

.elementor-widget-wrap {
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  width: 100%;
  min-width: 0;
}

.elementor-widget-wrap.elementor-element-populated { padding: 10px; }
.elementor-section-full_width > .elementor-container > .elementor-column > .elementor-widget-wrap.elementor-element-populated { padding: 0; }

/* Nested sections are flex items of .elementor-widget-wrap; without an
   explicit width they shrink-to-fit and sit side by side. */
.elementor-widget-wrap > .elementor-section { width: 100%; }

.elementor-widget { width: 100%; min-width: 0; margin-bottom: 20px; }
.elementor-widget:last-child { margin-bottom: 0; }
.elementor-widget__width-initial { width: auto; max-width: 100%; }

.elementor-column-gap-no > .elementor-column > .elementor-element-populated { padding: 0; }
.elementor-column-gap-default > .elementor-column > .elementor-element-populated { padding: 10px; }

.elementor-section-items-stretch > .elementor-container { align-items: stretch; }

/* ------------------------------------------------------------ widgets --- */

.elementor-heading-title {
  font-family: var(--heading);
  letter-spacing: .04em;
}

.elementor-widget-text-editor { font-size: 15px; }

.elementor-widget-divider { margin-bottom: 18px; }
.elementor-divider { display: flex; }
.elementor-divider-separator {
  width: 70px;
  border-top: 3px solid var(--gold);
  margin: 4px 0 8px;
}

.elementor-widget-image { text-align: center; }
.elementor-widget-image a { display: inline-block; }
.elementor-widget-image img { display: block; width: 100%; }

/* ------------------------------------------------------------- header --- */

.site-header {
  position: relative;
  z-index: 30;
  background: var(--navy);
  color: #fff;
}

.elementor-location-header > .elementor-section:first-child,
.elementor-element-1145e48,
.elementor-element-17ebe5e {
  background: var(--navy);
  color: #fff;
}

.elementor-element-1145e48 > .elementor-container,
.elementor-element-17ebe5e > .elementor-container {
  align-items: center;
  min-height: 96px;
}

/* Both headers sit on navy, so their headings need the inverse colour —
   the base h1–h6 rule would otherwise paint them navy-on-navy. */
.elementor-element-1145e48 :is(h1, h2, h3, h4, h5, h6),
.elementor-element-17ebe5e :is(h1, h2, h3, h4, h5, h6) {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .06em;
  color: #fff;
  margin: 0;
}

/* Mobile header: keep the stacked rows compact and centred. */
.elementor-element-17ebe5e > .elementor-container { min-height: 0; padding-block: 14px; }
.elementor-element-17ebe5e .elementor-widget { margin-bottom: 10px; }
.elementor-element-17ebe5e .elementor-menu-toggle { margin-inline: auto; }
.elementor-element-17ebe5e .elementor-nav-menu--main .elementor-nav-menu { justify-content: center; }

/* The four header columns are 25% each in the source markup, which leaves
   the menu too narrow to sit on one line. Re-weight them. */
.elementor-element-1145e48 > .elementor-container > .elementor-element-69e1c74a { width: 23%; }
.elementor-element-1145e48 > .elementor-container > .elementor-element-1118f47b { width: 42%; }
.elementor-element-1145e48 > .elementor-container > .elementor-element-3a0b6c5d { width: 19%; }
.elementor-element-1145e48 > .elementor-container > .elementor-element-978d7bb  { width: 16%; }

/* Elementor inlines `.elementor-widget-image a img[src$=".svg"]{width:48px}`
   in a <style> inside the body, which outranks this file on document order.
   The SVG logos need normal sizing back, hence the !important. */
.elementor-widget-image a img[src$=".svg"] { width: 100% !important; }

.elementor-element-1d10fdff { text-align: left; }
.elementor-element-1d10fdff a { display: block !important; max-width: 250px; }
.elementor-element-1d10fdff img { max-width: 100%; margin: 0; }
.elementor-element-efea842 img { width: 190px; max-width: 100%; margin: 0 auto; }

/* Navigation ------------------------------------------------------------ */

.elementor-nav-menu {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
}

.elementor-nav-menu__align-end .elementor-nav-menu--main .elementor-nav-menu { justify-content: flex-end; }

.elementor-nav-menu .elementor-item {
  display: block;
  position: relative;
  padding: 12px 13px;
  font-family: var(--heading);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #fff;
  white-space: nowrap;
}

.elementor-nav-menu .elementor-item::after {
  content: '';
  position: absolute;
  left: 16px; right: 16px; bottom: 6px;
  height: 2px;
  background: var(--gold-light);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .25s ease;
}

.elementor-nav-menu .elementor-item:hover,
.elementor-nav-menu .elementor-item-active { color: var(--gold-light); }
.elementor-nav-menu .elementor-item:hover::after,
.elementor-nav-menu .elementor-item-active::after { transform: scaleX(1); }

/* Burger + dropdown: the original JS is gone, so the toggle is driven by
   :focus-within / :hover instead. */
.elementor-menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  margin-inline-start: auto;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 4px;
  cursor: pointer;
  color: #fff;
}

.elementor-menu-toggle .eicon-menu-bar,
.elementor-menu-toggle .eicon-close {
  display: block;
  width: 20px; height: 2px;
  position: relative;
  background: currentColor;
}
.elementor-menu-toggle .eicon-menu-bar::before,
.elementor-menu-toggle .eicon-menu-bar::after {
  content: '';
  position: absolute; left: 0;
  width: 20px; height: 2px;
  background: currentColor;
}
.elementor-menu-toggle .eicon-menu-bar::before { top: -6px; }
.elementor-menu-toggle .eicon-menu-bar::after  { top: 6px; }
.elementor-menu-toggle .eicon-close { display: none; }

.elementor-nav-menu--dropdown {
  display: none;
  position: absolute;
  top: 100%; left: 0; right: 0;
  background: var(--navy-deep);
  padding: 8px 0;
  box-shadow: 0 16px 32px rgba(0, 0, 0, .25);
}
.elementor-nav-menu--dropdown .elementor-nav-menu { display: block; }
.elementor-nav-menu--dropdown .elementor-item { padding: 12px 24px; }
.elementor-nav-menu--dropdown .elementor-item::after { display: none; }

/* Header phone + contact list ------------------------------------------- */

.elementor-icon-list-items {
  list-style: none;
  margin: 0;
  padding: 0;
}
.elementor-icon-list-item { display: flex; align-items: center; gap: 8px; }
.elementor-align-right .elementor-icon-list-items { justify-content: flex-end; }
.elementor-icon-list-item a,
.elementor-icon-list-text {
  font-family: var(--heading);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .04em;
  color: #fff;
}
.elementor-icon-list-item a:hover { color: var(--gold-light); }

/* --------------------------------------------------------------- icons --- */
/* Font Awesome never loaded, so the glyphs are inlined as masked SVG. */

.fab, .fas, .far,
.dripicons-location, .dripicons-calendar, .dripicons-flag {
  display: inline-block;
  width: 1em; height: 1em;
  background-color: currentColor;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
  -webkit-mask-size: contain; mask-size: contain;
  vertical-align: -.125em;
}

.fa-facebook, .fa-facebook-f {
  -webkit-mask-image: var(--i-facebook); mask-image: var(--i-facebook);
}
.fa-twitter { -webkit-mask-image: var(--i-twitter); mask-image: var(--i-twitter); }
.fa-youtube { -webkit-mask-image: var(--i-youtube); mask-image: var(--i-youtube); }
.fa-phone-alt, .fa-phone { -webkit-mask-image: var(--i-phone); mask-image: var(--i-phone); }
.dripicons-location { --size: 1em; -webkit-mask-image: var(--i-pin); mask-image: var(--i-pin); }
.dripicons-calendar { -webkit-mask-image: var(--i-calendar); mask-image: var(--i-calendar); }
.dripicons-flag { -webkit-mask-image: var(--i-flag); mask-image: var(--i-flag); }

:root {
  --i-facebook: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z'/%3E%3C/svg%3E");
  --i-twitter: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z'/%3E%3C/svg%3E");
  --i-youtube: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z'/%3E%3C/svg%3E");
  --i-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z'/%3E%3C/svg%3E");
  --i-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M172.3 501.7C27 291 0 269.4 0 192 0 86 86 0 192 0s192 86 192 192c0 77.4-27 99-145.7 309.7-11.9 21.1-42.7 21.1-54.6 0zM192 272c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80z'/%3E%3C/svg%3E");
  --i-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z'/%3E%3C/svg%3E");
  --i-flag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.146 8.997 32.183 22.528 40.712V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C89.777 407.372 120.26 400 162.062 400c48.117 0 90.855 32 173.633 32 30.844 0 57.750-6.363 79.508-14.402C428.428 412.629 436 400.681 436 387.559V90.032c0-23.877-24.349-40.171-46.318-31.002C369.686 67.34 352.485 80 336.174 80z'/%3E%3C/svg%3E");
}

/* Social icon rows ------------------------------------------------------ */

.elementor-social-icons-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.e-grid-align-center .elementor-social-icons-wrapper { justify-content: center; }

.elementor-social-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px; height: 38px;
  background: rgba(255, 255, 255, .12);
  color: #fff;
  transition: background .2s ease, transform .2s ease;
}
.elementor-social-icon:hover { background: var(--gold); transform: translateY(-2px); }
.elementor-shape-rounded .elementor-social-icon { border-radius: 8px; }
.elementor-shape-circle .elementor-social-icon { border-radius: 50%; }
.elementor-social-icon i { font-size: 16px; color: #fff; }
/* One slot in the footer row ships an inline <svg> instead of an <i>. */
.elementor-social-icon svg { width: 17px; height: 17px; fill: #fff; }

/* ----------------------------------------------------------------- hero --- */

.site-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 600px;
  background: var(--navy-deep) url('img/hero.svg') center / cover no-repeat;
  color: #fff;
}
.site-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(8, 25, 40, .72) 0%, rgba(8, 25, 40, .25) 60%, rgba(8, 25, 40, .1) 100%);
}
.site-hero__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--wrap);
  margin-inline: auto;
  padding: 40px 20px;
}
.site-hero__title {
  font-family: var(--heading);
  font-size: clamp(34px, 6.2vw, 82px);
  line-height: 1.12;
  color: #fff;
  margin: 0;
  text-shadow: 0 4px 24px rgba(0, 0, 0, .45);
}
.site-hero__title span { display: block; }
.site-hero__title .is-bold { font-weight: 900; }
.site-hero__title .is-light { font-weight: 300; letter-spacing: .06em; }

/* ------------------------------------------------------- search filter --- */

.elementor-element-9affd93 {
  background: var(--paper-alt);
  border-bottom: 1px solid var(--line);
}

.qode-tours-filter-holder {
  max-width: var(--wrap);
  margin: -46px auto 0;
  position: relative;
  z-index: 10;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 18px 44px rgba(12, 36, 56, .16);
  padding: 22px;
}

.qode-tours-filters-fields-holder {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.qode-tours-filter-field-holder { flex: 1 1 200px; min-width: 0; }
.qode-tours-filter-submit-field-holder { flex: 0 0 auto; }

.qode-tours-input-with-icon { position: relative; }

.qode-tours-input-icon {
  position: absolute;
  top: 50%; left: 14px;
  transform: translateY(-50%);
  color: var(--gold);
  font-size: 16px;
  line-height: 0;
  pointer-events: none;
}

.qode-tours-input-with-icon input[type="text"],
.qode-tours-input-with-icon select {
  width: 100%;
  height: 52px;
  padding: 0 16px 0 42px;
  font-family: var(--body);
  font-size: 14px;
  color: var(--ink);
  background: var(--paper-alt);
  border: 1px solid var(--line);
  border-radius: 4px;
  appearance: none;
  -webkit-appearance: none;
  outline: none;
  transition: border-color .2s ease, background .2s ease;
}
.qode-tours-input-with-icon select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%236b7a88' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 12px;
  padding-right: 38px;
  cursor: pointer;
}
.qode-tours-input-with-icon input:focus,
.qode-tours-input-with-icon select:focus {
  border-color: var(--gold);
  background-color: #fff;
}
.qode-tours-input-with-icon input::placeholder { color: var(--muted); }

.qbutton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 52px;
  padding: 0 38px;
  font-family: var(--heading);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #fff;
  background: var(--gold);
  border: 0;
  border-radius: 4px;
  cursor: pointer;
  transition: background .2s ease;
}
.qbutton:hover { background: var(--navy); color: #fff; }

/* ---------------------------------------------------- section headings --- */

.elementor-element-d6c2ccc { padding: 72px 0 6px; }
.elementor-element-d6c2ccc .elementor-heading-title {
  font-size: 34px;
  letter-spacing: .16em;
  text-align: center;
  position: relative;
  padding-bottom: 18px;
}
.elementor-element-d6c2ccc .elementor-heading-title::after {
  content: '';
  position: absolute;
  left: 50%; bottom: 0;
  transform: translateX(-50%);
  width: 70px; height: 3px;
  background: var(--gold);
}

.elementor-element-6b49390 { padding: 0 0 46px; }
.elementor-element-6b49390 .elementor-widget-text-editor {
  max-width: 880px;
  margin-inline: auto;
  color: var(--muted);
  font-size: 15px;
  line-height: 2.1;
}

/* Departures at a glance */
.departure-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
}
.departure-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px 20px;
  padding: 13px 4px;
  border-bottom: 1px solid var(--line);
}
.departure-list__place {
  font-family: var(--heading);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--navy);
}
.departure-list__when {
  font-size: 14px;
  color: var(--muted);
  text-align: right;
}

/* ---------------------------------------------------------- tour cards --- */
/* Each tour is: a full-bleed banner, then a 50/50 row of photos + copy. */

.tour-block {
  margin: 0 0 70px;
  background: var(--paper);
}

.tour-block .elementor-container { max-width: var(--wrap); padding-inline: 20px; }

.tour-banner img {
  width: 100%;
  height: clamp(150px, 16vw, 230px);
  object-fit: cover;
  border-radius: 6px;
}

/* The banner sits in its own inner section above the photo/copy row. */
.tour-banner { margin-bottom: 0; }
.tour-block .elementor-widget-wrap > .elementor-section + .elementor-section { margin-top: 22px; }

/* The full-width reset above zeroes this wrap's padding at (0,5,0), so the
   gutter between the photos and the copy has to match that specificity. */
.elementor-section-full_width > .elementor-container > .elementor-column > .tour-photos.elementor-element-populated { padding: 0 26px 0 0; }
.elementor-section-full_width > .elementor-container > .elementor-column > .tour-copy.elementor-element-populated { padding: 0 0 0 26px; }

.tour-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.tour-photos.has-3 > .elementor-widget:first-child { grid-column: 1 / -1; }

.tour-photos .elementor-widget { margin: 0; }
.tour-photos img,
.tour-photo {
  width: 100%;
  height: 250px;
  object-fit: cover;
  border-radius: 6px;
  box-shadow: 0 10px 26px rgba(12, 36, 56, .12);
}
.tour-photos.has-3 > .elementor-widget:first-child img { height: 210px; }

.tour-copy { align-content: center; }
.tour-copy .elementor-widget { margin-bottom: 4px; }
.tour-copy .elementor-widget-divider { margin-bottom: 2px; }
.tour-copy p { margin-bottom: .55em; }
.tour-copy p:last-child { margin-bottom: 0; }

.tour-copy .elementor-heading-title,
.tour-title .elementor-heading-title {
  font-size: 30px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.tour-copy .elementor-widget-text-editor:first-child {
  font-family: var(--heading);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--gold);
  text-transform: uppercase;
}

.tour-copy .elementor-divider-separator { margin: 10px 0 16px; }

/* The pasted-from-Word copy carries inline font sizes (48pt headings,
   Sylfaen, hard-coded colours). Normalise them back to the type scale. */
.tour-copy :is(h1, h2, h3, h4, h5, h6),
.tour-copy :is(h2, h3, h4, h5, h6) :is(span, b, strong) {
  font-family: var(--heading) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  color: var(--gold) !important;
  line-height: 1.6 !important;
  text-align: left !important;
  text-transform: uppercase;
}
.tour-copy h1 { font-size: 30px !important; color: var(--navy) !important; margin-bottom: .3em; }
.tour-copy p span,
.tour-copy p strong span { font-size: 15px !important; line-height: 2 !important; }
.tour-copy p { text-align: left !important; }

.tour-copy .elementor-widget-text-editor + .elementor-widget-divider + .elementor-widget-text-editor {
  color: var(--muted);
  line-height: 2;
}

/* The section title sits above its banner. */
.tour-title { text-align: center; margin-bottom: 8px; }

/* -------------------------------------------------------- newsletter --- */

.elementor-element-366e018 {
  background: var(--navy);
  color: #fff;
  padding: 66px 0;
  margin-top: 10px;
}
.elementor-element-366e018 .elementor-container { max-width: 720px; text-align: center; }
/* The heading is an <h1> inside a text-editor widget, so it needs to be
   targeted directly — the base h1 colour would otherwise win over
   inherited white and leave navy text on a navy band. */
.elementor-element-366e018 :is(h1, h2, h3, h4, h5, h6) {
  color: #fff;
}
.elementor-element-366e018 .elementor-element-1a3256d h5 {
  font-family: var(--body);
  font-size: 15px;
  font-weight: 400;
  letter-spacing: normal;
  text-transform: none;
  color: rgba(255, 255, 255, .78);
  margin: 0;
}
.elementor-element-366e018 h1,
.elementor-element-366e018 h2,
.elementor-element-366e018 h3 {
  font-size: 30px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #fff;
  margin: 0;
}
.elementor-element-366e018 .elementor-divider { justify-content: center; }
.elementor-element-366e018 .elementor-divider-separator { border-color: var(--gold-light); }
.elementor-element-366e018 .elementor-element-1a3256d { color: rgba(255, 255, 255, .78); }

/* Contact Form 7 -------------------------------------------------------- */

.qode-contact-form-7 { margin-top: 22px; }

.two_columns_form_with_space {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}
.two_columns_form_with_space .column_left { flex: 1 1 320px; max-width: 420px; }
.two_columns_form_with_space .column_right { flex: 0 0 auto; }

.wpcf7-form-control-wrap { display: block; }

.wpcf7-text {
  width: 100%;
  height: 52px;
  padding: 0 18px;
  font-family: var(--body);
  font-size: 14px;
  color: #fff;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 4px;
  outline: none;
}
.wpcf7-text::placeholder { color: rgba(255, 255, 255, .6); }
.wpcf7-text:focus { border-color: var(--gold-light); background: rgba(255, 255, 255, .14); }

.wpcf7-submit {
  height: 52px;
  padding: 0 34px;
  font-family: var(--heading);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #fff;
  background: var(--gold);
  border: 0;
  border-radius: 4px;
  cursor: pointer;
  transition: background .2s ease;
}
.wpcf7-submit:hover { background: var(--gold-light); }

.wpcf7-response-output { display: none; }

/* ------------------------------------------------------------- footer --- */

.elementor-location-footer {
  background: var(--navy-deep);
  color: rgba(255, 255, 255, .8);
  padding: 62px 0 18px;
}

.elementor-location-footer .elementor-container { align-items: flex-start; }

.elementor-location-footer .elementor-heading-title {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 14px;
}

.elementor-location-footer .elementor-widget-text-editor {
  color: rgba(255, 255, 255, .72);
  font-size: 14px;
  line-height: 1.9;
}

.elementor-location-footer .elementor-column { text-align: center; }
.elementor-location-footer .elementor-section-height-min-height > .elementor-container { min-height: auto; }
.elementor-location-footer .elementor-widget { margin-bottom: 8px; }

.elementor-location-footer .elementor-social-icon {
  background: rgba(255, 255, 255, .1);
  border-radius: 4px;
}

.elementor-element-60d067d {
  border-top: 1px solid rgba(255, 255, 255, .12);
  margin-top: 30px;
  padding-top: 20px;
}
.elementor-element-60d067d .elementor-heading-title {
  font-size: 12px;
  font-weight: 400;
  letter-spacing: .06em;
  text-transform: none;
  color: rgba(255, 255, 255, .5);
  text-align: center;
}

/* --------------------------------------------------------- responsive --- */

@media (max-width: 1024px) {
  .elementor-col-25 { width: 50%; }
  .elementor-section-full_width > .elementor-container > .elementor-column > .tour-photos.elementor-element-populated { padding-right: 16px; }
  .elementor-section-full_width > .elementor-container > .elementor-column > .tour-copy.elementor-element-populated { padding-left: 16px; }
  .tour-copy .elementor-heading-title,
  .tour-title .elementor-heading-title { font-size: 24px; }
}

@media (max-width: 880px) {
  .elementor-nav-menu--main { display: none; }
  .elementor-menu-toggle { display: inline-flex; }
  .elementor-nav-menu--toggle:hover .elementor-nav-menu--dropdown,
  .elementor-nav-menu--toggle:focus-within .elementor-nav-menu--dropdown { display: block; }

  .elementor-col-33, .elementor-col-50, .elementor-col-25 { width: 100%; }

  .elementor-section-full_width > .elementor-container > .elementor-column > .tour-photos.elementor-element-populated,
  .elementor-section-full_width > .elementor-container > .elementor-column > .tour-copy.elementor-element-populated { padding: 0; }
  .tour-photos { margin-bottom: 22px; }
  .tour-copy { text-align: center; }
  .tour-copy .elementor-divider { justify-content: center; }

  .site-hero { min-height: 420px; }
  .qode-tours-filter-holder { margin-top: -26px; }
  .elementor-element-d6c2ccc { padding-top: 48px; }
  .elementor-location-footer { padding-top: 46px; }
}

@media (max-width: 560px) {
  .qode-tours-filter-holder { margin-top: 0; border-radius: 0; box-shadow: none; padding: 18px 16px; }
  .qode-tours-filter-field-holder,
  .qode-tours-filter-submit-field-holder { flex: 1 1 100%; }
  .qbutton { width: 100%; }
  .two_columns_form_with_space .column_left,
  .two_columns_form_with_space .column_right { flex: 1 1 100%; max-width: none; }
  .wpcf7-submit { width: 100%; }
  .tour-photos { grid-template-columns: 1fr; }
  .tour-photos.has-3 > .elementor-widget:first-child { grid-column: auto; }
  .tour-photos img, .tour-photo { height: 200px; }
  .tour-photos.has-3 > .elementor-widget:first-child img { height: 200px; }
}

/* Elementor's own visibility helpers. */
@media (max-width: 1024px) {
  .elementor-hidden-tablet { display: none !important; }
}
@media (max-width: 767px) {
  .elementor-hidden-mobile, .elementor-hidden-phone { display: none !important; }
}
@media (min-width: 1025px) {
  .elementor-hidden-desktop { display: none !important; }
}
