@import url("https://fonts.googleapis.com/css2?family=League+Spartan:wght@400;500;600;700;800&family=Roboto+Condensed:wght@300;400;500;600&display=swap");

/* Transparent from-pricing used consistently on cards and itinerary heroes. */
.tour-price {
  margin: 2px 0 22px;
}
.tour-price strong,
.tour-price small {
  display: block;
}
.pricing-basis-note {
  align-items: center;
  background: var(--sand);
  border: 1px solid rgba(200,164,93,.58);
  display: flex;
  gap: 18px;
  margin: 42px auto 0;
  max-width: 920px;
  padding: 16px 20px 14px;
}
.pricing-basis-note strong {
  color: var(--forest);
  flex: 0 0 auto;
  font-family: "League Spartan", sans-serif;
  font-size: 11px;
  letter-spacing: .14em;
}
.pricing-basis-note span {
  color: var(--muted);
  font-size: 15px;
  line-height: 1.4;
}
@media (max-width: 700px) {
  .pricing-basis-note {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
    margin: 34px auto 0;
  }
}
.tour-price-badge {
  background: rgba(12,46,39,.92);
  border: 1px solid rgba(255,255,255,.6);
  bottom: 15px;
  box-sizing: border-box;
  color: #fff;
  font-family: "League Spartan", sans-serif;
  font-size: 11px;
  font-weight: 700;
  right: 15px;
  letter-spacing: .10em;
  padding: 9px 13px 7px;
  position: absolute;
  text-align: center;
  width: 136px;
}
.tour-image .tour-duration {
  bottom: 15px;
  left: auto;
  right: 159px;
}
.tour-image .tour-price-badge {
  left: auto;
  right: 15px;
}
.tour-price strong {
  background: var(--forest);
  color: #fff;
  display: inline-block;
  font-family: "League Spartan", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .11em;
  padding: 11px 14px 9px;
}
.tour-price small {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.35;
  margin-top: 8px;
  max-width: 245px;
}
.miremby-tour-page .journey-price {
  border-left: 3px solid var(--gold, #c8a45d);
  color: #fff;
  margin-top: 22px;
  max-width: 570px;
  padding: 5px 0 5px 16px;
}
.miremby-tour-page .journey-price strong,
.miremby-tour-page .journey-price small {
  display: block;
}
.miremby-tour-page .journey-price strong {
  font-family: "League Spartan", sans-serif;
  font-size: clamp(18px, 1.7vw, 24px);
  letter-spacing: .08em;
}
.miremby-tour-page .journey-price small {
  color: rgba(255,255,255,.82);
  font-size: 14px;
  line-height: 1.4;
  margin-top: 5px;
}

/* Homepage purpose banner: intentionally sits only between the hero and tours. */
.homepage-purpose-banner {
  background: var(--forest);
  border-left: 7px solid var(--gold);
  color: #fff;
  padding: 82px max(8vw, 64px) 78px;
  text-align: center;
}
.homepage-purpose-banner .eyebrow { margin-bottom: 22px; }
.homepage-purpose-banner h2 {
  color: #fff;
  font-family: "League Spartan", sans-serif;
  font-size: clamp(38px, 4.2vw, 68px);
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: .98;
  margin: 0 auto 28px;
  max-width: 1120px;
}
.homepage-purpose-banner > p:last-child {
  color: rgba(255,255,255,.82);
  font-size: clamp(17px, 1.35vw, 21px);
  line-height: 1.6;
  margin: 0 auto;
  max-width: 980px;
}
@media (max-width: 700px) {
  .homepage-purpose-banner { border-left-width: 5px; padding: 68px 27px 64px; }
  .homepage-purpose-banner h2 { font-size: clamp(34px, 10vw, 46px); line-height: 1.02; margin-bottom: 24px; }
  .homepage-purpose-banner > p:last-child { font-size: 17px; line-height: 1.55; }
}


.itineraries-hero{align-items:flex-end;background-color:var(--forest);background-position:center,center;background-repeat:no-repeat;background-size:cover,cover;color:#fff;display:flex;min-height:650px;padding:0 max(7vw,48px) 105px}.itineraries-hero>div{max-width:900px}.itineraries-hero h1{font-family:"League Spartan",sans-serif;font-size:clamp(64px,8vw,124px);font-weight:800;letter-spacing:-.045em;line-height:.95;margin:12px 0 22px}.itineraries-hero p:last-child{font-size:20px;font-weight:600;max-width:650px}.tour-grid{display:grid;gap:18px;grid-template-columns:repeat(4,minmax(0,1fr));margin:50px auto 0;max-width:1500px}.tour-card{background:#fffdf7;border:1px solid rgba(200,164,93,.55);box-shadow:0 15px 38px rgba(12,46,39,.09);display:flex;flex-direction:column;min-width:0;overflow:hidden;transition:.3s}.tour-card:hover{box-shadow:0 22px 48px rgba(12,46,39,.16);transform:translateY(-6px)}.tour-image{background-position:center;background-size:cover;min-height:255px;position:relative}.tour-duration{background:rgba(12,46,39,.9);border:1px solid rgba(255,255,255,.6);bottom:15px;color:#fff;font-family:"League Spartan",sans-serif;font-size:11px;font-weight:700;letter-spacing:.12em;padding:9px 13px 7px;position:absolute;right:15px}.tour-card-body{display:flex;flex:1;flex-direction:column;padding:38px 23px 24px;position:relative}.tour-card-body .mark-icon{left:22px;position:absolute;top:-30px}.tour-card-body h3{font-size:clamp(23px,2vw,31px);font-weight:800;margin:6px 0 24px}.tour-button{align-items:center;background:var(--forest);color:#fff;display:flex;font-family:"League Spartan",sans-serif;font-size:10px;font-weight:700;gap:14px;justify-content:space-between;letter-spacing:.12em;margin-top:auto;padding:14px 16px 12px}.center-action{margin-top:48px;text-align:center}@media(max-width:1180px){.tour-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.tour-grid{grid-template-columns:1fr}.tour-image{min-height:285px}.itineraries-hero{min-height:560px;padding:0 24px 70px}}

:root {
  --forest: #173f36;
  --forest-dark: #0c2e27;
  --green: #225430;
  --green-light: #2f6b42;
  --cream: #fffefa;
  --sand: #f1ebdd;
  --gold: #c8a45d;
  --ink: #13231e;
  --muted: #64716b;
  --line: rgba(19, 35, 30, 0.17);
  --white-line: rgba(255, 255, 255, 0.2);
}

/* v2.7.6 — standard full-width heroes using the final wide photographs. */
.itineraries-hero {
  background-image: linear-gradient(90deg, rgba(11,39,31,.90) 0%, rgba(11,39,31,.48) 48%, rgba(11,39,31,.12) 100%), url("images/itineraries-hero-v3.jpeg") !important;
  background-position: center, center 58% !important;
  background-repeat: no-repeat !important;
  background-size: cover, cover !important;
}

.madagascar-editorial-hero {
  background-image: linear-gradient(90deg, rgba(11,39,31,.90) 0%, rgba(11,39,31,.50) 48%, rgba(11,39,31,.12) 100%), url("images/madagascar-hero-v3.jpeg") !important;
  background-position: center, center 62% !important;
  background-repeat: no-repeat !important;
  background-size: cover, cover !important;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: "Roboto Condensed", sans-serif;
  font-size: 17px;
  line-height: 1.65;
  overflow-x: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

h1, h2, h3, p {
  margin-top: 0;
}

h1, h2, h3,
.site-header,
.button,
.eyebrow,
.text-link,
.stat-strip,
.footer-bottom {
  font-family: "League Spartan", sans-serif;
}

h1, h2, h3 {
  line-height: 0.96;
}

.site-header {
  align-items: center;
  background: rgba(12, 46, 39, 0.94);
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  color: white;
  display: grid;
  grid-template-columns: 220px 1fr 170px;
  height: 92px;
  left: 0;
  padding: 0 4.5vw;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 20;
}

.brand {
  display: grid;
  font-size: 25px;
  font-weight: 700;
  letter-spacing: 0.13em;
  line-height: 1;
  padding-left: 38px;
  position: relative;
}

.brand small {
  color: var(--gold);
  font-size: 7px;
  letter-spacing: 0.22em;
  margin-top: 7px;
}

.brand-palms {
  color: var(--gold);
  font-size: 25px;
  left: 0;
  letter-spacing: -0.25em;
  position: absolute;
  top: 1px;
  transform: rotate(4deg);
}

.site-header nav {
  display: flex;
  gap: clamp(10px, 1.25vw, 22px);
  justify-content: center;
}

.site-header nav a {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  position: relative;
}

.site-header nav a::after {
  background: var(--gold);
  bottom: -12px;
  content: "";
  height: 2px;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s ease;
  width: 100%;
}

.site-header nav a:hover::after,
.site-header nav a:focus-visible::after {
  transform: scaleX(1);
}

.header-cta {
  align-items: center;
  border: 1px solid rgba(255, 255, 255, 0.55);
  display: flex;
  font-size: 11px;
  font-weight: 600;
  gap: 12px;
  justify-content: center;
  letter-spacing: 0.12em;
  padding: 13px 16px;
  transition: 0.25s ease;
}

.header-cta:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--forest-dark);
}

.miremby-menu-toggle {
  align-items: center;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.55);
  cursor: pointer;
  display: none;
  flex-direction: column;
  gap: 5px;
  height: 44px;
  justify-content: center;
  padding: 0;
  width: 44px;
}

