/*
 Theme Name:   Bricks Child Theme
 Theme URI:    https://bricksbuilder.io/
 Description:  Use this child theme to extend Bricks.
 Author:       Bricks
 Author URI:   https://bricksbuilder.io/
 Template:     bricks
 Version:      1.1
 Text Domain:  bricks
*/

/* =====================================================
   FILE: style.css

   PURPOSE:
   Core child theme stylesheet.
   Tokens, reset/base and global layout foundations, animations


   LOAD ORDER:
   1. style.css
   2. typography.css
   3. components.css
   4. templates.css
===================================================== */

/* ==================================================
   01. Global variables
================================================== */

:root {
  /* Colour */
  --color-bg-main: #f6f5e9;
  --color-bg-sand: #f6f5e9;
  --color-bg-dark-sand: #e9e6c9;
  --color-bg-teal-1: #a1b6b9;
  --color-bg-teal-2: #064247;
  --color-bg-teal-3: #043235;

  --color-accent: #ebb360;

  --color-text-light-bg: #043235;
  --color-text-dark-bg: #e9e6c9;

  /* Layout */
  --site-gutter: 20px;
	--site-width: 2560px;

  --section-space-y: clamp(5.5rem, 8vw, 8rem);
  --section-space-y-small: clamp(4rem, 5.5vw, 5.75rem);
  --section-space-y-large: clamp(8rem, 12vw, 11rem);
	
	--home-split-column-gap: clamp(40px, 5vw, 80px);

  /* Motion */
  --motion-speed: 0.35s;
  --motion-ease: ease;

  /* Buttons */
  --btn-font-size: 14px;
  --btn-font-weight: 500;
  --btn-padding-y: 15px;
  --btn-padding-x: 30px;
  --btn-border-width: 2px;
  --btn-radius: 999px;

  /* Links */
  --link-underline-thickness: 1.5px;
  --link-font-weight: 500;
  --link-font-weight-inline: 400;

  --link-arrow-size: 15px;
  --link-arrow-gap: 3px;
  --link-arrow-y: 2px;
  --link-arrow-shift: 4px;

  /* Font families */
  --font-body: "Px Grotesk", sans-serif;
  --font-heading: "Px Grotesk", sans-serif;
	--font-martina:"Martina Plantijn", serif;

  /* Paragraph scale */
  --text-body: clamp(1.5rem, 1.4rem + 0.4vw, 1.8rem);
  --text-med: clamp(1.55rem, 1.35rem + 0.75vw, 2.1rem);
  --text-large: clamp(1.68rem, 1.34rem + 1.45vw, 2.55rem);
	
	--text-body-small: clamp(1.3rem, 1.22rem + 0.32vw, 1.5rem);
	
  --text-small: clamp(1.15rem, 1.08rem + 0.22vw, 1.3rem);
  --text-caption: clamp(0.85rem, 0.8rem + 0.15vw, 0.95rem);

  /* Heading scale */
  --text-display: clamp(2.5rem, 1.79rem + 3.57vw, 5rem);
  --text-display-large: clamp(2.9rem, 2.05rem + 4.1vw, 5.8rem);
  --text-h3: clamp(2.25rem, 1.75rem + 2vw, 3.4rem);
  --text-h4: clamp(1.95rem, 1.55rem + 1.35vw, 2.75rem);
  --text-h5: clamp(1.7rem, 1.35rem + 1vw, 2.3rem);
  --text-h6: clamp(1.5rem, 1.25rem + 0.75vw, 2rem);

  /* Line heights */
  --lh-heading-tight: .9;
  --lh-heading-standard: 1.2;
  --lh-body: 1.3;
  --lh-intro: 1.1;
  --lh-small: 1.2;

  /* Weights */
  --weight-light: 300;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semi-bold: 600;
  --weight-bold: 700;

  --weight-body: 400;
  --weight-heading: 400;
  --weight-heading-small: 500;

  /* Text spacing */
  --ls-body: -0.03em;
  --ls-heading: -0.02em;
	--ls-heading-loose: -0.01em;

  --space-p: 0.9em;
  --space-med: 1em;
  --space-large: 1.05em;
  --space-heading: 0.55em;
	
	/* Images */
	--radius-media: 30px;
	--radius-small:20px;
	
	 /* Header heights */
  --ne-mainbar-height: 5.8rem;
  --ne-topbar-height: 3.2rem;
	
	--ne-visible-header-height:
    calc(var(--ne-mainbar-height) + var(--ne-topbar-height));
}

@media (min-width: 768px) {
  :root {
    --site-gutter: 40px;
  }
}

@media (max-width: 991px) {
  :root {
    --ne-mainbar-height: 5.6rem;
  }
}

@media (max-width: 767px) {
  :root {
    --radius-media: 20px;
    --ne-mainbar-height: 5rem;
    --ne-topbar-height: 3.4rem;
	  
	   --text-h3: clamp(2.6rem, 2.35rem + 1.1vw, 2.85rem);
    --text-h4: clamp(2.15rem, 1.95rem + 0.9vw, 2.4rem);
  }
}

/* ==================================================
   Display Type: Mid-size Desktop / Large Tablet
================================================== */

@media (min-width: 981px) and (max-width: 1260px) {
  :root {
    --text-display: clamp(2.4rem, 1.8rem + 2.45vw, 4.25rem);
  }

  h1 {
    font-size: clamp(2.55rem, 1.95rem + 2.85vw, 4.65rem);
  }
}

	/* ==================================================
   02. Reset / base
================================================== */
	
	
	

/* ==================================================
   03. Layout
================================================== */

/* Sections */
.brxe-section {
  width: 100%;
  max-width: none;
  padding-top: var(--section-space-y);
  padding-bottom: var(--section-space-y);
  box-sizing: border-box;
}

/* Containers */
.brxe-container {
  width: 100%;
  max-width: var(--site-width);
  padding-left: var(--site-gutter);
  padding-right: var(--site-gutter);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

.section--small {
  --section-space-y: var(--section-space-y-small);
}

.section--compact {
  --section-space-y: clamp(28px, 2vw, 32px);
}

.section--large {
  padding-top: var(--section-space-y-large);
  padding-bottom: var(--section-space-y-large);
}

.brxe-section.section--large.section-sand-bg {
  background-color: var(--color-bg-sand) !important;
	color: var(--color-text-light-bg);
}

.brxe-section.section--large.section-dark-sand-bg {
  background-color: var(--color-bg-dark-sand) !important;
	color: var(--color-text-light-bg);
}

.brxe-section.section--large.section-teal-bg {
  background-color: var(--color-bg-teal-3);
  color: var(--color-text-dark-bg);
}

.brxe-section.section--large.section-accent-bg {
  background-color: var(--color-accent) !important;
	color: var(--color-text-light-bg);
}

.section--no-top {
  padding-top: 0;
}

.section--no-bottom {
  padding-bottom: 0;
}

.section--bottom-large {
  padding-bottom: var(--section-space-y-large);
}

.section--no-padding,
.section--no--padding{
  padding-top: 0;
  padding-bottom: 0;
}
.container--narrow {
  max-width: 900px;
}

.container--medium {
  max-width: 1200px;
}

.container--wide {
  max-width: var(--site-width);
}

.container--no-gutter {
  width: 100%;
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

/* Main site content */
.site-main {
  display: block;
  width: 100%;
  min-width: 0;

  background: var(--color-bg-main);
  color: var(--color-text-light-bg);
}

/* ==================================================
   Reusable grids
================================================== */

.layout-grid {
  --layout-grid-column-gap:
    var(
      --layout-grid-gap,
      clamp(2rem, 4vw, 4rem)
    );

  --layout-grid-row-gap:
    var(
      --layout-grid-gap,
      clamp(2rem, 4vw, 4rem)
    );

  display: grid !important;

  width: 100%;
  min-width: 0;

  grid-auto-flow: row;
  align-items: start;

  column-gap: var(--layout-grid-column-gap);
  row-gap: var(--layout-grid-row-gap);
}

.layout-grid > * {
  min-width: 0;
}


/* --------------------------------------------------
   Column patterns
-------------------------------------------------- */

/* Three desktop, two tablet, one phone */

.layout-grid--3-2-1 {
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
}


/* Three desktop + tablet, one phone */

.layout-grid--3-3-1 {
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
}


/* Two desktop + tablet, one phone */

.layout-grid--2-1 {
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
}


/* Four desktop, two tablet, one phone */

.layout-grid--4-2-1 {
  grid-template-columns:
    repeat(4, minmax(0, 1fr));
}


/* --------------------------------------------------
   Gap modifiers
-------------------------------------------------- */

.layout-grid--gap-small {
  --layout-grid-gap:
    clamp(1.5rem, 2.5vw, 2.5rem);
}

.layout-grid--gap-large {
  --layout-grid-gap:
    clamp(3rem, 5vw, 6rem);
}


/* --------------------------------------------------
   Stacked grid rows
-------------------------------------------------- */

.layout-grid-rows
  > .layout-grid--3-3-1
  + .layout-grid--3-3-1 {
  margin-top:
    clamp(3rem, 5vw, 6rem);
}


/* ==================================================
   Reusable grids:
   centre incomplete desktop rows
================================================== */


/* --------------------------------------------------
   Standard desktop grids
   992px+
-------------------------------------------------- */

@media (min-width: 992px) {

  /*
   * Four columns.
   * Trigger whenever final row contains 1, 2 or 3 items.
   */

  .layout-grid--4-2-1:not(.layout-grid--wide-collapse):has(
    > :last-child:nth-child(4n + 1)
  ),
  .layout-grid--4-2-1:not(.layout-grid--wide-collapse):has(
    > :last-child:nth-child(4n + 2)
  ),
  .layout-grid--4-2-1:not(.layout-grid--wide-collapse):has(
    > :last-child:nth-child(4n + 3)
  ) {
    display: flex !important;

    flex-wrap: wrap;
    justify-content: center;
  }

  .layout-grid--4-2-1:not(.layout-grid--wide-collapse):has(
    > :last-child:nth-child(4n + 1)
  ) > *,
  .layout-grid--4-2-1:not(.layout-grid--wide-collapse):has(
    > :last-child:nth-child(4n + 2)
  ) > *,
  .layout-grid--4-2-1:not(.layout-grid--wide-collapse):has(
    > :last-child:nth-child(4n + 3)
  ) > * {
    flex:
      0 0
      calc(
        (
          100% -
          (
            var(--layout-grid-column-gap) * 3
          )
        ) / 4
      );
  }


  /*
   * Three columns.
   * Trigger whenever final row contains 1 or 2 items.
   */

  :is(
    .layout-grid--3-2-1:not(.layout-grid--wide-collapse),
    .layout-grid--3-3-1
  ):has(
    > :last-child:nth-child(3n + 1)
  ),
  :is(
    .layout-grid--3-2-1:not(.layout-grid--wide-collapse),
    .layout-grid--3-3-1
  ):has(
    > :last-child:nth-child(3n + 2)
  ) {
    display: flex !important;

    flex-wrap: wrap;
    justify-content: center;
  }

  :is(
    .layout-grid--3-2-1:not(.layout-grid--wide-collapse),
    .layout-grid--3-3-1
  ):has(
    > :last-child:nth-child(3n + 1)
  ) > *,
  :is(
    .layout-grid--3-2-1:not(.layout-grid--wide-collapse),
    .layout-grid--3-3-1
  ):has(
    > :last-child:nth-child(3n + 2)
  ) > * {
    flex:
      0 0
      calc(
        (
          100% -
          (
            var(--layout-grid-column-gap) * 2
          )
        ) / 3
      );
  }


  /*
   * Two columns.
   * Centre lone final item.
   */

  .layout-grid--2-1:has(
    > :last-child:nth-child(2n + 1)
  ) {
    display: flex !important;

    flex-wrap: wrap;
    justify-content: center;
  }

  .layout-grid--2-1:has(
    > :last-child:nth-child(2n + 1)
  ) > * {
    flex:
      0 0
      calc(
        (
          100% -
          var(--layout-grid-column-gap)
        ) / 2
      );
  }
}


/* ==================================================
   Wide-collapse grids
   Preserve existing tour-card 1300px breakpoint
================================================== */

@media (min-width: 992px) and (max-width: 1300px) {

  :is(
    .layout-grid--3-2-1,
    .layout-grid--4-2-1
  ).layout-grid--wide-collapse {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }


  /*
   * Centre lone item in two-column final row.
   */

  :is(
    .layout-grid--3-2-1,
    .layout-grid--4-2-1
  ).layout-grid--wide-collapse:has(
    > :last-child:nth-child(2n + 1)
  ) {
    display: flex !important;

    flex-wrap: wrap;
    justify-content: center;
  }

  :is(
    .layout-grid--3-2-1,
    .layout-grid--4-2-1
  ).layout-grid--wide-collapse:has(
    > :last-child:nth-child(2n + 1)
  ) > * {
    flex:
      0 0
      calc(
        (
          100% -
          var(--layout-grid-column-gap)
        ) / 2
      );
  }
}


/* --------------------------------------------------
   Wide-collapse true desktop
   1301px+
-------------------------------------------------- */

@media (min-width: 1301px) {

  .layout-grid--4-2-1.layout-grid--wide-collapse:has(
    > :last-child:nth-child(4n + 1)
  ),
  .layout-grid--4-2-1.layout-grid--wide-collapse:has(
    > :last-child:nth-child(4n + 2)
  ),
  .layout-grid--4-2-1.layout-grid--wide-collapse:has(
    > :last-child:nth-child(4n + 3)
  ) {
    display: flex !important;

    flex-wrap: wrap;
    justify-content: center;
  }

  .layout-grid--4-2-1.layout-grid--wide-collapse:has(
    > :last-child:nth-child(4n + 1)
  ) > *,
  .layout-grid--4-2-1.layout-grid--wide-collapse:has(
    > :last-child:nth-child(4n + 2)
  ) > *,
  .layout-grid--4-2-1.layout-grid--wide-collapse:has(
    > :last-child:nth-child(4n + 3)
  ) > * {
    flex:
      0 0
      calc(
        (
          100% -
          (
            var(--layout-grid-column-gap) * 3
          )
        ) / 4
      );
  }


  .layout-grid--3-2-1.layout-grid--wide-collapse:has(
    > :last-child:nth-child(3n + 1)
  ),
  .layout-grid--3-2-1.layout-grid--wide-collapse:has(
    > :last-child:nth-child(3n + 2)
  ) {
    display: flex !important;

    flex-wrap: wrap;
    justify-content: center;
  }

  .layout-grid--3-2-1.layout-grid--wide-collapse:has(
    > :last-child:nth-child(3n + 1)
  ) > *,
  .layout-grid--3-2-1.layout-grid--wide-collapse:has(
    > :last-child:nth-child(3n + 2)
  ) > * {
    flex:
      0 0
      calc(
        (
          100% -
          (
            var(--layout-grid-column-gap) * 2
          )
        ) / 3
      );
  }
}


/* ==================================================
   Reusable grids: tablet
================================================== */

@media (min-width: 768px) and (max-width: 991px) {

  .layout-grid--3-2-1,
  .layout-grid--4-2-1 {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }


  /*
   * Centre lone final item in two-column grids.
   */

  :is(
    .layout-grid--3-2-1,
    .layout-grid--4-2-1,
    .layout-grid--2-1
  ):has(
    > :last-child:nth-child(2n + 1)
  ) {
    display: flex !important;

    flex-wrap: wrap;
    justify-content: center;
  }

  :is(
    .layout-grid--3-2-1,
    .layout-grid--4-2-1,
    .layout-grid--2-1
  ):has(
    > :last-child:nth-child(2n + 1)
  ) > * {
    flex:
      0 0
      calc(
        (
          100% -
          var(--layout-grid-column-gap)
        ) / 2
      );
  }


  /*
   * 3-3-1 remains three columns on tablet.
   */

  .layout-grid--3-3-1:has(
    > :last-child:nth-child(3n + 1)
  ),
  .layout-grid--3-3-1:has(
    > :last-child:nth-child(3n + 2)
  ) {
    display: flex !important;

    flex-wrap: wrap;
    justify-content: center;
  }

  .layout-grid--3-3-1:has(
    > :last-child:nth-child(3n + 1)
  ) > *,
  .layout-grid--3-3-1:has(
    > :last-child:nth-child(3n + 2)
  ) > * {
    flex:
      0 0
      calc(
        (
          100% -
          (
            var(--layout-grid-column-gap) * 2
          )
        ) / 3
      );
  }
}


/* ==================================================
   Reusable grids: phone
================================================== */

@media (max-width: 767px) {

  .layout-grid--3-2-1,
  .layout-grid--3-3-1,
  .layout-grid--2-1,
  .layout-grid--4-2-1 {
    display: grid !important;

    grid-template-columns:
      minmax(0, 1fr);
  }

  .layout-grid--3-2-1 > *,
  .layout-grid--3-3-1 > *,
  .layout-grid--2-1 > *,
  .layout-grid--4-2-1 > * {
    width: 100%;

    grid-column: auto;

    justify-self: stretch;
  }


  .layout-grid-rows
    > .layout-grid--3-3-1
    + .layout-grid--3-3-1 {
    margin-top:
      clamp(3rem, 5vw, 6rem);
  }
}


/* ==================================================
   HEADING GROUP
================================================== */

.heading-group {
  display: flex;
  flex-direction: column;
  align-items: flex-start;

  width: 70%;

  gap: 0.75rem;

  margin-bottom: clamp(3rem, 5vw, 6rem);
}

/* Heading */

.heading-group > h1,
.heading-group > h2,
.heading-group > h3,
.heading-group > h4,
.heading-group > h5,
.heading-group > h6 {
  margin: 0;
}

.heading-group__heading {
  max-width: 25ch;
}

/* Rich text */

.heading-group__text {
  width: 100%;

  margin-top: 2rem;
}

.heading-group__text > *:first-child {
  margin-top: 0;
}

.heading-group__text > *:last-child {
  margin-bottom: 0;
}

/* Tablet */

@media (max-width: 991px) {
  .heading-group {
    width: 80%;
  }
}

/* Phone */

@media (max-width: 767px) {
  .heading-group {
    width: 100%;
  }
}

/* ==================================================
   HEADING GROUP WITH ACTION
================================================== */

.heading-group.heading-group-row {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    auto;

  grid-template-areas:
    "eyebrow action"
    "heading action";

  column-gap: clamp(2rem, 4vw, 5rem);
  row-gap: 0;

  align-items: end;

  width: 100%;
}


/* Eyebrow */

.heading-group-row > .eyebrow {
  grid-area: eyebrow;

  margin-bottom: 0.75rem;
}


/* Heading */

.heading-group-row > .heading-group__heading,
.heading-group-row > .home-why__heading {
  grid-area: heading;

  min-width: 0;

  margin: 0;
}


/* Action
-------------------------------------------------- */

.heading-group-row > .heading-group-row__action {
  grid-area: action;

  display: flex;
  align-items: flex-end;
  justify-content: flex-end;

  justify-self: end;
  align-self: end;

  min-width: 0;
}


/* Button
-------------------------------------------------- */

.heading-group-row__action .btn,
.heading-group-row__action .brxe-button {
  width: auto;
}


/* ==================================================
   TABLET + PHONE
================================================== */

@media (max-width: 991px) {

  .heading-group.heading-group-row {
    grid-template-columns:
      minmax(0, 1fr);

    grid-template-areas:
      "eyebrow"
      "heading"
      "action";

    column-gap: 0;
    row-gap: 0;
  }

  .heading-group-row > .heading-group-row__action {
    justify-self: start;
    align-self: start;

    margin-top: 2rem;
  }
}

/* ==================================================
   03. REUSABLE TEXT STYLES
================================================== */
/* Reusable centred editorial introduction */

.intro-statement {
  width: 100%;
  max-width: 900px;
  margin-inline: auto;

  font-family: var(--font-heading);
  font-size: var(--text-h3);
  font-weight: var(--weight-heading);
  line-height: var(--lh-heading-standard);
  letter-spacing: var(--ls-heading);

  text-align: center;
  text-wrap: balance;
}

.intro-statement p {
  font: inherit;
  letter-spacing: inherit;
  margin: 0;
}

.intro-statement p + p {
  margin-top: 0.8em;
}

/* ==================================================
   SECTION TITLE ROW
================================================== */

.brxe-container.section-title-row {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  justify-content: space-between;

  gap: clamp(2rem, 4vw, 4rem);

  width: 100%;
  margin-bottom: clamp(3.375rem, 4.375vw, 4.375rem);
}

/* Nested Bricks container */

.brxe-container > .brxe-container.section-title-row {
  max-width: 100%;

  padding-left: 0;
  padding-right: 0;
}

/* Remove default child margins */

.section-title-row > * {
  margin-top: 0;
  margin-bottom: 0;
}

/* Heading */

.section-title-row > .brxe-heading {
  align-self: flex-end;
  margin-top: 0;
  margin-bottom: 0;
}

/* Override scroll animation heading spacing */

.section-title-row > .brxe-heading.scroll-content-in {
  margin-bottom: 0;
}

/* Action / button */

.section-title-row__action {
  flex-shrink: 0;
  align-self: flex-end;

  margin-left: auto;
}


/* ==================================================
   Section title row — Phone
================================================== */

@media (max-width: 767px) {

  .brxe-container.section-title-row {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;

    gap: clamp(0.25rem, 1vw, 0.5rem) !important;

    width: 100%;
    margin-bottom: clamp(2rem, 6vw, 3rem);
  }

  .section-title-row > *,
  .section-title-row > .brxe-heading,
  .section-title-row__action {
    align-self: flex-start;
  }

  .section-title-row__action {
    margin-left: 0;
  }

  .section-title-row .brxe-button {
    margin-top: 20px !important;
  }

}

/* ==================================================
   Image and text columns
================================================== */

.image-text-column {
  display: flex;
  flex-direction: column;
  align-items: stretch;

  min-width: 0;

  gap: clamp(1.75rem, 2.5vw, 2.75rem);
}

/* Default image: fills the column */

.image-text-column__image {
  display: block;

  width: 100%;
  min-width: 0;
}

.image-text-column__image picture,
.image-text-column__image figure {
  display: block;

  width: 100%;
}

.image-text-column__image img {
  display: block;

  width: 100%;
  height: auto;

  object-fit: cover;
}

/* Logo modifier: fixed-size and centred */

.image-text-column__image--logo {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;
  height: 7rem;
}

.image-text-column__image--logo picture,
.image-text-column__image--logo figure {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;
  height: 100%;
}

.image-text-column__image--logo img {
  display: block;

  width: auto !important;
  max-width: 100%;
  height: 4rem !important;
  max-height: none;

  margin-inline: auto;

  object-fit: contain;
}

/* ==================================================
   Narrow Centred Content
================================================== */

.content-inner--narrow {
  width: 100%;
  max-width: 900px;
  margin-inline: auto;
}

/* Allow the body copy and image to use the full narrow width */

.content-inner--narrow > .brxe-text {
  width: 100%;
  max-width: none;
}

/* Centred map */

.content-inner--narrow > .brxe-image {
  display: block;
  align-self: center;

  width: 100%;
  max-width: 600px;

  margin-top: clamp(2.5rem, 5vw, 5rem);
  margin-inline: auto;
}

/* ==================================================
   05. ANIMATIONS
================================================== */


/* ==================================================
   Lenis
================================================== */

html.lenis,
html.lenis body {
  height: auto;
}

.lenis:not(.lenis-autoToggle).lenis-stopped {
  overflow: clip;
}

.lenis [data-lenis-prevent],
.lenis [data-lenis-prevent-wheel],
.lenis [data-lenis-prevent-touch],
.lenis [data-lenis-prevent-vertical],
.lenis [data-lenis-prevent-horizontal] {
  overscroll-behavior: contain;
}

.lenis.lenis-smooth iframe {
  pointer-events: none;
}

.lenis.lenis-autoToggle {
  transition-property: overflow;
  transition-duration: 1ms;
  transition-behavior: allow-discrete;
}

/* ==================================================
   Text and content entrance
================================================== */

@keyframes content-in {
  from {
    opacity: 0;
    transform: translateY(1.25rem);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/* ==================================================
   Reusable above-the-fold entrance
================================================== */

.heading-content-in {
  opacity: 0;
  transform: translateY(1.25rem);
  animation: content-in 0.9s var(--motion-ease) 0.35s forwards;
}


/* ==================================================
   Page hero load sequence
================================================== */

.page-hero__heading,
.page-hero__intro,
.page-hero__body-column {
  opacity: 0;
  transform: translateY(1.25rem);
  animation: content-in 0.9s var(--motion-ease) forwards;
}

.page-hero__heading {
  animation-delay: 0.35s;
}

.page-hero__intro {
  animation-delay: 0.55s;
}

.page-hero__body-column {
  animation-delay: 0.75s;
}

@media (prefers-reduced-motion: reduce) {
  .page-hero__heading,
  .page-hero__intro,
  .page-hero__body-column {
    opacity: 1;
    transform: none;
    animation: none;
  }
}


/* ==================================================
   Above-the-fold media entrance
================================================== */

@keyframes media-load-in {
  from {
    opacity: 0;
    transform: translateY(1.25rem) scale(0.992);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.media-load-in {
  opacity: 0;
  transform: translateY(1.25rem) scale(0.992);
  animation: media-load-in 1.25s var(--motion-ease) 0.45s forwards;
}

.media-load-in--late {
  animation-delay: 0.65s;
}


/* ==================================================
   Scroll-triggered content entrance
================================================== */

.scroll-content-in {
  opacity: 0;
  transform: translateY(1.25rem);
}

.scroll-content-in.is-in-view {
  animation:
    content-in
    0.9s
    var(--motion-ease)
    var(--scroll-animation-delay, 0.15s)
    forwards;
}

/* Fix rogue heading background on animated headings */
.scroll-content-in.brxe-heading {
  background-color: transparent !important;
}


/* ==================================================
   Global Bricks image reveal
================================================== */

.brxe-image:not(.image-no-reveal) {
  opacity: 0;
  transform: translateY(1.25rem) scale(0.992);

  transition:
    opacity 1.45s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1.45s cubic-bezier(0.22, 1, 0.36, 1);

  will-change: opacity, transform;
}

.brxe-image:not(.image-no-reveal).is-image-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
  will-change: auto;
}


/* ==================================================
   Reduced motion
================================================== */

@media (prefers-reduced-motion: reduce) {
  .heading-content-in,
  .page-hero__heading,
  .page-hero__intro,
  .page-hero__body,
  .page-hero__btn,
  .media-load-in,
  .scroll-content-in,
  .brxe-image:not(.image-no-reveal) {
    opacity: 1;
    transform: none;
    animation: none;
    transition: none;
  }
}

/* ==================================================
   Animated line
================================================== */

.line-slide-wrap {
  width: 100%;
}

.line-slide {
  --line-color: currentColor;
  --line-delay: 0.35s;
  --line-speed: 0.9s;
  --line-width: 100%;

  display: block;
  width: var(--line-width);
  height: 1px !important;
  min-height: 0 !important;
  max-height: 1px !important;

  padding: 0 !important;
  margin: 0;
  border: 0;
  overflow: hidden;

  font-size: 0;
  line-height: 0;

  background-color: var(--line-color);
	opacity:.4;

  transform: scaleX(0);
  transform-origin: left center;

  transition:
    transform var(--line-speed) var(--motion-ease) var(--line-delay);
}

.line-slide.is-in-view {
  transform: scaleX(1);
}

.line-slide--on-light {
  --line-color: var(--color-text-light-bg);
		opacity:1 !important;
	margin-bottom: 20px;
}

.line-slide--on-dark {
  --line-color: var(--color-text-dark-bg);

}

.line-slide--from-right {
  transform-origin: right center;
}

.line-slide--delay-short {
  --line-delay: 0.2s;
}

.line-slide--delay-long {
  --line-delay: 0.55s;
}

@media (prefers-reduced-motion: reduce) {
  .line-slide {
    transform: scaleX(1);
    transition: none;
  }
}

/* ==================================================
   Line Reveal
================================================== */

.line-reveal {
  width: 100%;
}

.line-reveal__line {
  display: block;

  overflow: hidden;

  padding-bottom: 0.08em;
  margin-bottom: -0.08em;
}

.line-reveal__line-inner {
  display: block;

  opacity: 0;
  transform: translateY(0.8em);

  transition:
    opacity 900ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 1.1s cubic-bezier(0.22, 1, 0.36, 1);

  transition-delay:
    calc(var(--line-index) * 140ms);
}

.line-reveal.is-visible .line-reveal__line-inner {
  opacity: 1;
  transform: translateY(0);
}

/* ==================================================
   Line Reveal: Phone
================================================== */

@media (max-width: 767px) {

  .line-reveal.line-reveal--ready {
    opacity: 0;
    transform: translateY(0.6rem);

    transition:
      opacity 900ms cubic-bezier(0.22, 1, 0.36, 1),
      transform 1s cubic-bezier(0.22, 1, 0.36, 1);
  }

  .line-reveal.line-reveal--ready.is-visible {
    opacity: 1;
    transform: translateY(0);
  }

}

/* ==================================================
   Letter Reveal
================================================== */

.letter-reveal {
  --letter-duration: 1.15s;
  --letter-delay: 24ms;
}

.letter-reveal__word {
  display: inline-block;
  white-space: nowrap;
}

.letter-reveal__letter {
  display: inline-block;

  opacity: 0;
  transform: translateY(0.7em);

  transition:
    opacity var(--letter-duration)
      cubic-bezier(0.22, 1, 0.36, 1),
    transform var(--letter-duration)
      cubic-bezier(0.22, 1, 0.36, 1);

  transition-delay:
    calc(var(--letter-index) * var(--letter-delay));
}

.letter-reveal.is-visible
  .letter-reveal__letter {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .letter-reveal__letter {
    opacity: 1;
    transform: none;
    transition: none;
  }
}


/* Accessibility */

@media (prefers-reduced-motion: reduce) {

  .line-reveal__line {
    overflow: visible;
  }

  .line-reveal__line-inner {
    opacity: 1;
    transform: none;
    transition: none;
  }

}


/* ==================================================
   HEADER
================================================== */

.site-header {
  --ne-booking-bar-height: 4.6rem;
  --ne-sticky-height: var(--ne-booking-bar-height);

  position: relative !important;
  top: auto !important;
  z-index: 9999;

  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 !important;

  background: transparent;
}

.site-header,
.ne-topbar-wrap,
.ne-header-sticky,
.ne-booking-bar {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 !important;
}

.ne-header-sticky {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  left: auto !important;
  z-index: 9999;

  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 !important;
}

.three-col-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: clamp(1.5rem, 2.5vw, 3rem);
  row-gap: clamp(2rem, 3vw, 4rem);
  width: 100%;
}

@media (max-width: 767px) {
  .three-col-grid {
    grid-template-columns: 1fr;
    row-gap: 2.5rem;
  }
}


/* ==================================================
   HEADER: FIXED BOOKING BAR STATE
   Triggered by JS
================================================== */

.site-header {
  overflow: visible;
}

.site-header.is-booking-fixed {
  padding-bottom: var(--ne-sticky-height, 0px) !important;
}

.site-header.is-booking-fixed .ne-header-sticky {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  left: 0 !important;
  z-index: 99999 !important;

  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.admin-bar .site-header.is-booking-fixed .ne-header-sticky {
  top: 32px !important;
}

@media (max-width: 782px) {
  body.admin-bar .site-header.is-booking-fixed .ne-header-sticky {
    top: 46px !important;
  }
}


/* ==================================================
   HEADER: TOP INFO BAR
================================================== */

.ne-topbar-wrap {
  background: var(--color-bg-teal-3);
}

.ne-topbar {
  width: 100%;
  height: var(--ne-topbar-height);
  min-height: 0;
  margin: 0;
  padding: 0;

  background: var(--color-bg-teal-3);
  color: var(--color-text-dark-bg);

  font-family: var(--font-body);
  font-size: var(--text-small);
  font-weight: var(--weight-medium);
  line-height: var(--lh-small);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.ne-topbar__inner {
  position: relative;

  display: grid;
  place-items: center;

  width: 100%;
  height: var(--ne-topbar-height);
  min-height: 0;
  margin: 0;
  padding: 0;

  overflow: hidden;
}

.ne-topbar__item {
  grid-area: 1 / 1;

  width: 100%;
  max-width: none;
  padding: 0 var(--site-gutter, 2rem);

  color: inherit;
  text-align: center;

  opacity: 0;
  transform: translateY(0.35em);
  pointer-events: none;

  transition:
    opacity 600ms ease,
    transform 600ms ease;
}

.ne-topbar__item.is-active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}


/* WYSIWYG cleanup */

.ne-topbar__item,
.ne-topbar__item p,
.ne-topbar__item a {
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}

.ne-topbar__item p {
  margin: 0;
}

.ne-topbar__item a {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;

  transition:
    color 250ms ease,
    text-decoration-color 250ms ease;
}

.ne-topbar__item a:hover,
.ne-topbar__item a:focus-visible {
  color: var(--color-accent);
  text-decoration-color: currentColor;
}


/* ==================================================
   HEADER: BOOKING BAR
================================================== */

.ne-booking-bar {
  position: relative;

  width: 100%;
  min-height: var(--ne-booking-bar-height);

  background-color: #e59a38;
}

.ne-booking-bar__link {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;
  max-width: none;
  min-height: var(--ne-booking-bar-height);
  margin: 0;
  padding: 0 var(--site-gutter, 2rem);

  background-color: #e59a38;
  color: #043235;

  font-family: var(--font-body);
  font-size: 16px;
  font-weight: var(--link-font-weight, 500);
  line-height: 1;
  letter-spacing: 0.02em;
  text-align: center;
  text-decoration: none;
  text-transform: none;

  cursor: pointer;

  transition:
    background-color 250ms ease,
    color 250ms ease;
}

.ne-booking-bar__link:hover,
.ne-booking-bar__link:focus-visible {
  background-color: var(--color-accent);
  color: #043235;
}


/* Inner Bricks text element */

.ne-booking-bar__link > * {
  margin: 0;

  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-align: inherit;
  text-decoration: inherit;
  text-transform: inherit;
}


/* ==================================================
   ACCESSIBILITY
================================================== */

@media (prefers-reduced-motion: reduce) {
  .ne-topbar__item,
  .ne-booking-bar__link,
  .ne-topbar__item a {
    transition: none;
  }

  .ne-topbar__item {
    transform: none;
  }
}

/* ==================================================
   HEADER: GLOBAL BODY
================================================== */

body {
  max-width: 100%;
  overflow-x: clip;
}


/* ==================================================
   HEADER: MAIN BAR + MEGA MENU
================================================== */

#brx-header {
  position: relative;
  z-index: 9999;
}

#brx-header + * {
  margin-top: calc(var(--ne-mainbar-height, 5.8rem) * -1);
}

.ne-mainbar {
  --ne-logo-width: clamp(10rem, 9vw, 14rem);
  --ne-logo-height: 45px;

  position: relative;

  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;

  background: var(--color-bg-main);
  color: var(--color-bg-teal-3);

  box-shadow: none;
}

.ne-mainbar__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  column-gap: clamp(2rem, 4vw, 5rem);

  width: 100%;
  max-width: none;
  height: var(--ne-mainbar-height);
  min-height: 0;
  margin: 0;
  padding: 0 var(--site-gutter, 2rem);

  overflow: visible;
}


/* ==================================================
   HEADER: MAINBAR GRID PLACEMENT
================================================== */

.ne-mainbar__logo {
  grid-column: 1;
  grid-row: 1;
}

.ne-mainbar__nav {
  grid-column: 2;
  grid-row: 1;
}

.ne-mainbar__tools {
  grid-column: 3;
  grid-row: 1;
}


/* ==================================================
   HEADER: LOGOS
================================================== */

.ne-mainbar__logo {
  justify-self: start;
  align-self: center;

  width: var(--ne-logo-width) !important;
  max-width: var(--ne-logo-width) !important;
  height: var(--ne-logo-height) !important;
  max-height: var(--ne-logo-height) !important;

  margin: 0 !important;
  padding: 0 !important;

  line-height: 0 !important;
  overflow: hidden !important;
  border-radius: 0 !important;

  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  filter: none !important;
  mix-blend-mode: normal !important;
}

/* If .ne-mainbar__logo is the actual img */

img.ne-mainbar__logo {
  display: block !important;

  width: auto !important;
  max-width: var(--ne-logo-width) !important;
  height: var(--ne-logo-height) !important;
  max-height: var(--ne-logo-height) !important;

  object-fit: contain !important;
  object-position: left center !important;
}

/* If .ne-mainbar__logo is a Bricks wrapper around an img */

.ne-mainbar__logo img {
  display: block !important;

  width: auto !important;
  max-width: 100% !important;
  height: 100% !important;
  max-height: var(--ne-logo-height) !important;

  object-fit: contain !important;
  object-position: left center !important;
}

/* Default solid state */

.ne-mainbar__logo--teal {
  display: block !important;
}

.ne-mainbar__logo--cream {
  display: none !important;
}

/* Transparent state: show cream logo site wide */

.site-header:not(.is-booking-fixed) .ne-mainbar__logo--teal {
  display: none !important;
}

.site-header:not(.is-booking-fixed) .ne-mainbar__logo--cream {
  display: block !important;
}

/* Scrolled/fixed state: show teal logo site wide */

.site-header.is-booking-fixed .ne-mainbar__logo--teal {
  display: block !important;
}

.site-header.is-booking-fixed .ne-mainbar__logo--cream {
  display: none !important;
}


/* ==================================================
   HEADER: NAV ROW
================================================== */

.ne-mainbar__nav {
  justify-self: center;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(1.4rem, 1.6vw, 2.4rem);

  min-width: 0;
}

.ne-mainbar__tools {
  justify-self: end;

  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1.4rem;
}

.ne-mainbar__link {
  color: inherit;

  font-family: var(--font-body);
  font-size: 14px;
  font-weight: var(--link-font-weight, 500);
  line-height: 1;
  letter-spacing: 0.02em;
  text-decoration: none;
  text-transform: none;

  transition: color 250ms ease;
}

.ne-mainbar__link:hover,
.ne-mainbar__link:focus-visible {
  color: var(--color-bg-teal-2);
}


/* ==================================================
   HEADER: NAV TRIGGERS
================================================== */

.ne-nav-item {
  position: static;
}

.ne-nav-trigger {
  appearance: none;
  -webkit-appearance: none;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.65em;

  margin: 0;
  padding: 0;

  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  color: inherit;

  font-family: var(--font-body);
  font-size: 14px;
  font-weight: var(--link-font-weight, 500);
  line-height: 1;
  letter-spacing: 0.02em;
  text-align: center;
  text-decoration: none;
  text-transform: none;

  cursor: pointer;

  transition: color 250ms ease;
}

.ne-nav-trigger p,
.ne-nav-trigger span {
  margin: 0;
  padding: 0;

  color: inherit;
  font: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}

.ne-nav-trigger:hover,
.ne-nav-trigger:focus-visible,
.ne-nav-item.is-open > .ne-nav-trigger {
  color: var(--color-bg-teal-2);
}

.ne-nav-trigger::after {
  content: "";
  display: inline-block;

  width: 0.45em;
  height: 0.45em;

  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;

  transform: translateY(-0.15em) rotate(45deg);
  transition: transform 250ms ease;
}

.ne-nav-item.is-open > .ne-nav-trigger::after {
  transform: translateY(0.05em) rotate(225deg);
}


/* ==================================================
   HEADER: MEGA PANEL
================================================== */

.ne-mega {
  --ne-mega-link-size: var(--text-body, 1.6rem);
  --ne-mega-link-gap: 0.42rem;
  --ne-mega-label-size: var(--text-h5, 2.4rem);
  --ne-mega-label-gap: clamp(1rem, 1.1vw, 1.4rem);
  --ne-mega-info-spacing: clamp(2.8rem, 3vw, 4rem);

  position: absolute;
  top: 100%;
  right: 0;
  left: 0;
  z-index: -1;

  width: 100%;
  max-width: none;

  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(1rem);

  transition:
    opacity 250ms ease,
    transform 250ms ease,
    visibility 250ms ease;
}

.ne-nav-item.is-open > .ne-mega {
  z-index: 100000;

  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.ne-mega__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(36rem, 0.9fr);
  align-items: stretch;
  gap: clamp(3rem, 5vw, 6rem);

  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(3rem, 4vw, 5rem) var(--site-gutter, 2rem);

  background: var(--color-bg-sand);
  color: var(--color-bg-teal-3);
  border-top: 1px solid rgba(4, 50, 53, 0.12);
  box-shadow: 0 2.4rem 3.2rem -2.4rem rgba(4, 50, 53, 0.16);
}

.ne-mega__menus {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-self: stretch;
  gap: clamp(3rem, 5vw, 6rem);

  width: 100%;
  min-width: 0;
}

.ne-mega__menu-col,
.ne-mega__mobile-group {
  display: flex;
  flex-direction: column;
  align-items: flex-start;

  width: 100%;
  min-width: 0;
}

.ne-mega__images {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 2vw, 2.4rem);

  min-width: 0;
}

.ne-mega__image,
.ne-mega__image img {
  display: block;

  width: 100%;
  aspect-ratio: 1 / 1;

  overflow: hidden;
  object-fit: cover;
}

.ne-mega__image img {
  height: 100%;
}


/* ==================================================
   HEADER: MEGA MENU TYPE
================================================== */

.ne-mega .brxe-nav-menu {
  width: 100%;
}

.ne-mega .bricks-nav-menu {
  position: static !important;

  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: var(--ne-mega-link-gap) !important;

  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;

  list-style: none;

  transform: none !important;
  background: transparent !important;
  overflow: visible !important;
}

.ne-mega .bricks-nav-menu > li,
.ne-mega .menu-item {
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;

  line-height: 1 !important;
  list-style: none;
}

.ne-mega .bricks-nav-menu a,
.ne-mega .menu-item a {
  display: inline-flex !important;
  align-items: center;

  width: auto;
  margin: 0 !important;
  padding: 0 !important;

  color: inherit;

  font-family: var(--font-body);
  font-size: var(--ne-mega-link-size) !important;
  font-weight: 400;
  line-height: 1.08 !important;
  letter-spacing: 0 !important;
  text-decoration: none;
  text-transform: none !important;

  transition:
    color 250ms ease,
    opacity 250ms ease;
}

.ne-mega .bricks-nav-menu a:hover,
.ne-mega .bricks-nav-menu a:focus-visible,
.ne-mega .menu-item a:hover,
.ne-mega .menu-item a:focus-visible {
  color: var(--color-bg-teal-2);
}


/* ==================================================
   HEADER: MEGA LABELS
================================================== */

.ne-mega .nav-menu__label {
  appearance: none;
  -webkit-appearance: none;

  display: block;
  width: auto;
  margin: 0 0 var(--ne-mega-label-gap);
  padding: 0;

  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  color: inherit;

  font-family: var(--font-body);
  font-size: var(--ne-mega-label-size);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0 !important;
  text-align: left;
  text-transform: uppercase;

  cursor: default;
}

.ne-mega .nav-menu__label--info {
  margin-top: var(--ne-mega-info-spacing);
}

.ne-mega .nav-menu__label p,
.ne-mega .nav-menu__label h1,
.ne-mega .nav-menu__label h2,
.ne-mega .nav-menu__label h3,
.ne-mega .nav-menu__label h4,
.ne-mega .nav-menu__label h5,
.ne-mega .nav-menu__label h6 {
  margin: 0;

  color: inherit;
  font: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}

/* Extra separation for info/menu section inside mega menus */

.ne-mega .bricks-nav-menu > li.ne-info,
.ne-mega .menu-item.ne-info {
  margin-top: var(--ne-mega-info-spacing) !important;
}


/* ==================================================
   HEADER: TOURS MEGA MODIFIERS
================================================== */

.ne-mega--tours {
  --ne-mega-all-tours-gap: max(
    0.55rem,
    calc(var(--ne-mega-label-gap) - var(--ne-mega-link-gap))
  );
}


/* ==================================================
   HEADER: DESKTOP/TABLET MEGA ACCORDION RESET
================================================== */

@media (min-width: 768px) {
  .ne-mega .ne-mobile-accordion-trigger {
    pointer-events: none;
  }

  .ne-mega .ne-mobile-accordion-trigger::after {
    display: none !important;
    content: none !important;
  }

  .ne-mega .ne-mobile-accordion-trigger:hover,
  .ne-mega .ne-mobile-accordion-trigger:focus,
  .ne-mega .ne-mobile-accordion-trigger:focus-visible,
  .ne-mega .ne-mobile-accordion-trigger:active {
    background: transparent;
    border: 0;
    box-shadow: none;
    outline: 0;
    color: inherit;
  }
}


/* ==================================================
   HEADER: ALL TOURS FEATURE LINK
================================================== */

.ne-mega--tours .bricks-nav-menu > li.tours-parent {
  margin-bottom: var(--ne-mega-all-tours-gap) !important;
}


/* Feature link */

.ne-mega--tours .bricks-nav-menu > li.tours-parent > a,
.ne-mega--tours .bricks-nav-menu > li > a.tours-parent,
.ne-mega--tours .tours-parent > a {
  --all-tours-arrow-size: 1.15em;
  --all-tours-arrow-gap: 0.32em;
  --all-tours-arrow-shift: 0.22em;

  position: relative;

  display: inline-flex !important;
  align-items: center;

  gap: var(--all-tours-arrow-gap);

  width: fit-content !important;

  margin: 0 !important;
  padding: 0 0 0.08em !important;

  color: currentColor !important;

  font-family: var(--font-body);
  font-size: var(--ne-mega-label-size) !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  letter-spacing: 0.02em !important;

  text-transform: uppercase !important;
  text-decoration: none !important;

  background-image: none !important;

  transition:
    color var(--motion-speed) var(--motion-ease);
}


/* Underline */

.ne-mega--tours .bricks-nav-menu > li.tours-parent > a::before,
.ne-mega--tours .bricks-nav-menu > li > a.tours-parent::before,
.ne-mega--tours .tours-parent > a::before {
  content: "";

  position: absolute;
  left: 0;
  bottom: 0;

  width: calc(
    100% -
    var(--all-tours-arrow-size) -
    var(--all-tours-arrow-gap)
  );

  height: var(--link-underline-thickness);

  background-color: currentColor;

  transform: scaleX(1);
  transform-origin: left center;

  transition:
    transform var(--motion-speed) var(--motion-ease);
}


/* Arrow */

.ne-mega--tours .bricks-nav-menu > li.tours-parent > a::after,
.ne-mega--tours .bricks-nav-menu > li > a.tours-parent::after,
.ne-mega--tours .tours-parent > a::after {
  content: "" !important;
  display: inline-block !important;

  flex-shrink: 0;

  width: var(--all-tours-arrow-size);
  height: var(--all-tours-arrow-size);

  background-color: currentColor;

  -webkit-mask-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;

  mask-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z'/%3E%3C/svg%3E");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;

  transition:
    transform var(--motion-speed) var(--motion-ease);
}


/* Hover / focus */

.ne-mega--tours .bricks-nav-menu > li.tours-parent > a:hover,
.ne-mega--tours .bricks-nav-menu > li.tours-parent > a:focus-visible,
.ne-mega--tours .bricks-nav-menu > li > a.tours-parent:hover,
.ne-mega--tours .bricks-nav-menu > li > a.tours-parent:focus-visible,
.ne-mega--tours .tours-parent > a:hover,
.ne-mega--tours .tours-parent > a:focus-visible {
  color: var(--color-bg-teal-2) !important;
}


.ne-mega--tours .bricks-nav-menu > li.tours-parent > a:hover::before,
.ne-mega--tours .bricks-nav-menu > li.tours-parent > a:focus-visible::before,
.ne-mega--tours .bricks-nav-menu > li > a.tours-parent:hover::before,
.ne-mega--tours .bricks-nav-menu > li > a.tours-parent:focus-visible::before,
.ne-mega--tours .tours-parent > a:hover::before,
.ne-mega--tours .tours-parent > a:focus-visible::before {
  transform: scaleX(0);
}


.ne-mega--tours .bricks-nav-menu > li.tours-parent > a:hover::after,
.ne-mega--tours .bricks-nav-menu > li.tours-parent > a:focus-visible::after,
.ne-mega--tours .bricks-nav-menu > li > a.tours-parent:hover::after,
.ne-mega--tours .bricks-nav-menu > li > a.tours-parent:focus-visible::after,
.ne-mega--tours .tours-parent > a:hover::after,
.ne-mega--tours .tours-parent > a:focus-visible::after {
  transform:
    translateX(var(--all-tours-arrow-shift));
}


/* ==================================================
   HEADER: SITE-WIDE TRANSPARENT STATE
================================================== */

/* Transparent state */

.site-header:not(.is-booking-fixed):not(.is-search-open):not(.is-mobile-menu-open) .ne-mainbar {
  background: transparent !important;
  color: var(--color-bg-sand) !important;
  box-shadow: none !important;
}

/* Remove line between Book A Tour and transparent mainbar */

.site-header:not(.is-booking-fixed):not(.is-search-open):not(.is-mobile-menu-open) .ne-header-sticky,
.site-header:not(.is-booking-fixed):not(.is-search-open):not(.is-mobile-menu-open) .ne-booking-bar,
.site-header:not(.is-booking-fixed):not(.is-search-open):not(.is-mobile-menu-open) .ne-booking-bar__link {
  border-top: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}

/* Transparent state text/icons */

.site-header:not(.is-booking-fixed):not(.is-search-open):not(.is-mobile-menu-open):not(:has(.ne-nav-item.is-open))
  .ne-nav-trigger,
.site-header:not(.is-booking-fixed):not(.is-search-open):not(.is-mobile-menu-open):not(:has(.ne-nav-item.is-open))
  .ne-mainbar__link,
.site-header:not(.is-booking-fixed):not(.is-search-open):not(.is-mobile-menu-open):not(:has(.ne-nav-item.is-open))
  .ne-header-tools,
.site-header:not(.is-booking-fixed):not(.is-search-open):not(.is-mobile-menu-open):not(:has(.ne-nav-item.is-open))
  .ne-header-tools__link,
.site-header:not(.is-booking-fixed):not(.is-search-open):not(.is-mobile-menu-open):not(:has(.ne-nav-item.is-open))
  .ne-mobile-toggle {
  color: var(--color-bg-sand) !important;
}

.site-header:not(.is-booking-fixed):not(.is-search-open):not(.is-mobile-menu-open):not(:has(.ne-nav-item.is-open))
  .ne-header-tools__divider {
  background: var(--color-bg-sand) !important;
  opacity: 0.7;
}

/* Transparent state hover */

.site-header:not(.is-booking-fixed):not(.is-search-open):not(.is-mobile-menu-open):not(:has(.ne-nav-item.is-open))
  .ne-nav-trigger:hover,
.site-header:not(.is-booking-fixed):not(.is-search-open):not(.is-mobile-menu-open):not(:has(.ne-nav-item.is-open))
  .ne-nav-trigger:focus-visible,
.site-header:not(.is-booking-fixed):not(.is-search-open):not(.is-mobile-menu-open):not(:has(.ne-nav-item.is-open))
  .ne-mainbar__link:hover,
.site-header:not(.is-booking-fixed):not(.is-search-open):not(.is-mobile-menu-open):not(:has(.ne-nav-item.is-open))
  .ne-mainbar__link:focus-visible,
.site-header:not(.is-booking-fixed):not(.is-search-open):not(.is-mobile-menu-open):not(:has(.ne-nav-item.is-open))
  .ne-header-tools__link:hover,
.site-header:not(.is-booking-fixed):not(.is-search-open):not(.is-mobile-menu-open):not(:has(.ne-nav-item.is-open))
  .ne-header-tools__link:focus-visible,
.site-header:not(.is-booking-fixed):not(.is-search-open):not(.is-mobile-menu-open):not(:has(.ne-nav-item.is-open))
  .ne-mobile-toggle:hover,
.site-header:not(.is-booking-fixed):not(.is-search-open):not(.is-mobile-menu-open):not(:has(.ne-nav-item.is-open))
  .ne-mobile-toggle:focus-visible {
  color: color-mix(in srgb, var(--color-bg-sand) 70%, transparent) !important;
}

/* Mega-open state before scroll */

.site-header:not(.is-booking-fixed):has(.ne-nav-item.is-open)
  .ne-mainbar {
  background: var(--color-bg-sand) !important;
  color: var(--color-bg-teal-3) !important;
}

/* Mega-open logo state */

.site-header:not(.is-booking-fixed):has(.ne-nav-item.is-open)
  .ne-mainbar__logo--teal {
  display: block !important;
}

.site-header:not(.is-booking-fixed):has(.ne-nav-item.is-open)
  .ne-mainbar__logo--cream {
  display: none !important;
}

/* Mega-open text/icons */

.site-header:not(.is-booking-fixed):has(.ne-nav-item.is-open)
  .ne-nav-trigger,
.site-header:not(.is-booking-fixed):has(.ne-nav-item.is-open)
  .ne-mainbar__link,
.site-header:not(.is-booking-fixed):has(.ne-nav-item.is-open)
  .ne-header-tools,
.site-header:not(.is-booking-fixed):has(.ne-nav-item.is-open)
  .ne-header-tools__link,
.site-header:not(.is-booking-fixed):has(.ne-nav-item.is-open)
  .ne-mobile-toggle {
  color: var(--color-bg-teal-3) !important;
}

.site-header:not(.is-booking-fixed):has(.ne-nav-item.is-open)
  .ne-header-tools__divider {
  background: var(--color-bg-teal-3) !important;
  opacity: 0.45;
}

/* Mega-open hover */

.site-header:not(.is-booking-fixed):has(.ne-nav-item.is-open)
  .ne-nav-trigger:hover,
.site-header:not(.is-booking-fixed):has(.ne-nav-item.is-open)
  .ne-nav-trigger:focus-visible,
.site-header:not(.is-booking-fixed):has(.ne-nav-item.is-open)
  .ne-nav-item.is-open
  .ne-nav-trigger,
.site-header:not(.is-booking-fixed):has(.ne-nav-item.is-open)
  .ne-mainbar__link:hover,
.site-header:not(.is-booking-fixed):has(.ne-nav-item.is-open)
  .ne-mainbar__link:focus-visible,
.site-header:not(.is-booking-fixed):has(.ne-nav-item.is-open)
  .ne-header-tools__link:hover,
.site-header:not(.is-booking-fixed):has(.ne-nav-item.is-open)
  .ne-header-tools__link:focus-visible,
.site-header:not(.is-booking-fixed):has(.ne-nav-item.is-open)
  .ne-mobile-toggle:hover,
.site-header:not(.is-booking-fixed):has(.ne-nav-item.is-open)
  .ne-mobile-toggle:focus-visible {
  color: var(--color-bg-teal-2) !important;
}

/* ==================================================
   HEADER: MAINBAR BORDERS
================================================== */

/* Base solid state */
.ne-mainbar {
  border-top: 0 !important;
  border-right: 0 !important;
  border-left: 0 !important;
  border-bottom: 1px solid rgba(4, 50, 53, 0.18) !important;
}

/* Transparent state */
.site-header:not(.is-booking-fixed):not(.is-search-open):not(.is-mobile-menu-open):not(:has(.ne-nav-item.is-open))
  .ne-mainbar {
  border-top: 0 !important;
  border-right: 0 !important;
  border-left: 0 !important;
  border-bottom: 1px solid rgba(246, 255, 243, 0.7) !important;
}

/* Mega-open state before scroll, visually solid */
.site-header:not(.is-booking-fixed):has(.ne-nav-item.is-open)
  .ne-mainbar {
  border-top: 0 !important;
  border-right: 0 !important;
  border-left: 0 !important;
  border-bottom: 1px solid rgba(4, 50, 53, 0.18) !important;
}

/* Fixed/scrolled state, solid */
.site-header.is-booking-fixed
  .ne-mainbar {
  border-top: 0 !important;
  border-right: 0 !important;
  border-left: 0 !important;
  border-bottom: 1px solid rgba(4, 50, 53, 0.18) !important;
}


/* ==================================================
   HEADER: TOOLS / SOCIAL ICONS
================================================== */

.ne-header-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(0.8rem, 1vw, 1.2rem);

  color: inherit;
}