.miremby-menu-toggle span {
  background: #fff;
  display: block;
  height: 2px;
  transition: transform .2s ease, opacity .2s ease;
  width: 20px;
}

.site-header.menu-open .miremby-menu-toggle span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.site-header.menu-open .miremby-menu-toggle span:nth-child(2) {
  opacity: 0;
}

.site-header.menu-open .miremby-menu-toggle span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.arrow-icon {
  fill: none;
  height: 12px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.5;
  width: 28px;
}

.hero {
  background-position: var(--hero-position, center);
  background-size: cover;
  color: white;
  min-height: 760px;
  position: relative;
}

.hero-home {
  min-height: 860px;
}

.hero::after {
  border: 1px solid rgba(255,255,255,.18);
  bottom: 34px;
  content: "";
  left: 34px;
  pointer-events: none;
  position: absolute;
  right: 34px;
  top: 126px;
}

.hero-inner {
  margin-left: max(7vw, 64px);
  max-width: 760px;
  padding-top: 238px;
  position: relative;
  z-index: 2;
}

.hero h1 {
  font-size: clamp(58px, 7vw, 108px);
  font-weight: 700;
  letter-spacing: -0.045em;
  margin: 20px 0 28px;
  text-wrap: balance;
}

.page-hero h1 {
  font-size: clamp(66px, 7.6vw, 118px);
  font-weight: 800;
}

.hero-copy {
  font-size: 19px;
  font-weight: 800;
  line-height: 1.55;
  margin-bottom: 34px;
  max-width: 560px;
}

.eyebrow {
  color: var(--green);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  margin-bottom: 18px;
  text-transform: uppercase;
}

.eyebrow.light {
  color: #e2c986;
}

.button {
  align-items: center;
  display: inline-flex;
  font-size: 11px;
  font-weight: 700;
  gap: 18px;
  justify-content: center;
  letter-spacing: 0.13em;
  min-width: 224px;
  padding: 17px 22px 15px;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.button:hover {
  transform: translateY(-2px);
}

.button-gold {
  background: var(--gold);
  color: var(--forest-dark);
}

.button-gold:hover {
  background: #e0c27f;
}

.hero-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}

.hero-call-link {
  border-bottom: 1px solid var(--gold);
  color: white;
  font-family: "League Spartan", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.13em;
  padding: 8px 0 6px;
  transition: color 0.25s ease;
}

.hero-call-link:hover {
  color: #e2c986;
}

.button-green {
  background: var(--forest);
  color: white;
}

.button-green:hover {
  background: var(--green-light);
}

.scroll-note {
  align-items: center;
  bottom: 58px;
  display: flex;
  font-family: "League Spartan", sans-serif;
  font-size: 9px;
  gap: 14px;
  letter-spacing: 0.18em;
  position: absolute;
  right: 6vw;
  z-index: 2;
}

.scroll-note span {
  background: var(--gold);
  height: 1px;
  width: 60px;
}

.section,
.intro-statement {
  padding: 116px max(6vw, 48px);
}

.cream {
  background: var(--cream);
}

.sand {
  background: var(--sand);
}

.forest {
  background: var(--forest);
  color: white;
}

.intro-statement {
  background: var(--cream);
  border: 1px solid rgba(200,164,93,.58);
  box-shadow: 0 18px 50px rgba(12,46,39,.08);
  display: grid;
  gap: 30px 7vw;
  grid-template-columns: minmax(250px, .75fr) minmax(420px, 1.4fr) minmax(260px, .9fr);
  margin: 76px max(6vw,48px);
  padding: 72px max(4vw,48px);
}

.intro-statement h2,
.section-heading h2,
.split-copy h2,
.partner-banner h2,
.footer h2 {
  font-size: clamp(43px, 4.8vw, 75px);
  font-weight: 700;
  letter-spacing: -0.035em;
  margin-bottom: 30px;
}

.intro-statement > p:last-child {
  color: var(--muted);
  font-weight: 700;
  line-height: 1.75;
  padding-top: 4px;
}

.section-heading {
  margin-bottom: 58px;
  max-width: 790px;
}