.ne-header-tools__group {
  display: flex;
  align-items: center;
  gap: clamp(0.65rem, 0.8vw, 0.9rem);
}

.ne-header-tools__divider {
  width: 1px;
  height: 1.5rem;

  background: currentColor;
  opacity: 0.45;
}

.ne-header-tools__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 1.8rem;
  height: 1.8rem;

  color: inherit;
  text-decoration: none;

  transition:
    color 250ms ease,
    opacity 250ms ease;
}

.ne-header-tools__link::before {
  content: "";
  display: block;

  width: 1.8rem;
  height: 1.8rem;

  background-color: currentColor;

  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;

  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
}

.ne-header-tools__link:hover,
.ne-header-tools__link:focus-visible {
  color: var(--color-bg-teal-2);
}

/* ==================================================
   HEADER: BOOKING BAR DYNAMIC BUTTONS
================================================== */

/* Tour-specific button is hidden by default */
.ne-booking-bar__link--tour {
  display: none !important;
}

/* Only allow tour-specific button on single tour pages */
body.single-tour .ne-booking-bar__link--tour,
body.single-tours .ne-booking-bar__link--tour {
  display: flex !important;
}

/* On single tour pages, hide fallback if the tour-specific button exists */
body.single-tour .ne-booking-bar:has(.ne-booking-bar__link--tour)
  .ne-booking-bar__link--fallback,
body.single-tours .ne-booking-bar:has(.ne-booking-bar__link--tour)
  .ne-booking-bar__link--fallback {
  display: none !important;
}

/* ==================================================
   HEADER: SITE SEARCH
================================================== */


/* --------------------------------------------------
   Search trigger
   Button reset only.
   Icon itself remains in HEADER: Icon masks.
-------------------------------------------------- */

.ne-header-tools__link--search {
  appearance: none;
  -webkit-appearance: none;

  margin: 0;
  padding: 0;

  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;

  color: inherit;
  font: inherit;

  cursor: pointer;
}


/* --------------------------------------------------
   Search panel
-------------------------------------------------- */

.ne-search {
  position: fixed;
  inset: 0;
  z-index: 9998;

  width: 100%;
  height: 100dvh;

  background: var(--color-bg-sand);
  color: var(--color-bg-teal-3);

  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  transform: translateY(-1rem);

  overflow-y: auto;

  transition:
    opacity 300ms ease,
    transform 300ms ease,
    visibility 300ms ease;
}

.site-header.is-search-open .ne-search {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;

  transform: translateY(0);
}


/* --------------------------------------------------
   Search inner
-------------------------------------------------- */

.ne-search__inner {
  position: relative;

  display: flex;
  flex-direction: column;
  justify-content: center;

  width: 100%;
  max-width: none;
  min-height: 100%;

  margin: 0;

  padding:
    calc(
      var(--ne-booking-bar-height) +
      var(--ne-mainbar-height) +
      clamp(4rem, 7vh, 8rem)
    )
    var(--site-gutter, 2rem)
    clamp(5rem, 8vh, 9rem);
}