.section-heading.centered {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.section-heading > p:last-child {
  color: var(--muted);
  max-width: 620px;
}

.forest .section-heading > p:last-child {
  color: rgba(255,255,255,.68);
}

.centered > p:last-child {
  margin-left: auto;
  margin-right: auto;
}

.split-feature {
  background: var(--cream);
  border: 1px solid rgba(200,164,93,.58);
  box-shadow: 0 18px 50px rgba(12,46,39,.08);
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  margin: 32px max(6vw,48px) 96px;
  min-height: 730px;
  overflow: hidden;
}

.split-feature.reverse {
  grid-template-columns: .92fr 1.08fr;
}

.split-feature.reverse .split-image {
  order: 2;
}

.split-image {
  min-height: 680px;
  overflow: hidden;
  position: relative;
}

.split-image img {
  transition: transform 0.8s ease;
}

.split-feature:hover .split-image img {
  transform: scale(1.025);
}

.image-quote {
  background: rgba(23,63,54,.92);
  bottom: 0;
  color: white;
  font-family: "League Spartan", sans-serif;
  font-size: 15px;
  font-weight: 600;
  left: 0;
  letter-spacing: .1em;
  max-width: 390px;
  padding: 28px 34px 24px;
  position: absolute;
}

.split-copy {
  align-self: center;
  padding: 100px max(7vw, 70px);
}

.prose {
  color: var(--muted);
  font-weight: 700;
  max-width: 570px;
}

.prose p {
  margin-bottom: 20px;
}

.values-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.values-grid.four {
  grid-template-columns: repeat(4, 1fr);
}

.value-card {
  background: rgba(255,255,255,.035);
  border: 1px solid var(--white-line);
  min-height: 310px;
  margin: 8px;
  padding: 38px;
  transition: background .25s ease, transform .25s ease, border-color .25s ease;
}

.value-card:hover {
  background: rgba(255,255,255,.075);
  border-color: rgba(200,164,93,.7);
  transform: translateY(-5px);
}

.value-card:nth-last-child(-n+3) {
  border-bottom: 1px solid var(--white-line);
}

.values-grid.four .value-card {
  border-bottom: 1px solid var(--white-line);
}

.value-card:last-child,
.values-grid.four .value-card:last-child {
  border-right: 1px solid var(--white-line);
}

.value-card-top {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
  margin-bottom: 54px;
}

.value-card-top > span:last-child {
  color: rgba(255,255,255,.4);
  font-family: "League Spartan", sans-serif;
  font-size: 12px;
  letter-spacing: .1em;
}

.mark-icon {
  align-items: center;
  border: 1px solid currentColor;
  color: var(--gold);
  display: inline-flex;
  height: 50px;
  justify-content: center;
  transform: rotate(-3deg);
  width: 50px;
}

.mark-icon svg {
  height: 29px;
  transform: rotate(3deg);
  width: 29px;
}

.value-card h3 {
  font-size: 20px;
  letter-spacing: .04em;
  margin-bottom: 18px;
}

.value-card p {
  color: rgba(255,255,255,.65);
  font-size: 15px;
  line-height: 1.6;
}

.founders-grid {
  display: grid;
  gap: 28px;
  grid-template-columns: repeat(2, 1fr);
}

.founder-card {
  background: white;
  border: 1px solid rgba(200,164,93,.5);
  box-shadow: 0 18px 45px rgba(12,46,39,.08);
  display: grid;
  grid-template-columns: .92fr 1.08fr;
  min-height: 550px;
}

.founder-image {
  min-height: 470px;
  position: relative;
}

.founder-image span {
  background: var(--forest);
  bottom: 0;
  color: white;
  font-family: "League Spartan", sans-serif;
  font-size: 9px;
  font-weight: 600;
  left: 0;
  letter-spacing: .13em;
  padding: 14px 18px;
  position: absolute;
  right: 0;
  text-align: center;
}

.founder-copy {
  align-self: center;
  padding: 44px;
}

.founder-copy h3 {
  font-size: 28px;
  margin-bottom: 24px;
}

.founder-copy > p:not(.eyebrow) {
  color: var(--muted);
  font-size: 15px;
  font-weight: 600;
}

.team-grid {
  display: grid;
  gap: 22px;
  grid-template-columns: repeat(4, 1fr);
  margin-bottom: 55px;
}

.team-card {
  background: var(--cream);
  border: 1px solid rgba(200,164,93,.5);
  box-shadow: 0 14px 35px rgba(12,46,39,.07);
  min-width: 0;
}

.team-image {
  aspect-ratio: 1 / .92;
  overflow: hidden;
}

.team-image img {
  transition: transform .5s ease;
}

.team-card:hover .team-image img {
  transform: scale(1.04);
}

.team-copy {
  min-height: 248px;
  padding: 28px;
  position: relative;
}

.team-copy .mark-icon {
  height: 38px;
  position: absolute;
  right: 22px;
  top: -19px;
  width: 38px;
}

.team-copy .mark-icon svg {
  height: 21px;
  width: 21px;
}

.team-copy .eyebrow {
  font-size: 8px;
  margin-bottom: 14px;
}

.team-copy h3 {
  font-size: 28px;
  margin-bottom: 18px;
}

.team-copy > p:last-child {
  color: var(--muted);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.55;
}

.stat-strip {
  background: var(--sand);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  padding: 0 max(6vw, 48px);
}

.stat-strip div {
  border-left: 1px solid var(--line);
  display: grid;
  padding: 46px 32px;
}

.stat-strip div:last-child {
  border-right: 1px solid var(--line);
}

.stat-strip strong {
  color: var(--forest);
  font-size: 40px;
  line-height: 1;
}

.stat-strip span {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .13em;
  margin-top: 10px;
}

.inline-link {
  margin-top: 20px;
}

.services-list {
  background: var(--sand);
  display: grid;
  gap: 30px;
  padding: 96px max(6vw, 48px);
}

.service-row {
  background: var(--cream);
  border: 1px solid rgba(200,164,93,.55);
  box-shadow: 0 18px 50px rgba(12,46,39,.08);
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  min-height: 560px;
  overflow: hidden;
}

.service-row.reverse {
  grid-template-columns: .95fr 1.05fr;
}

.service-row.reverse .service-image {
  order: 2;
}

.service-image {
  min-height: 540px;
  overflow: hidden;
  position: relative;
}

.service-image img {
  transition: transform .7s ease;
}

.service-row:hover .service-image img {
  transform: scale(1.025);
}

.service-image > span {
  align-items: center;
  background: var(--gold);
  color: var(--forest-dark);
  display: flex;
  font-family: "League Spartan", sans-serif;
  font-size: 23px;
  font-weight: 700;
  height: 76px;
  justify-content: center;
  position: absolute;
  right: 0;
  top: 0;
  width: 76px;
}

.service-copy {
  align-self: center;
  padding: 62px max(5vw, 58px);
}

.service-copy .mark-icon {
  margin-bottom: 32px;
}

/* Keep these two pages aligned with the strong title and illustrated-icon
   treatment used throughout the approved Miremby tour pages. */
.services-page .page-hero h1,
.foundation-page .page-hero h1,
.projects-page .page-hero h1,
.services-page h2,
.foundation-page h2,
.projects-page h2,
.services-page h3,
.foundation-page h3,
.projects-page h3 {
  font-family: "League Spartan", sans-serif;
  font-weight: 800;
}

.services-page .mark-icon,
.foundation-page .mark-icon {
  background: var(--cream);
  border: 1px solid var(--gold);
  box-shadow: 5px 5px 0 rgba(200, 164, 93, .18);
  color: var(--forest);
  height: 58px;
  transform: rotate(-3deg);
  width: 58px;
}

.services-page .mark-icon svg,
.foundation-page .mark-icon svg {
  color: var(--forest);
  height: 34px;
  stroke-width: 1.9;
  width: 34px;
}

.foundation-page .value-card .mark-icon {
  background: transparent;
  color: var(--gold);
}

.foundation-page .value-card .mark-icon svg {
  color: var(--gold);
}

/* A quieter, more condensed Foundation page: the wording and sequence stay
   intact while imagery and vertical spacing no longer dominate the page. */
.foundation-page .intro-statement {
  margin-bottom: 54px;
  margin-top: 54px;
  padding-bottom: 52px;
  padding-top: 52px;
}

.foundation-page .split-feature,
.foundation-page .split-feature.reverse {
  margin-bottom: 62px;
  min-height: 540px;
}

.foundation-page .split-image {
  min-height: 540px;
}

.foundation-page .split-copy {
  padding-bottom: 58px;
  padding-top: 58px;
}

.foundation-page .section {
  padding-bottom: 82px;
  padding-top: 82px;
}

.foundation-page .section-heading {
  margin-bottom: 42px;
}

.projects-page .services-list {
  gap: 20px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding-bottom: 64px;
  padding-top: 64px;
}

.projects-page .service-row,
.projects-page .service-row.reverse {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.projects-page .service-row.reverse .service-image {
  order: 0;
}

.projects-page .service-image {
  flex: 0 0 230px;
  min-height: 230px;
}

.projects-page .service-copy {
  align-self: stretch;
  padding: 34px 30px 30px;
}

.projects-page .service-copy .mark-icon {
  margin-bottom: 18px;
}

.projects-page .service-copy h2 {
  font-size: clamp(31px, 2.7vw, 45px);
  margin-bottom: 16px;
}

.projects-page .service-copy > p:not(.eyebrow) {
  margin-bottom: 18px;
}

.projects-page .service-copy ul {
  margin-bottom: 0;
}

@media (max-width: 1120px) {
  .projects-page .services-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .projects-page .services-list {
    grid-template-columns: 1fr;
    padding-left: 22px;
    padding-right: 22px;
  }
}

.service-copy h2 {
  font-size: clamp(42px, 4vw, 66px);
  letter-spacing: -.035em;
  margin-bottom: 28px;
}

.service-copy > p:not(.eyebrow) {
  color: var(--muted);
  font-weight: 600;
  margin-bottom: 28px;
  max-width: 530px;
}

.service-copy ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 0 0 34px;
  padding: 0;
}

.service-copy li {
  border: 1px solid var(--line);
  font-family: "League Spartan", sans-serif;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .12em;
  padding: 9px 12px 7px;
}

.impact-gallery {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 58px;
}

.impact-gallery figure {
  border: 1px solid var(--white-line);
  margin: 0;
  position: relative;
}

.impact-gallery img {
  aspect-ratio: 1.2 / 1;
}

.impact-gallery figcaption {
  background: var(--cream);
  bottom: 0;
  color: var(--forest);
  font-family: "League Spartan", sans-serif;
  font-size: 10px;
  font-weight: 800;
  left: 0;
  letter-spacing: .14em;
  padding: 13px 16px 11px;
  position: absolute;
}

.foundation-closing-image {
  height: min(62vw, 680px);
}

.process-section {
  padding: 110px max(6vw,48px);
}

.process-line {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.process-line > div {
  border-left: 1px solid var(--white-line);
  min-height: 250px;
  padding: 34px;
  position: relative;
}

.process-line > div:last-child {
  border-right: 1px solid var(--white-line);
}

.process-line span {
  color: var(--gold);
  font-family: "League Spartan", sans-serif;
  font-size: 12px;
}

.process-line h3 {
  font-size: 24px;
  margin: 78px 0 15px;
}

.process-line p {
  color: rgba(255,255,255,.65);
  font-size: 14px;
}

.recognised-section .section-heading {
  max-width: 650px;
}

.partner-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.partner-card {
  border: 1px solid var(--white-line);
  border-right: 0;
  display: flex;
  flex-direction: column;
  min-height: 430px;
  padding: 34px;
  position: relative;
  transition: background .25s ease, transform .25s ease;
}

.partner-card:last-child {
  border-right: 1px solid var(--white-line);
}

.partner-card:hover {
  background: rgba(255,255,255,.07);
  transform: translateY(-5px);
}

.partner-card .mark-icon {
  margin: 22px 0 46px;
}

.partner-index {
  color: rgba(255,255,255,.38);
  font-family: "League Spartan", sans-serif;
  font-size: 10px;
  letter-spacing: .12em;
  position: absolute;
  right: 28px;
  top: 26px;
}

.card-eyebrow {
  color: var(--gold);
  font-family: "League Spartan", sans-serif;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .14em;
  margin-bottom: 13px;
  text-transform: uppercase;
}

.partner-card h3 {
  font-size: 27px;
  margin-bottom: 20px;
}

.partner-card > p:not(.card-eyebrow) {
  color: rgba(255,255,255,.65);
  font-size: 14px;
  line-height: 1.55;
}

.text-link {
  align-items: center;
  display: inline-flex;
  font-size: 9px;
  font-weight: 700;
  gap: 12px;
  letter-spacing: .13em;
  margin-top: auto;
}

.field-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, 1fr);
  margin: 0 auto;
  max-width: 1120px;
}