/* --------------------------------------------------
   Close button
-------------------------------------------------- */

.ne-search__close {
  appearance: none;
  -webkit-appearance: none;

  position: absolute;
  top: calc(
    var(--ne-booking-bar-height) +
    var(--ne-mainbar-height) +
    2.5rem
  );
  right: var(--site-gutter, 2rem);

  display: flex;
  align-items: center;
  justify-content: center;

  width: 3.4rem;
  height: 3.4rem;

  margin: 0;
  padding: 0;

  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;

  color: var(--color-bg-teal-3);

  cursor: pointer;

  transition:
    color 250ms ease,
    opacity 250ms ease;
}

.ne-search__close::before,
.ne-search__close::after {
  content: "";

  position: absolute;

  width: 2.1rem;
  height: 1.5px;

  background: currentColor;
}

.ne-search__close::before {
  transform: rotate(45deg);
}

.ne-search__close::after {
  transform: rotate(-45deg);
}

.ne-search__close:hover,
.ne-search__close:focus-visible {
  color: var(--color-bg-teal-2);
}


/* --------------------------------------------------
   Intro
-------------------------------------------------- */

.ne-search__intro {
  display: flex;
  flex-direction: column;

  gap: clamp(1rem, 1.5vw, 1.6rem);

  width: 100%;
  max-width: 1100px;

  margin:
    0
    auto
    clamp(3rem, 5vw, 5rem);
}

.ne-search__eyebrow {
  margin: 0;

  color: var(--color-bg-teal-3);

  font-family: var(--font-body);
  font-size: var(--text-small);
  font-weight: var(--weight-medium);
  line-height: 1;
  letter-spacing: 0.08em;

  text-transform: uppercase;
}

.ne-search__heading {
  margin: 0;

  color: var(--color-bg-teal-3);

  font-family: var(--font-heading);
  font-size: var(--text-h3);
  line-height: var(--lh-heading-tight);
  letter-spacing: var(--ls-heading);
}


/* --------------------------------------------------
   Form wrapper
-------------------------------------------------- */

.ne-search__form-wrap {
  width: 100%;
  max-width: 1100px;

  margin: 0 auto;
}


/* --------------------------------------------------
   Search form
-------------------------------------------------- */

.ne-search__form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;

  gap: clamp(1.5rem, 2vw, 2.5rem);

  width: 100%;

  padding-bottom: clamp(1.2rem, 1.5vw, 1.6rem);

  border-bottom:
    1px solid rgba(4, 50, 53, 0.4);
}


/* --------------------------------------------------
   Search input
-------------------------------------------------- */

.ne-search__input {
  appearance: none;
  -webkit-appearance: none;

  width: 100%;
  min-width: 0;

  margin: 0;
  padding: 0;

  background: transparent;
  border: 0;
  border-radius: 0;
  outline: 0;
  box-shadow: none;

  color: var(--color-bg-teal-3);

  font-family: var(--font-heading);
  font-size: var(--text-h4);
  font-weight: 400;
  line-height: var(--lh-heading-tight);
  letter-spacing: var(--ls-heading);
}

.ne-search__input::placeholder {
  color: rgba(4, 50, 53, 0.38);
  opacity: 1;
}

.ne-search__input::-webkit-search-decoration,
.ne-search__input::-webkit-search-cancel-button,
.ne-search__input::-webkit-search-results-button,
.ne-search__input::-webkit-search-results-decoration {
  display: none;
}


/* --------------------------------------------------
   Submit
   Shared link-inline + link-arrow classes
   provide underline and arrow behaviour.
-------------------------------------------------- */

.ne-search__submit {
  appearance: none;
  -webkit-appearance: none;

  margin: 0;
  padding: 0 0 0.15em;

  background-color: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;

  color: var(--color-bg-teal-3);

  font-family: var(--font-body);
  font-size: var(--text-body-small);
  line-height: 1;

  cursor: pointer;
}


/* ==================================================
   HEADER: SEARCH OPEN STATE
================================================== */


/* --------------------------------------------------
   Compact header while search is open
-------------------------------------------------- */

.site-header.is-search-open .ne-topbar-wrap {
  display: none !important;
}