.field-card {
  align-items: center;
  background: white;
  border: 1px solid var(--line);
  display: flex;
  gap: 27px;
  min-height: 126px;
  padding: 24px 30px;
  transition: border-color .25s ease, transform .25s ease;
}

.field-card:hover {
  border-color: var(--gold);
  transform: translateY(-3px);
}

.field-card .mark-icon {
  flex: 0 0 50px;
}

.field-card p {
  color: var(--green);
  font-family: "League Spartan", sans-serif;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .13em;
  margin-bottom: 9px;
}

.field-card h3 {
  font-size: 19px;
  letter-spacing: .01em;
  margin: 0;
}

.partner-banner {
  background-position: center;
  background-size: cover;
  color: white;
  min-height: 630px;
  padding: 120px max(8vw,70px);
}

.partner-banner > div {
  max-width: 650px;
}

.partner-banner > div > p:not(.eyebrow) {
  color: rgba(255,255,255,.78);
  max-width: 520px;
}

.journey-grid {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(3, 1fr);
}

.journey-card {
  background: white;
  border: 1px solid var(--line);
  min-width: 0;
  transition: transform .25s ease, box-shadow .25s ease;
}

.journey-card:hover {
  box-shadow: 0 22px 45px rgba(17,45,37,.12);
  transform: translateY(-5px);
}

.journey-image {
  aspect-ratio: 1 / 1.16;
  background-position: center;
  background-size: cover;
  overflow: hidden;
  position: relative;
}

.journey-image::after {
  background: linear-gradient(transparent, rgba(12,46,39,.25));
  bottom: 0;
  content: "";
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}

.journey-content {
  min-height: 210px;
  padding: 27px;
}

.journey-content h3 {
  font-weight: 800;
  font-size: 27px;
  margin-bottom: 40px;
}

.journey-content .text-link {
  color: var(--green);
}