.site-header.is-search-open .ne-header-sticky {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  left: 0 !important;
  z-index: 99999 !important;

  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* --------------------------------------------------
   Force mainbar into solid state
-------------------------------------------------- */

.site-header.is-search-open .ne-mainbar {
  background: var(--color-bg-sand) !important;
  color: var(--color-bg-teal-3) !important;

  border-bottom:
    1px solid rgba(4, 50, 53, 0.18) !important;

  box-shadow: none !important;
}


/* --------------------------------------------------
   Logo
-------------------------------------------------- */

.site-header.is-search-open
  .ne-mainbar__logo--teal {
  display: block !important;
}

.site-header.is-search-open
  .ne-mainbar__logo--cream {
  display: none !important;
}


/* --------------------------------------------------
   Navigation + tools
-------------------------------------------------- */

.site-header.is-search-open .ne-nav-trigger,
.site-header.is-search-open .ne-mainbar__link,
.site-header.is-search-open .ne-header-tools,
.site-header.is-search-open .ne-header-tools__link,
.site-header.is-search-open .ne-mobile-toggle {
  color: var(--color-bg-teal-3) !important;
}

.site-header.is-search-open
  .ne-header-tools__divider {
  background: var(--color-bg-teal-3) !important;
  opacity: 0.45;
}


/* Hover */

.site-header.is-search-open
  .ne-nav-trigger:hover,
.site-header.is-search-open
  .ne-nav-trigger:focus-visible,
.site-header.is-search-open
  .ne-mainbar__link:hover,
.site-header.is-search-open
  .ne-mainbar__link:focus-visible,
.site-header.is-search-open
  .ne-header-tools__link:hover,
.site-header.is-search-open
  .ne-header-tools__link:focus-visible,
.site-header.is-search-open
  .ne-mobile-toggle:hover,
.site-header.is-search-open
  .ne-mobile-toggle:focus-visible {
  color: var(--color-bg-teal-2) !important;
}


/* --------------------------------------------------
   Page lock
-------------------------------------------------- */

body.ne-search-open {
  overflow: hidden;
}


/* ==================================================
   HEADER: SEARCH MOBILE
================================================== */

@media (max-width: 767px) {

  .ne-search__inner {
    justify-content: flex-start;

    padding:
      calc(
        var(--ne-booking-bar-height) +
        var(--ne-mainbar-height) +
        6rem
      )
      clamp(1.4rem, 5vw, 2rem)
      4rem;
  }

  .ne-search__close {
    top: calc(
      var(--ne-booking-bar-height) +
      var(--ne-mainbar-height) +
      1.5rem
    );

    right: clamp(1.4rem, 5vw, 2rem);
  }

  .ne-search__intro {
    gap: 1rem;
    margin-bottom: 3.5rem;
  }

  .ne-search__form {
    grid-template-columns: 1fr;

    gap: 2rem;

    padding-bottom: 1.4rem;
  }

  .ne-search__submit {
    justify-self: start;
  }
}


/* ==================================================
   HEADER: SEARCH ADMIN BAR
================================================== */

body.admin-bar
  .site-header.is-search-open
  .ne-header-sticky {
  top: 32px !important;
}

@media (max-width: 782px) {
  body.admin-bar
    .site-header.is-search-open
    .ne-header-sticky {
    top: 46px !important;
  }
}


/* ==================================================
   HEADER: SEARCH REDUCED MOTION
================================================== */

@media (prefers-reduced-motion: reduce) {

  .ne-search,
  .ne-search__close,
  .ne-header-tools__link--search,
  .ne-search__submit,
  .ne-search__submit::before,
  .ne-search__submit::after {
    transition: none;
  }

  .ne-search {
    transform: none;
  }
}

/* ==================================================
   HEADER: TABLET
================================================== */

@media (min-width: 768px) and (max-width: 991px) {
  .ne-mainbar {
    --ne-logo-width: clamp(9.5rem, 14vw, 12rem);
    --ne-logo-height: 46px;
  }

  .ne-mainbar__inner {
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: clamp(1.5rem, 3vw, 2.5rem);
  }

  .ne-mainbar__nav {
    justify-self: end;
    justify-content: flex-end;
    gap: clamp(1.1rem, 2vw, 1.8rem);
  }

  .ne-mainbar__tools,
  .ne-mobile-toggle {
    display: none !important;
  }

  .ne-nav-trigger,
  .ne-mainbar__link {
    font-size: 13px;
    letter-spacing: 0.015em;
  }

  .ne-nav-trigger {
    gap: 0.5em;
  }

  .ne-nav-trigger::after {
    width: 0.4em;
    height: 0.4em;
  }

  .ne-mega {
    max-height: none;
    overflow: visible;
  }

  .ne-mega__inner {
    position: relative;

    display: flex !important;
    flex-direction: column !important;

    min-height: 0;
    gap: clamp(2.5rem, 4vw, 4rem);
    padding-top: clamp(2.6rem, 4vw, 4rem);
    padding-bottom: clamp(3rem, 5vw, 4.5rem);
  }

  .ne-mega__menus {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(2.8rem, 5vw, 5rem);

    width: 100%;
  }

  .ne-mega--tours {
    --ne-mega-link-size: 1.45rem;
    --ne-mega-label-size: clamp(2rem, 2.8vw, 2.35rem);
    --ne-mega-label-gap: 0.9rem;
    --ne-mega-info-spacing: clamp(2.2rem, 3vw, 3.2rem);
  }

  .ne-mega__images {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1.4rem, 2.5vw, 2.4rem);

    width: 100%;
    margin-top: clamp(2.4rem, 4vw, 4rem);
  }

  .ne-mega__image,
  .ne-mega__image img {
    aspect-ratio: 16 / 9;
    border-radius: 2.2rem;
  }
}


/* ==================================================
   HEADER: MOBILE MAINBAR
================================================== */

.ne-mobile-toggle {
  display: none;
}

@media (max-width: 767px) {
   .site-header {
    --ne-topbar-height: 3.4rem;
    --ne-booking-bar-height: 4.4rem;
  }

  .ne-topbar__item {
    padding-right: var(--site-gutter, 1.6rem);
    padding-left: var(--site-gutter, 1.6rem);
  }

  .ne-booking-bar__link {
    font-size: 16px;
  }

  .ne-mainbar {
  --ne-mainbar-height: 5rem;
  --ne-logo-width: clamp(7.6rem, 31vw, 9.6rem);
  --ne-logo-height: 32px;

  width: 100%;
  max-width: 100vw;
  overflow: hidden;
}

  .ne-mainbar__inner {
    display: flex !important;
    align-items: center;
    justify-content: space-between;

    width: 100%;
    max-width: 100vw;
    height: var(--ne-mainbar-height);
    min-height: 0;
    margin: 0;
    padding-right: clamp(1.4rem, 5vw, 2rem);
    padding-left: clamp(1.4rem, 5vw, 2rem);

    box-sizing: border-box;
    overflow: hidden;
  }

  .ne-mainbar__logo {
    flex: 0 0 auto;

    width: var(--ne-logo-width) !important;
    max-width: var(--ne-logo-width) !important;
    height: var(--ne-logo-height) !important;
    max-height: var(--ne-logo-height) !important;

    margin: 0 !important;
    padding: 0 !important;
  }

  img.ne-mainbar__logo {
    object-fit: contain !important;
    object-position: left center !important;
  }

  .ne-mainbar__nav,
  .ne-mainbar__tools {
    display: none !important;
  }

  .ne-mobile-toggle {
    flex: 0 0 auto;

    display: inline-flex !important;
    align-items: center;
    justify-content: center;

    width: 3.4rem;
    height: 3.4rem;
    margin: 0 0 0 auto;
    padding: 0;

    color: inherit;
    background: transparent;
    border: 0;
    box-shadow: none;

    cursor: pointer;
  }

  .ne-mobile-toggle svg,
  .ne-mobile-toggle i {
    display: block;

    width: 2.1rem;
    height: 2.1rem;

    color: currentColor;
    fill: currentColor;
    stroke: currentColor;
  }
}

/* ==================================================
   HEADER: MOBILE MENU
================================================== */

.ne-mobile-menu {
  display: none;
}


/* ==================================================
   HEADER: MOBILE MENU — PHONE
================================================== */

@media (max-width: 767px) {

  /* --------------------------------------------------
     Variables
  -------------------------------------------------- */

  .ne-mobile-menu {
    --ne-mobile-menu-gutter: clamp(1.4rem, 5vw, 2rem);
  }


  /* --------------------------------------------------
     Full-screen panel
  -------------------------------------------------- */

  .ne-mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 9997;

    display: block !important;

    width: 100%;
    height: 100dvh;

    margin: 0;
    padding: 0;

    background: var(--color-bg-sand);
    color: var(--color-bg-teal-3);

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transform: translateY(-0.75rem);

    overflow: hidden;

    transition:
      opacity 300ms ease,
      transform 300ms ease,
      visibility 300ms ease;
  }

  .site-header.is-mobile-menu-open
    .ne-mobile-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;

    transform: translateY(0);
  }


  /* --------------------------------------------------
     Inner scroll area
  -------------------------------------------------- */

  .ne-mobile-menu__inner {
    display: flex;
    flex-direction: column;

    width: 100%;
    height: 100%;
    min-height: 0;

    margin: 0;

    padding-top:
      calc(
        var(--ne-booking-bar-height) +
        var(--ne-mainbar-height) +
        clamp(2.8rem, 8vw, 4rem)
      );

    overflow-x: hidden;
    overflow-y: auto;

    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;

    scrollbar-width: none;
  }

  .ne-mobile-menu__inner::-webkit-scrollbar {
    display: none;
  }


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

  .ne-mobile-menu__nav {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;

    width: 100%;

    margin: 0;
    padding:
      0
      var(--ne-mobile-menu-gutter)
      3rem;

    overflow: visible;
  }


  /* --------------------------------------------------
     Accordion sections
  -------------------------------------------------- */

  .ne-mobile-menu__section {
    width: 100%;

    background: transparent;

    border-bottom:
      1px solid rgba(4, 50, 53, 0.16);
  }


  /* --------------------------------------------------
     Top-level triggers + direct links
  -------------------------------------------------- */

  .ne-mobile-menu__trigger,
  .ne-mobile-menu__direct {
    appearance: none;
    -webkit-appearance: none;

    display: flex;
    align-items: center;
    justify-content: space-between;

    width: 100%;

    margin: 0;
    padding: 1.1rem 0;

    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;

    color: var(--color-bg-teal-3);

    font-family: var(--font-body);
    font-size: var(--text-h6);
    font-weight: 500;
    line-height: 1.05;
    letter-spacing: 0.01em;

    text-align: left;
    text-decoration: none;
    text-transform: uppercase;

    cursor: pointer;

    transition: color 250ms ease;
  }

  .ne-mobile-menu__direct {
    border-bottom:
      1px solid rgba(4, 50, 53, 0.16);
  }

  .ne-mobile-menu__trigger:hover,
  .ne-mobile-menu__trigger:focus-visible,
  .ne-mobile-menu__direct:hover,
  .ne-mobile-menu__direct:focus-visible {
    color: var(--color-bg-teal-2);
  }


  /* --------------------------------------------------
     Accordion chevron
  -------------------------------------------------- */

  .ne-mobile-menu__trigger::after {
    content: "";

    flex: 0 0 auto;

    width: 0.55em;
    height: 0.55em;

    margin-left: 1.5rem;

    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;

    transform:
      translateY(-0.15em)
      rotate(45deg);

    transition: transform 250ms ease;
  }

  .ne-mobile-menu__section.is-open
    > .ne-mobile-menu__trigger::after {
    transform:
      translateY(0.1em)
      rotate(225deg);
  }


  /* ==================================================
     ACCORDION PANEL
  ================================================== */

  .ne-mobile-menu__panel {
    display: grid;
    grid-template-rows: 0fr;

    width: 100%;

    background: transparent;

    opacity: 0;

    transition:
      grid-template-rows 300ms ease,
      opacity 250ms ease,
      padding 300ms ease;
  }

  .ne-mobile-menu__panel > * {
    min-height: 0;
    overflow: hidden;
  }

  .ne-mobile-menu__section.is-open
    > .ne-mobile-menu__panel {
    grid-template-rows: 1fr;

    padding:
      0.5rem
      0
      2rem;

    opacity: 1;
  }


  /* ==================================================
     BRICKS NAV MENU RESET
     Use Bricks' generated mobile menu as normal content
  ================================================== */

  .ne-mobile-menu .brxe-nav-menu {
    display: block !important;

    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;

    opacity: 1 !important;
    visibility: visible !important;

    overflow: visible !important;
  }


  /* Hide Bricks desktop copy */

  .ne-mobile-menu
    .bricks-nav-menu-wrapper {
    display: none !important;
  }


  /* Hide Bricks mobile toggle + overlay */

  .ne-mobile-menu
    .bricks-mobile-menu-toggle,
  .ne-mobile-menu
    .bricks-mobile-menu-overlay {
    display: none !important;

    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;

    background: transparent !important;
  }


  /* Remove Bricks-generated backdrop layers */

  .ne-mobile-menu
    .bricks-mobile-menu-wrapper::before,
  .ne-mobile-menu
    .bricks-mobile-menu-wrapper::after,
  .ne-mobile-menu
    .brxe-nav-menu::before,
  .ne-mobile-menu
    .brxe-nav-menu::after {
    content: none !important;
    display: none !important;

    background: transparent !important;
  }


  /* Neutralise Bricks off-canvas wrapper */

  .ne-mobile-menu
    .bricks-mobile-menu-wrapper {
    position: static !important;

    inset: auto !important;

    display: block !important;

    width: 100% !important;
    height: auto !important;
    max-width: none !important;
    max-height: none !important;

    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;
    box-shadow: none !important;

    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;

    transform: none !important;

    overflow: visible !important;
  }


  /* Actual menu list */

  .ne-mobile-menu
    .bricks-mobile-menu {
    position: static !important;

    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;

    gap: 0.55rem !important;

    width: 100% !important;
    height: auto !important;
    max-height: none !important;

    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;

    opacity: 1 !important;
    visibility: visible !important;

    transform: none !important;

    overflow: visible !important;

    list-style: none;
  }


  /* Menu items */

  .ne-mobile-menu
    .bricks-mobile-menu > li {
    display: block !important;

    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;

    line-height: 1 !important;

    opacity: 1 !important;
    visibility: visible !important;

    list-style: none;
  }


  /* Menu links */

  .ne-mobile-menu
    .bricks-mobile-menu a {
    display: inline-flex !important;
    align-items: center;

    width: auto !important;

    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;

    color: var(--color-bg-teal-3) !important;

    font-family: var(--font-body);
    font-size: var(--text-body);
    font-weight: 400;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;

    text-decoration: none !important;
    text-transform: none !important;

    opacity: 1 !important;
    visibility: visible !important;

    transition: color 250ms ease;
  }

  .ne-mobile-menu
    .bricks-mobile-menu a:hover,
  .ne-mobile-menu
    .bricks-mobile-menu a:focus-visible {
    color: var(--color-bg-teal-2) !important;
  }


  /* --------------------------------------------------
     All Tours feature link
  -------------------------------------------------- */

  .ne-mobile-menu
    .bricks-mobile-menu
    .tours-parent > a {
    position: relative;

    display: inline-flex !important;
    align-items: center;

    gap: var(--link-arrow-gap);

    width: fit-content !important;

    margin-bottom: 0.6rem !important;
    padding: 0 0 0.08em !important;

    color: var(--color-text-light-bg) !important;

    font-family: var(--font-body);
    font-size: var(--text-h5) !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    letter-spacing: 0.02em !important;

    text-transform: uppercase !important;
    text-decoration: none !important;

    background-image: none !important;
  }


  /* Underline */

  .ne-mobile-menu
    .bricks-mobile-menu
    .tours-parent > a::before {
    content: "";

    position: absolute;
    left: 0;
    bottom: 0;

    width: calc(
      100% -
      var(--link-arrow-size) -
      var(--link-arrow-gap)
    );

    height: var(--link-underline-thickness);

    background-color: currentColor;

    transform: scaleX(1);
    transform-origin: left center;

    transition:
      transform var(--motion-speed) var(--motion-ease);
  }


  /* Arrow */

  .ne-mobile-menu
    .bricks-mobile-menu
    .tours-parent > a::after {
    content: "" !important;
    display: inline-block !important;

    flex-shrink: 0;

    width: var(--link-arrow-size);
    height: var(--link-arrow-size);

    background-color: currentColor;

    -webkit-mask-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;

    mask-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z'/%3E%3C/svg%3E");
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;

    transform: translateY(var(--link-arrow-y));

    transition:
      transform var(--motion-speed) var(--motion-ease);
  }


  /* Hover / focus */

  .ne-mobile-menu
    .bricks-mobile-menu
    .tours-parent > a:hover::before,
  .ne-mobile-menu
    .bricks-mobile-menu
    .tours-parent > a:focus-visible::before {
    transform: scaleX(0);
  }

  .ne-mobile-menu
    .bricks-mobile-menu
    .tours-parent > a:hover::after,
  .ne-mobile-menu
    .bricks-mobile-menu
    .tours-parent > a:focus-visible::after {
    transform:
      translateY(var(--link-arrow-y))
      translateX(var(--link-arrow-shift));
  }


  /* --------------------------------------------------
     Tours By Experience label
  -------------------------------------------------- */

  .ne-mobile-menu
    .bricks-mobile-menu
    .tours-parent::after {
    content: "Tours By Experience";

    display: block;

    margin:
      1.8rem
      0
      1rem;

    color: var(--color-bg-teal-3);

    font-family: var(--font-body);
    font-size: var(--text-h6);
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.01em;

    text-transform: uppercase;
  }


  /* --------------------------------------------------
     Remove desktop menu spacing
  -------------------------------------------------- */

  .ne-mobile-menu
    .bricks-mobile-menu
    > li.menu-sub {
    margin-top: 0 !important;

    transform: none !important;
  }


  /* ==================================================
     FOOTER / TOOLS
  ================================================== */

  .ne-mobile-menu__footer {
    position: sticky;
    bottom: 0;
    z-index: 10;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 2rem;

    flex: 0 0 auto;

    width: 100%;

    margin-top: auto;

    padding:
      1.5rem
      var(--ne-mobile-menu-gutter)
      max(1.5rem, env(safe-area-inset-bottom));

    box-sizing: border-box;

    background: var(--color-bg-sand) !important;

    border-top:
      1px solid rgba(4, 50, 53, 0.16);
  }

  .ne-mobile-menu__tools,
  .ne-mobile-menu__socials {
    display: flex;
    align-items: center;

    gap: 1rem;

    min-width: 0;
  }


  /* --------------------------------------------------
     Footer icons
  -------------------------------------------------- */

  .ne-mobile-menu__footer
    .ne-header-tools__link,
  .ne-mobile-menu__search {
    appearance: none;
    -webkit-appearance: none;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 auto;

    width: 2rem;
    height: 2rem;

    margin: 0;
    padding: 0;

    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;

    color: var(--color-bg-teal-3);

    text-decoration: none;

    cursor: pointer;

    transition:
      color 250ms ease,
      opacity 250ms ease;
  }

  .ne-mobile-menu__footer
    .ne-header-tools__link::before,
  .ne-mobile-menu__search::before {
    content: "";

    display: block;

    width: 2rem;
    height: 2rem;

    background-color: currentColor;

    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;

    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
  }

  .ne-mobile-menu__search::before {
    mask-image:
      url("/wp-content/uploads/2026/07/search-outline.svg");

    -webkit-mask-image:
      url("/wp-content/uploads/2026/07/search-outline.svg");
  }

  .ne-mobile-menu__footer
    .ne-header-tools__link:hover,
  .ne-mobile-menu__footer
    .ne-header-tools__link:focus-visible,
  .ne-mobile-menu__search:hover,
  .ne-mobile-menu__search:focus-visible {
    color: var(--color-bg-teal-2);
  }


  /* ==================================================
     MOBILE MENU OPEN HEADER STATE
  ================================================== */

  .site-header.is-mobile-menu-open
    .ne-topbar-wrap {
    display: none !important;
  }

  .site-header.is-mobile-menu-open
    .ne-header-sticky {
    position: fixed !important;

    top: 0 !important;
    right: 0 !important;
    left: 0 !important;

    z-index: 99999 !important;

    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;
  }

  .site-header.is-mobile-menu-open
    .ne-mainbar {
    background: var(--color-bg-sand) !important;
    color: var(--color-bg-teal-3) !important;

    border-bottom:
      1px solid rgba(4, 50, 53, 0.18) !important;

    box-shadow: none !important;
  }


  /* Teal logo */

  .site-header.is-mobile-menu-open
    .ne-mainbar__logo--teal {
    display: block !important;
  }

  .site-header.is-mobile-menu-open
    .ne-mainbar__logo--cream {
    display: none !important;
  }


  /* Toggle colour */

  .site-header.is-mobile-menu-open
    .ne-mobile-toggle {
    color: var(--color-bg-teal-3) !important;
  }


  /* ==================================================
     HAMBURGER → CLOSE
  ================================================== */

  .ne-mobile-toggle {
    position: relative;
  }

  .ne-mobile-toggle svg,
  .ne-mobile-toggle i {
    transition: opacity 200ms ease;
  }

  .ne-mobile-toggle::before,
  .ne-mobile-toggle::after {
    content: "";

    position: absolute;
    top: 50%;
    left: 50%;

    width: 2.1rem;
    height: 1.5px;

    background: currentColor;

    opacity: 0;

    transition:
      opacity 200ms ease,
      transform 250ms ease;
  }

  .site-header.is-mobile-menu-open
    .ne-mobile-toggle svg,
  .site-header.is-mobile-menu-open
    .ne-mobile-toggle i {
    opacity: 0;
  }

  .site-header.is-mobile-menu-open
    .ne-mobile-toggle::before {
    opacity: 1;

    transform:
      translate(-50%, -50%)
      rotate(45deg);
  }

  .site-header.is-mobile-menu-open
    .ne-mobile-toggle::after {
    opacity: 1;

    transform:
      translate(-50%, -50%)
      rotate(-45deg);
  }


  /* --------------------------------------------------
     Page lock
  -------------------------------------------------- */

  body.ne-mobile-menu-open {
    overflow: hidden;
  }


  /* --------------------------------------------------
     WordPress admin bar
  -------------------------------------------------- */

  body.admin-bar
    .site-header.is-mobile-menu-open
    .ne-header-sticky {
    top: 46px !important;
  }
}


/* ==================================================
   HEADER: MOBILE MENU REDUCED MOTION
================================================== */

@media (prefers-reduced-motion: reduce) {

  .ne-mobile-menu,
  .ne-mobile-menu__panel,
  .ne-mobile-menu__trigger::after,
  .ne-mobile-toggle::before,
  .ne-mobile-toggle::after,
  .ne-mobile-toggle svg,
  .ne-mobile-toggle i {
    transition: none;
  }

  .ne-mobile-menu {
    transform: none;
  }
}

/* ==================================================
   HEADER: ICON MASKS
================================================== */

.ne-header-tools__link--facebook::before {
  mask-image: url("/wp-content/uploads/2026/07/facebook.svg");
  -webkit-mask-image: url("/wp-content/uploads/2026/07/facebook.svg");
}

.ne-header-tools__link--instagram::before {
  mask-image: url("/wp-content/uploads/2026/07/logo-instagram.svg");
  -webkit-mask-image: url("/wp-content/uploads/2026/07/logo-instagram.svg");
}

.ne-header-tools__link--youtube::before {
  mask-image: url("/wp-content/uploads/2026/07/logo-youtube.svg");
  -webkit-mask-image: url("/wp-content/uploads/2026/07/logo-youtube.svg");
}

.ne-header-tools__link--phone::before {
  mask-image: url("/wp-content/uploads/2026/07/call-outline.svg");
  -webkit-mask-image: url("/wp-content/uploads/2026/07/call-outline.svg");
}

.ne-header-tools__link--email::before {
  mask-image: url("/wp-content/uploads/2026/07/mail-outline.svg");
  -webkit-mask-image: url("/wp-content/uploads/2026/07/mail-outline.svg");
}

.ne-header-tools__link--search::before {
  mask-image: url("/wp-content/uploads/2026/07/search-outline.svg");
  -webkit-mask-image: url("/wp-content/uploads/2026/07/search-outline.svg");
}


/* Desktop menu-sub adjustment */

@media (min-width: 768px) {
  .menu-sub {
    transform: translateY(25px);
  }
}