.contact-grid { display: grid; gap: 18px; grid-template-columns: repeat(4, minmax(0,1fr)); }
.contact-card { background: var(--cream); border: 1px solid rgba(200,164,93,.55); box-shadow: 0 18px 50px rgba(12,46,39,.08); padding: clamp(24px,2vw,38px); }
.contact-card .mark-icon { margin-bottom: 30px; }
.contact-card h3 { font-size: clamp(21px,1.6vw,30px); font-weight: 800; margin: 22px 0; overflow-wrap: anywhere; }
.contact-card > p:not(.eyebrow) { color: var(--muted); font-weight: 600; max-width: 480px; }
.contact-card .text-link { color: var(--green); display: inline-flex; margin-top: 22px; }
.tour-enquiry-section { display:grid; grid-template-columns:minmax(0,.72fr) minmax(520px,1.28fr); gap:64px; padding:100px max(7vw,60px); scroll-margin-top:90px; }
.enquiry-page-hero { color:#fff; min-height:440px; padding:150px max(7vw,60px) 90px; }
.enquiry-page-hero h1 { font-size:clamp(62px,8vw,118px); font-weight:800; line-height:.82; margin:18px 0 26px; }
.enquiry-page-hero > p:not(.eyebrow) { color:rgba(255,255,255,.78); font-size:20px; line-height:1.55; max-width:650px; }
.tour-enquiry-intro h2 { font-size:clamp(46px,5vw,72px); font-weight:800; line-height:.92; margin:16px 0 24px; }
.tour-enquiry-intro > p:not(.eyebrow) { font-size:18px; line-height:1.65; max-width:500px; }
.enquiry-promise { background:var(--forest); color:white; margin-top:34px; padding:28px; }
.enquiry-promise strong { color:var(--gold); display:block; font-family:"League Spartan",sans-serif; font-size:12px; letter-spacing:.12em; margin-bottom:9px; }
.enquiry-promise p { margin:0; color:white; }
.miremby-enquiry-form { background:white; border-top:5px solid var(--gold); box-shadow:0 18px 55px rgba(21,42,35,.12); padding:clamp(28px,4vw,48px); position:relative; }
.enquiry-form-heading h3 { font-size:clamp(28px,3vw,38px); font-weight:800; margin:8px 0; }
.enquiry-form-heading > p:last-child { color:var(--muted); margin:0 0 30px; }
.enquiry-fields { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.enquiry-fields > label { display:flex; flex-direction:column; font-family:"League Spartan",sans-serif; font-size:12px; font-weight:700; gap:8px; letter-spacing:.08em; }
.enquiry-fields > label > span { color:#788581; font-weight:500; letter-spacing:0; text-transform:none; }
.enquiry-fields .full, .enquiry-choice { grid-column:1/-1; }
.enquiry-fields input, .enquiry-fields select, .enquiry-fields textarea { background:#fbfaf7; border:1px solid #cfc7ba; border-radius:0; color:var(--green); font-family:"Roboto Condensed",sans-serif; font-size:16px; font-weight:400; letter-spacing:0; padding:14px 13px; text-transform:none; width:100%; }
.enquiry-fields input:focus, .enquiry-fields select:focus, .enquiry-fields textarea:focus { border-color:var(--gold); outline:2px solid rgba(200,164,93,.28); }
.enquiry-fields textarea { resize:vertical; }
.field-hint { color:#788581; font-family:"Roboto Condensed",sans-serif; font-size:13px; font-weight:400; letter-spacing:0; }
.enquiry-choice { border:0; display:grid; gap:12px; grid-template-columns:1fr 1fr; margin:0; padding:0; }
.enquiry-choice legend { font-family:"League Spartan",sans-serif; font-size:12px; font-weight:700; grid-column:1/-1; letter-spacing:.08em; margin-bottom:8px; }
.enquiry-choice label { position:relative; }
.enquiry-choice input { opacity:0; pointer-events:none; position:absolute; }
.enquiry-choice label > span { background:#fbfaf7; border:1px solid #cfc7ba; cursor:pointer; display:block; height:100%; padding:17px 16px; }
.enquiry-choice strong { display:block; font-family:"League Spartan",sans-serif; font-size:14px; letter-spacing:.05em; }
.enquiry-choice small { color:#73807b; display:block; font-family:"Roboto Condensed",sans-serif; font-size:13px; font-weight:400; letter-spacing:0; margin-top:5px; }
.enquiry-choice input:checked + span { background:#fffaf0; border:2px solid var(--gold); padding:16px 15px; }
.enquiry-choice input:focus + span { outline:2px solid rgba(200,164,93,.32); }
.enquiry-privacy { color:#68746f; font-size:13px; line-height:1.45; margin:24px 0 20px; }
.enquiry-privacy a { color:var(--green); text-decoration:underline; }
.enquiry-submit { border:0; cursor:pointer; justify-content:center; width:100%; }
.enquiry-response-time { color:#76817d; font-size:13px; margin:13px 0 0; text-align:center; }
.enquiry-notice { border-left:4px solid; margin-bottom:24px; padding:15px 17px; }
.enquiry-notice.success { background:#edf6f0; border-color:#34704e; }
.enquiry-notice.error { background:#fff0ed; border-color:#9a4639; }
.miremby-honeypot { height:0; left:-9999px; overflow:hidden; position:absolute; width:0; }
.enquiry-journey-field.is-hidden { display:none; }
.group-interest-hero { background-image:linear-gradient(90deg,rgba(13,40,32,.9),rgba(13,40,32,.22)),url('images/group-tours-hero.jpeg'); background-position:center 54%; background-size:cover; }
.group-interest-hero .eyebrow { color:var(--gold); }
.group-interest-hero h1 { color:#fff; }
.group-interest-consent { align-items:flex-start; color:var(--muted); display:flex; font-family:"Roboto Condensed",sans-serif; font-size:14px; font-weight:400; gap:11px; letter-spacing:0; line-height:1.45; margin-top:24px; text-transform:none; }
.group-interest-consent input { accent-color:var(--green); flex:0 0 auto; height:17px; margin:2px 0 0; width:17px; }
.contact-prompt { color: white; display: grid; gap: 54px 80px; grid-template-columns: .9fr 1.1fr; padding: 110px max(7vw,60px); }
.contact-prompt h2 { font-size: clamp(48px,5vw,76px); font-weight: 800; }
.contact-prompt ol { display: grid; list-style: none; margin: 0; padding: 0; }
.contact-prompt li { border-top: 1px solid var(--white-line); display: grid; gap: 24px; grid-template-columns: 48px 1fr; padding: 24px 0; }
.contact-prompt li:last-child { border-bottom: 1px solid var(--white-line); }
.contact-prompt li > span { color: var(--gold); font-family: "League Spartan",sans-serif; font-weight: 800; }
.contact-prompt li h3 { font-size: 22px; font-weight: 800; margin-bottom: 5px; }
.contact-prompt li p { color: rgba(255,255,255,.7); margin: 0; }
.contact-prompt .button { justify-self: start; }
.contact-services-link { align-self: center; font-family: "League Spartan",sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-decoration: underline; text-underline-offset: 6px; }

.footer {
  background: var(--forest-dark);
  color: white;
}

.footer-callout {
  padding: 110px max(7vw,60px) 100px;
}

.footer-bottom {
  border-top: 1px solid var(--white-line);
  display: grid;
  font-size: 9px;
  grid-template-columns: 1.4fr 1fr 1fr;
  letter-spacing: .1em;
  margin: 0 max(7vw,60px);
  padding: 38px 0 45px;
}

.footer-bottom > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.footer-bottom strong {
  color: var(--gold);
  font-size: 20px;
  letter-spacing: .12em;
}

.footer-bottom p {
  color: rgba(255,255,255,.55);
  font-family: "Roboto Condensed", sans-serif;
  font-size: 13px;
  letter-spacing: normal;
  margin: 5px 0 0;
}

@media (max-width: 1120px) {
  .site-header {
    grid-template-columns: 210px 1fr 155px;
    padding: 0 3vw;
  }
  .site-header nav { gap: 18px; }
  .site-header nav a { font-size: 10px; }
  .header-cta { min-width: 0; }
  .intro-statement { grid-template-columns: .7fr 1.3fr; }
  .intro-statement > p:last-child { grid-column: 2; }
  .founder-card { grid-template-columns: 1fr; }
  .founder-image { min-height: 430px; }
  .team-grid { grid-template-columns: repeat(2, 1fr); }
  .values-grid.four { grid-template-columns: repeat(2, 1fr); }
  .values-grid.four .value-card:nth-child(2) { border-right: 1px solid var(--white-line); }
  .partner-grid { grid-template-columns: repeat(2, 1fr); }
  .partner-card:nth-child(2) { border-right: 1px solid var(--white-line); }
  .partner-card:nth-child(n+3) { border-top: 0; }
  .journey-grid { grid-template-columns: repeat(3, 1fr); }
  .journey-image { aspect-ratio: 1.2 / 1; }
}

@media (max-width: 820px) {
  .site-header {
    grid-template-columns: 1fr auto;
    height: 78px;
    padding: 0 22px;
  }
  .site-header nav {
    align-items: stretch;
    background: var(--forest-dark);
    border-top: 1px solid rgba(255,255,255,.16);
    display: flex;
    flex-direction: column;
    gap: 0;
    left: 0;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    padding: 0 24px;
    pointer-events: none;
    position: absolute;
    right: 0;
    top: 78px;
    transform: translateY(-8px);
    transition: max-height .28s ease, opacity .2s ease, transform .2s ease, padding .28s ease;
  }
  .site-header nav a {
    border-bottom: 1px solid rgba(255,255,255,.13);
    color: #fff !important;
    display: block;
    font-size: 12px;
    padding: 15px 2px;
  }
  .site-header nav a::after { display: none; }
  .site-header.menu-open nav {
    max-height: 620px;
    opacity: 1;
    padding-bottom: 16px;
    padding-top: 8px;
    pointer-events: auto;
    transform: translateY(0);
  }
  .miremby-menu-toggle { display: flex; }
  .brand { font-size: 21px; }
  .header-cta { display: none; }
  .header-cta .arrow-icon { display: none; }
  .hero, .hero-home { min-height: 720px; }
  .hero::after { left: 15px; right: 15px; top: 100px; }
  .hero-inner { margin-left: 32px; padding-top: 210px; padding-right: 30px; }
  .hero h1, .page-hero h1 { font-size: clamp(51px, 12vw, 76px); }
  .scroll-note { display: none; }
  .section, .intro-statement { padding: 82px 28px; }
  .intro-statement { display: block; margin: 42px 28px 64px; }
  .intro-statement h2 { margin: 20px 0 30px; }
  .split-feature, .split-feature.reverse,
  .service-row, .service-row.reverse {
    grid-template-columns: 1fr;
  }
  .split-feature,
  .split-feature.reverse { margin: 24px 28px 70px; }
  .split-feature.reverse .split-image,
  .service-row.reverse .service-image { order: 0; }
  .split-image, .service-image { min-height: 480px; }
  .services-list { padding: 70px 28px; }
  .split-copy, .service-copy { padding: 75px 32px; }
  .values-grid { grid-template-columns: repeat(2, 1fr); }
  .impact-gallery { grid-template-columns: 1fr; }
  .value-card:nth-child(2n) { border-right: 1px solid var(--white-line); }
  .founders-grid { grid-template-columns: 1fr; }
  .stat-strip { grid-template-columns: repeat(2, 1fr); padding: 0 26px; }
  .stat-strip div:nth-child(2) { border-right: 1px solid var(--line); }
  .process-line { grid-template-columns: repeat(2, 1fr); }
  .process-line > div:nth-child(2) { border-right: 1px solid var(--white-line); }
  .field-grid { grid-template-columns: 1fr; }
  .footer-bottom { grid-template-columns: 1fr; gap: 25px; }
  .journey-grid { grid-template-columns: repeat(2, 1fr); }
  .contact-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .contact-card:last-child { grid-column:auto; }
  .tour-enquiry-section { grid-template-columns:1fr; }
  .contact-prompt { grid-template-columns: 1fr; }
}

@media (max-width: 540px) {
  body { font-size: 16px; }
  .header-cta { display: none; }
  .site-header { grid-template-columns: 1fr auto; }
  .hero, .hero-home { min-height: 690px; }
  .hero-inner { margin-left: 25px; padding-top: 185px; }
  .hero h1, .page-hero h1 { font-size: clamp(45px, 14vw, 65px); }
  .hero-copy { font-size: 16px; }
  .intro-statement h2,
  .section-heading h2,
  .split-copy h2,
  .partner-banner h2,
  .footer h2 { font-size: 42px; }
  .values-grid,
  .values-grid.four,
  .team-grid,
  .partner-grid,
  .journey-grid { grid-template-columns: 1fr; }
  .value-card, .values-grid.four .value-card { border-right: 1px solid var(--white-line); }
  .value-card + .value-card { border-top: 0; }
  .founder-image { min-height: 390px; }
  .founder-copy { padding: 32px; }
  .team-grid { gap: 16px; }
  .services-list { gap: 20px; padding: 52px 18px; }
  .intro-statement { margin: 32px 18px 52px; padding: 60px 24px; }
  .split-feature,
  .split-feature.reverse { margin: 18px 18px 52px; }
  .team-image { aspect-ratio: 1.15 / 1; }
  .partner-card { border-right: 1px solid var(--white-line); }
  .partner-card + .partner-card { border-top: 0; }
  .field-card { align-items: flex-start; padding: 22px; }
  .stat-strip div { padding: 32px 20px; }
  .stat-strip strong { font-size: 31px; }
  .process-line { grid-template-columns: 1fr; }
  .process-line > div { border-right: 1px solid var(--white-line); }
  .partner-banner { padding: 85px 30px; }
  .journey-image { aspect-ratio: 1.12 / 1; }
  .contact-grid { grid-template-columns: 1fr; }
  .contact-card:last-child { grid-column:auto; }
  .tour-enquiry-section { gap:38px; padding:80px 28px; }
  .enquiry-page-hero { min-height:360px; padding:125px 28px 70px; }
  .enquiry-fields, .enquiry-choice { grid-template-columns:1fr; }
  .enquiry-fields .full, .enquiry-choice { grid-column:auto; }
  .contact-prompt { gap: 38px; padding: 80px 28px; }
  .footer-callout { padding: 85px 28px; }
  .footer-bottom { margin: 0 28px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

/* Exact illustrated itinerary badges from the approved tour-card design. */
.tour-card-body { padding: 24px 23px; }
.tour-card-body h3 { margin-bottom: 18px; }
.tour-highlights {
  border-bottom: 1px solid rgba(200, 164, 93, .35);
  border-top: 1px solid rgba(200, 164, 93, .35);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0 -4px 22px;
  padding: 13px 0 11px;
}
.tour-highlight {
  align-items: center;
  color: var(--forest);
  display: flex;
  flex-direction: column;
  font-family: "League Spartan", sans-serif;
  font-size: 8px;
  font-weight: 700;
  gap: 5px;
  letter-spacing: .04em;
  min-width: 0;
  text-align: center;
  text-transform: uppercase;
}
.tour-highlight img {
  height: 42px;
  object-fit: contain;
  width: 48px;
}
@media (max-width: 700px) {
  .tour-highlight img { height: 50px; width: 56px; }
}


/* WordPress compatibility */
.miremby-wordpress-page,
.miremby-wordpress-page * {
  box-sizing: border-box;
}

/*
 * Break the shortcode out of a theme's centred/narrow content column. Keeping
 * this on the Miremby wrapper makes every hero, section, header and footer use
 * the same viewport-wide alignment without changing the rest of WordPress.
 */
.miremby-wordpress-page {
  background: var(--cream);
  color: var(--ink);
  display: block !important;
  font-family: "Roboto Condensed", sans-serif;
  left: 50%;
  margin: 0 !important;
  max-width: none !important;
  overflow: hidden;
  padding: 0 !important;
  position: relative;
  transform: translateX(-50%);
  width: 100vw !important;
}

/* A page file can carry an inner safety wrapper; it must not break out twice. */
.miremby-wordpress-page .miremby-wordpress-page {
  left: auto;
  transform: none;
  width: 100% !important;
}

/*
 * Tour pages receive only the shared navigation header. The wrapper must stay
 * zero-height so it overlays the existing tour hero, but its contents must be
 * allowed to remain visible.
 */
.miremby-tour-header-wrap {
  background: transparent !important;
  height: 0 !important;
  min-height: 0 !important;
  overflow: visible !important;
  z-index: 9999;
}

.miremby-tour-header-wrap .site-header {
  left: 0 !important;
  position: absolute !important;
  top: 0 !important;
}

.miremby-wordpress-page > div,
.miremby-wordpress-page main,
.miremby-wordpress-page .site-header,
.miremby-wordpress-page .footer {
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: none !important;
  width: 100% !important;
}

.miremby-wordpress-page .site-header {
  display: grid !important;
  visibility: visible !important;
}

.miremby-wordpress-page .footer {
  display: block !important;
  visibility: visible !important;
}

.miremby-wordpress-page h1,
.miremby-wordpress-page h2,
.miremby-wordpress-page h3,
.miremby-wordpress-page p,
.miremby-wordpress-page ul {
  text-align: inherit;
}

.miremby-wordpress-page + p:empty { display: none; }
.entry-content:has(.miremby-wordpress-page),
.wp-block-post-content:has(.miremby-wordpress-page),
.site-main:has(.miremby-wordpress-page),
.content-area:has(.miremby-wordpress-page) {
  margin: 0 !important;
  max-width: none !important;
  padding: 0 !important;
  width: 100% !important;
}

.wp-block-shortcode:has(.miremby-wordpress-page) {
  margin: 0 !important;
  max-width: none !important;
  padding: 0 !important;
}

@media (max-width: 820px) {
  .miremby-wordpress-page .site-header {
    grid-template-columns: 1fr auto !important;
  }
}

@media (max-width: 540px) {
  .miremby-wordpress-page .site-header {
    grid-template-columns: 1fr auto !important;
  }
}

/*
 * WordPress themes often assign black directly to headings. These explicit
 * rules preserve the approved white type on photographic heroes and every
 * forest-green section, while leaving headings on cream/sand sections dark.
 */
.miremby-wordpress-page .hero h1,
.miremby-wordpress-page .hero h2,
.miremby-wordpress-page .hero h3,
.miremby-wordpress-page .journey-hero h1,
.miremby-wordpress-page .journey-hero h2,
.miremby-wordpress-page .journey-hero h3,
.miremby-wordpress-page .itineraries-hero h1,
.miremby-wordpress-page .itineraries-hero h2,
.miremby-wordpress-page .itineraries-hero h3,
.miremby-wordpress-page .forest h1,
.miremby-wordpress-page .forest h2,
.miremby-wordpress-page .forest h3,
.miremby-wordpress-page .footer h1,
.miremby-wordpress-page .footer h2,
.miremby-wordpress-page .footer h3 {
  color: #fff !important;
}

.miremby-tour-page .journey-hero {
  padding-top: 92px;
}

.miremby-tour-page .miremby-experience {
  margin: 0 !important;
  max-width: none !important;
  width: 100% !important;
}

.miremby-wordpress-page .hero .hero-copy,
.miremby-wordpress-page .hero .scroll-note,
.miremby-wordpress-page .forest .section-heading > p:not(.eyebrow),
.miremby-wordpress-page .footer {
  color: #fff !important;
}
/* Keep WordPress themes from adding a duplicate page/tour-name banner. */
body.miremby-managed-page .entry-header,
body.miremby-managed-page .page-header,
body.miremby-managed-page .page-title,
body.miremby-managed-page .entry-title,
body.miremby-managed-page .wp-block-post-title {
  display: none !important;
}

/* Guide cards use portraits and text only. */
.miremby-wordpress-page .team-card .team-copy > .mark-icon {
  display: none !important;
}


/* Itinerary impact summaries */
.miremby-tour-page .journey-impact{max-width:1200px;margin:0 auto 34px;padding:74px 40px 30px;color:#173f36}
.miremby-tour-page .impact-heading{max-width:760px;margin:0 auto 36px;text-align:center}
.miremby-tour-page .impact-heading .eyebrow{display:block;color:#b28b43;margin-bottom:12px}
.miremby-tour-page .impact-heading h2{margin:0 0 16px;font-family:"League Spartan",sans-serif;font-size:clamp(42px,5vw,70px);font-weight:800;line-height:.94;text-transform:uppercase;letter-spacing:-.035em}
.miremby-tour-page .impact-heading p{margin:0;font-family:"Roboto Condensed",sans-serif;font-size:18px;line-height:1.55;color:#52645d}
.miremby-tour-page .impact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.miremby-tour-page .impact-card{display:grid;grid-template-columns:94px 1fr;align-items:center;min-height:190px;padding:28px 30px;background:#f7f5ef;border:1px solid rgba(23,63,54,.12);border-radius:24px;box-shadow:0 14px 36px rgba(19,55,47,.06)}
.miremby-tour-page .impact-icon{width:66px;height:82px;display:block;background:#b28b43;border-right:1px solid rgba(178,139,67,.42);padding-right:24px;box-sizing:content-box;-webkit-mask-image:var(--impact-icon);mask-image:var(--impact-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:left center;mask-position:left center;-webkit-mask-size:62px auto;mask-size:62px auto}
.miremby-tour-page .impact-card-copy{min-width:0;padding-left:26px;border-left:1px solid rgba(178,139,67,.45)}
.miremby-tour-page .impact-value{display:block;margin-bottom:8px;color:#b28b43;font-family:"League Spartan",sans-serif;font-size:13px;font-weight:700;letter-spacing:.16em}
.miremby-tour-page .impact-card h3{margin:0 0 8px;font-family:"League Spartan",sans-serif;font-size:24px;line-height:1;text-transform:uppercase;letter-spacing:-.02em}
.miremby-tour-page .impact-card p{margin:0;font-family:"Roboto Condensed",sans-serif;font-size:16px;line-height:1.4;color:#5d6d66}
.miremby-tour-page .impact-note{max-width:850px;margin:26px auto 0;text-align:center;font-family:"Roboto Condensed",sans-serif;font-size:14px;line-height:1.45;color:#718079}
@media(max-width:760px){
  .miremby-tour-page .journey-impact{padding:58px 16px 20px;margin-bottom:18px}
  .miremby-tour-page .impact-heading{margin-bottom:28px;padding:0 8px}
  .miremby-tour-page .impact-heading h2{font-size:42px}
  .miremby-tour-page .impact-heading p{font-size:17px}
  .miremby-tour-page .impact-grid{grid-template-columns:1fr;gap:12px}
  .miremby-tour-page .impact-card{grid-template-columns:76px 1fr;min-height:160px;padding:22px 20px;border-radius:20px}
  .miremby-tour-page .impact-icon{width:50px;height:70px;padding-right:16px;-webkit-mask-size:48px auto;mask-size:48px auto}
  .miremby-tour-page .impact-card-copy{padding-left:20px}
  .miremby-tour-page .impact-card h3{font-size:21px}
  .miremby-tour-page .impact-card p{font-size:15px}
}


/* Impact figures lead the cards */
.miremby-tour-page .impact-card{grid-template-columns:110px 1fr}
.miremby-tour-page .impact-card>.impact-value{display:flex;align-items:center;justify-content:center;align-self:stretch;margin:0;padding-right:24px;color:#b28b43;font-family:"League Spartan",sans-serif;font-size:clamp(36px,4vw,54px);font-weight:700;line-height:1;letter-spacing:-.045em;text-align:center}
.miremby-tour-page .impact-card-copy{padding-left:30px}
@media(max-width:760px){
  .miremby-tour-page .impact-card{grid-template-columns:88px 1fr}
  .miremby-tour-page .impact-card>.impact-value{padding-right:16px;font-size:34px}
  .miremby-tour-page .impact-card-copy{padding-left:20px}
}

/* Consistent premium itinerary icons and white footer typography */
.miremby-tour-page .community-asset-icon{
  width:34px;height:34px;flex:0 0 34px;display:inline-block;background:var(--green,#2f6347);
  -webkit-mask-image:var(--community-icon);mask-image:var(--community-icon);
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain
}
.miremby-tour-page .moment-heading:has(.community-asset-icon){align-items:center}
.miremby-tour-page .footer,
.miremby-tour-page .footer *,
.miremby-tour-page .footer a,
.miremby-tour-page .footer p,
.miremby-tour-page .footer span,
.miremby-tour-page .footer strong,
.miremby-tour-page .footer small{color:#fff !important}
.miremby-tour-page .footer svg{color:#fff !important;fill:currentColor;stroke:currentColor}
@media(max-width:600px){.miremby-tour-page .community-asset-icon{width:30px;height:30px;flex-basis:30px}}

/* Final site-wide footer colour protection */
body .miremby-wordpress-page .footer,
body .miremby-wordpress-page .footer *,
body .miremby-wordpress-page .footer a,
body .miremby-wordpress-page .footer strong,
body .miremby-wordpress-page .footer span,
body .miremby-wordpress-page .footer p{color:#fff !important}

/* Closing itinerary statements always remain white */
body .miremby-wordpress-page.miremby-tour-page .journey-cta h2,
body .miremby-wordpress-page.miremby-tour-page .journey-cta > h2{color:#fff !important}

@media(max-width:760px){
  .foundation-page .intro-statement{margin:32px 18px 42px;padding:50px 24px}
  .foundation-page .split-feature,
  .foundation-page .split-feature.reverse{margin-bottom:44px;min-height:0}
  .foundation-page .split-image{min-height:360px}
  .foundation-page .section{padding-bottom:62px;padding-top:62px}
}

/* v2.7.1 image-led refinements */
.projects-page .services-list{
  gap:28px;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-left:auto;
  margin-right:auto;
  max-width:1320px;
}
.projects-page .service-image{
  aspect-ratio:4/3;
  background:var(--sand);
  flex-basis:auto;
  min-height:0;
}
.projects-page .service-image img{
  object-fit:contain;
}
.projects-page .service-copy{
  padding:38px 36px 34px;
}

.services-closing-image{
  background:var(--cream);
  padding:0 max(6vw,48px) 90px;
}
.services-closing-image img{
  aspect-ratio:2.35/1;
  border:1px solid rgba(200,164,93,.58);
  object-fit:cover;
  object-position:center 58%;
}

.foundation-origin-section,
.foundation-future-section{
  display:grid;
  gap:clamp(44px,6vw,90px);
  grid-template-columns:1.1fr .9fr;
  margin:32px max(6vw,48px) 76px;
  padding:54px;
}
.foundation-mini-gallery{
  display:grid;
  gap:18px;
  grid-template-columns:1fr 1fr;
}
.foundation-mini-gallery figure{
  background:var(--sand);
  border:1px solid rgba(200,164,93,.58);
  margin:0;
  overflow:hidden;
}
.foundation-mini-gallery img{
  aspect-ratio:3/4;
  object-fit:cover;
}
.foundation-origin-copy,
.foundation-future-copy{
  align-self:center;
}
.foundation-origin-copy h2,
.foundation-future-copy h2{
  font-size:clamp(42px,4vw,66px);
  margin:18px 0 28px;
}
.foundation-origin-copy .prose,
.foundation-future-copy .prose{
  max-width:520px;
}

@media(max-width:1120px){
  .projects-page .services-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:850px){
  .itineraries-hero,
  .madagascar-page .page-hero{background-position:center,center!important;background-size:cover,cover!important}
  .projects-page .services-list{grid-template-columns:1fr}
  .services-closing-image{padding:0 22px 62px}
  .services-closing-image img{aspect-ratio:1.45/1}
  .foundation-origin-section,
  .foundation-future-section{grid-template-columns:1fr;margin:20px 18px 52px;padding:24px}
  .foundation-mini-gallery{gap:10px}
}
.projects-editorial-list {
  display: grid;
  gap: 32px;
  padding: 72px max(6vw, 48px) 90px;
  background: var(--cream);
}

.project-pair {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: clamp(40px, 6vw, 86px);
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 54px;
  background: #fffdf7;
  border: 1px solid rgba(200, 164, 93, .58);
  box-shadow: 0 18px 55px rgba(25, 38, 30, .07);
}

/* Foundation-style editorial rows for the Madagascar page. */
.madagascar-editorial-section {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: clamp(44px, 6vw, 90px);
  margin: 32px max(6vw, 48px) 76px;
  padding: 54px;
  background: #fffdf7;
  border: 1px solid rgba(200, 164, 93, .58);
}

/* Keep the supplied hero photographs visible in full on wide screens. */
.madagascar-page .page-hero {
  background-color: var(--forest-dark);
  background-position: center, center !important;
  background-repeat: no-repeat;
  background-size: cover, cover !important;
}

.madagascar-editorial-section.reverse {
  grid-template-columns: .9fr 1.1fr;
}

.madagascar-editorial-section.reverse .madagascar-mini-gallery {
  order: 2;
}

.madagascar-mini-gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  min-width: 0;
}

.madagascar-mini-gallery figure {
  margin: 0;
  overflow: hidden;
  background: var(--sand);
  border: 1px solid rgba(200, 164, 93, .58);
}

.madagascar-mini-gallery img {
  aspect-ratio: 3 / 4;
  object-fit: cover;
}

.madagascar-editorial-copy {
  align-self: center;
}

.madagascar-editorial-copy h2 {
  margin: 18px 0 28px;
  font-size: clamp(42px, 4vw, 66px);
}

.madagascar-editorial-copy .prose {
  max-width: 520px;
}

.project-pair.reverse {
  grid-template-columns: .9fr 1.1fr;
}

.project-pair.reverse .project-pair-images {
  order: 2;
}

.project-pair-images {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  min-width: 0;
}

.project-pair-images figure {
  margin: 0;
  overflow: hidden;
  background: var(--sand);
  border: 1px solid rgba(200, 164, 93, .4);
}

.project-pair-images img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}

.project-pair-text {
  align-self: center;
  display: grid;
  gap: 32px;
}

.project-pair-text > div + div {
  padding-top: 30px;
  border-top: 1px solid var(--line);
}

.project-pair-text h2 {
  margin: 10px 0 15px;
  font-family: "League Spartan", sans-serif;
  font-size: clamp(30px, 3vw, 46px);
  font-weight: 800;
  line-height: .98;
}

.project-pair-text > div > p:not(.eyebrow) {
  max-width: 52ch;
  margin: 0;
  color: var(--muted);
  line-height: 1.75;
}

.project-pair-text ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}

.project-pair-text li {
  padding: 7px 10px 6px;
  border: 1px solid rgba(200, 164, 93, .62);
  color: var(--forest);
  font-family: "League Spartan", sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
}

@media (max-width: 850px) {
  .projects-editorial-list {
    gap: 22px;
    padding: 46px 20px 60px;
  }

  .project-pair,
  .project-pair.reverse {
    grid-template-columns: 1fr;
    gap: 30px;
    padding: 24px;
  }

  .project-pair.reverse .project-pair-images {
    order: 0;
  }

  .project-pair-images {
    gap: 10px;
  }

  .project-pair-text {
    gap: 26px;
  }

  .madagascar-editorial-section,
  .madagascar-editorial-section.reverse {
    grid-template-columns: 1fr;
    margin: 20px 18px 52px;
    padding: 24px;
  }

  .madagascar-editorial-section.reverse .madagascar-mini-gallery {
    order: 0;
  }

  .madagascar-mini-gallery {
    gap: 10px;
  }

  .madagascar-page .page-hero {
    background-position: center, center !important;
    background-size: cover, cover !important;
  }
}

/* Final hero artwork and focal points. Keep this last so WordPress optimisation
   cannot revive an earlier crop rule from the combined stylesheet. */
.miremby-wordpress-page .itineraries-hero {
  background-image: linear-gradient(90deg, rgba(11,39,31,.90) 0%, rgba(11,39,31,.48) 48%, rgba(11,39,31,.12) 100%), url("images/itineraries-hero-v3.jpeg") !important;
  background-position: center, center 58% !important;
  background-repeat: no-repeat !important;
  background-size: cover, cover !important;
}

.miremby-wordpress-page .madagascar-editorial-hero {
  background-image: linear-gradient(90deg, rgba(11,39,31,.90) 0%, rgba(11,39,31,.50) 48%, rgba(11,39,31,.12) 100%), url("images/madagascar-hero-v3.jpeg") !important;
  background-position: center, center 62% !important;
  background-repeat: no-repeat !important;
  background-size: cover, cover !important;
}

/* Privacy policy */
.privacy-hero {
  color: #fff;
  padding: 190px max(7vw, 60px) 90px;
}

.privacy-hero h1 {
  font-size: clamp(66px, 8vw, 120px);
  font-weight: 800;
  line-height: .86;
  margin: 18px 0 28px;
}

.privacy-hero > p:last-child {
  color: rgba(255,255,255,.78);
  font-size: 20px;
  max-width: 620px;
}

.privacy-content {
  margin: 0 auto;
  max-width: 1040px;
  padding: 90px 48px 120px;
}

.privacy-content section {
  border-top: 1px solid var(--line);
  padding: 44px 0 24px;
}

.privacy-content h2 {
  color: var(--forest);
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 800;
  line-height: 1;
  margin-bottom: 22px;
}

.privacy-content p,
.privacy-content li {
  color: #485852;
  font-size: 18px;
}

.privacy-content a {
  color: var(--green);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.privacy-content li + li {
  margin-top: 10px;
}

.privacy-updated {
  color: var(--forest) !important;
  margin-bottom: 44px;
}

.privacy-rights {
  background: var(--sand);
  border: 1px solid rgba(200,164,93,.55) !important;
  margin: 28px -34px;
  padding: 40px 34px 22px !important;
}

@media (max-width: 700px) {
  .privacy-hero { padding: 145px 26px 72px; }
  .privacy-content { padding: 68px 26px 90px; }
  .privacy-content p, .privacy-content li { font-size: 16px; }
  .privacy-rights { margin-left: -10px; margin-right: -10px; padding-left: 20px !important; padding-right: 20px !important; }
}

/* About Us image framing — keep both founders visible in the hero and make
   the Supporting Madagascar feature more compact. */
.about-page .page-hero {
  background-position: center 24% !important;
}

.about-page .split-feature {
  min-height: 540px;
}

.about-page .split-image {
  min-height: 540px;
}

.about-page .split-image img {
  object-position: center 58%;
}

.about-page .split-copy {
  padding-bottom: 68px;
  padding-top: 68px;
}

@media (max-width: 850px) {
  .about-page .page-hero {
    background-position: center 20% !important;
  }

  .about-page .split-feature,
  .about-page .split-image {
    min-height: 400px;
  }
}

@media (max-width: 540px) {
  .about-page .page-hero {
    background-position: center 18% !important;
  }

  .about-page .split-feature,
  .about-page .split-image {
    min-height: 340px;
  }

  .about-page .split-copy {
    padding-bottom: 52px;
    padding-top: 52px;
  }
}
