:root {
  --primary: #186900;
  --primary-dark: #0e3f07;
  --primary-deep: var(--primary-dark, #0a2505);
  --primary-soft: #e9f6e6;--primary-soft:color-mix(in srgb, var(--primary, #e9f6e6) 18%, #fff);
  --accent: var(--button-color, #fbbf24);
  --accent-dark: var(--button-color-dk, #d89104);
  --ink: #152016;
  --muted: #637064;
  --line: #e3e9e1;
  --panel: #ffffff;
  --soft: #f6fbf3;
  --sand: #fbf4e4;
  --mint: #dff7ed;
  --lime: #ecffd9;
  --shadow: 0 24px 60px rgba(12, 38, 9, 0.14);
  --shadow-soft: 0 14px 36px rgba(12, 38, 9, 0.1);
  --radius: 8px;
  --container: 1180px;
}* {
  box-sizing: border-box;
}html {
  scroll-behavior: smooth;
}body {
  margin: 0;
  font-family: "Poppins", Arial, sans-serif;
  color: var(--ink);
  background: #ffffff;
  line-height: 1.6;
  letter-spacing: 0;
  overflow-x: hidden;
}img {
  display: block;
  max-width: 100%;
}a {
  color: inherit;
  text-decoration: none;
}button, input, textarea {
  font: inherit;
}.container {
  width: min(var(--container), calc(100% - 48px));
  margin: 0 auto;
}.section-pad {
  padding: 88px 0;
}.section-pad-sm {
  padding: 58px 0;
}.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: #ffffff;
  box-shadow: 0 6px 22px rgba(12, 38, 9, 0.06);
}.nav-frame {
  width: min(1240px, calc(100% - 32px));
  min-height: 76px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  align-items: stretch;
}.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  font-size: 15px;
  font-weight: 800;
  color: var(--ink);
  white-space: nowrap;
}.brand-mark {
  width: 24px;
  height: 24px;
  border-radius: 5px;
  background:
    linear-gradient(135deg, var(--accent) 0 50%, transparent 50%),
    linear-gradient(135deg, #31b56f 0 50%, var(--primary) 50% 100%);
  box-shadow: 0 6px 16px rgba(24, 105, 0, 0.2);
  flex: 0 0 auto;
}.nav-ribbon {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px;
  padding: 0 18px 0 52px;
  background: var(--primary-dark);
  color: #ffffff;
  clip-path: polygon(32px 0, 100% 0, 100% 100%, 0 100%);
  min-width: 0;
}.nav-ribbon a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0 2px;
  color: rgba(255, 255, 255, 0.88);
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}.nav-ribbon a:hover, .nav-ribbon a:focus-visible, .nav-ribbon a[aria-current="page"] {
  color: #ffffff;
}.support-link {
  min-width: 126px;
  padding: 0 16px !important;
  border-radius: 999px;
  background: var(--accent);
  color: var(--primary-deep) !important;
  box-shadow: 0 10px 20px rgba(251, 191, 36, 0.26);
}.menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 8px;
  background: var(--primary);
  padding: 10px;
  cursor: pointer;
}.menu-toggle span {
  display: block;
  height: 2px;
  margin: 5px 0;
  background: #ffffff;
  border-radius: 999px;
}.hero {
  position: relative;
  min-height: 740px;
  padding-top: 70px;
  background: linear-gradient(180deg, #ffffff 0%, #ffffff 68%, var(--soft) 68%, var(--soft) 100%);
}.hero::before, .hero::after {
  content: "";
  position: absolute;
  z-index: 0;
  border: 2px solid rgba(24, 105, 0, 0.12);
  border-radius: 999px;
}.hero::before {
  width: 72px;
  height: 26px;
  left: 7%;
  top: 100px;
}.hero::after {
  width: 52px;
  height: 20px;
  right: 8%;
  top: 172px;
}.hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.03fr) minmax(360px, 0.9fr);
  gap: 54px;
  align-items: center;
}.hero-copy {
  max-width: 610px;
}.eyebrow {
  margin: 0 0 12px;
  color: var(--primary);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0;
}.eyebrow.light {
  color: var(--accent);
}h1, h2, h3, p {
  margin-top: 0;
}h1 {
  margin-bottom: 20px;
  font-size: 58px;
  line-height: 1.05;
  font-weight: 800;
  color: #253024;
}h2 {
  margin-bottom: 16px;
  font-size: 34px;
  line-height: 1.16;
  font-weight: 800;
  color: #20351d;
}h3 {
  margin-bottom: 8px;
  font-size: 18px;
  line-height: 1.25;
  font-weight: 800;
  color: #20351d;
}p {
  color: var(--muted);
  font-size: 15px;
}.hero-lede {
  max-width: 500px;
  margin-bottom: 28px;
  font-size: 16px;
}.hero-actions, .store-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
}.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 20px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
  cursor: pointer;
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease, color 180ms ease;
}.btn:hover, .btn:focus-visible {
  transform: translateY(-2px);
}.btn-primary {
  background: var(--primary);
  color: #ffffff;
  box-shadow: 0 14px 26px rgba(24, 105, 0, 0.24);
}.btn-primary:hover, .btn-primary:focus-visible {
  background: var(--primary-dark);
}.btn-accent {
  background: var(--accent);
  color: var(--primary-deep);
  box-shadow: 0 14px 26px rgba(251, 191, 36, 0.25);
}.btn-soft {
  background: var(--primary-soft);
  color: var(--primary-dark);
}.btn-outline {
  border-color: rgba(24, 105, 0, 0.25);
  background: #ffffff;
  color: var(--primary-dark);
}.hero-visual {
  position: relative;
  min-height: 510px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}.hero-visual::before {
  content: "";
  position: absolute;
  inset: 66px 32px 34px 46px;
  border-radius: 8px;
  background: #bdf4e2;
  z-index: 0;
}.hero-visual img {
  position: relative;
  z-index: 1;
  width: min(400px, 100%);
  height: 470px;
  object-fit: cover;
  object-position: center;
  border-radius: 8px;
  box-shadow: var(--shadow);
}.hero-badge {
  position: absolute;
  z-index: 2;
  right: 8px;
  bottom: 118px;
  width: 154px;
  padding: 16px;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--shadow-soft);
}.hero-badge span {
  display: block;
  color: var(--accent-dark);
  font-size: 12px;
  font-weight: 800;
}.hero-badge strong {
  display: block;
  color: var(--primary-dark);
  font-size: 20px;
  line-height: 1.12;
}.booking-wrap {
  position: relative;
  z-index: 3;
  margin-top: -28px;
}.smart-band-wrap {
  padding-top: 28px;
}.smart-band {
  position: relative;
  min-height: 330px;
  display: grid;
  grid-template-columns: 290px minmax(0, 1fr) 330px;
  gap: 36px;
  align-items: center;
  overflow: visible;
  padding: 44px 52px 44px 42px;
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.05), transparent 34%),
    var(--primary-dark);
  color: #ffffff;
}.smart-band::before {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 120px;
  opacity: 0.12;
  background:
    linear-gradient(90deg, transparent 0 10%, rgba(255, 255, 255, 0.55) 10% 11%, transparent 11% 22%, rgba(255, 255, 255, 0.55) 22% 23%, transparent 23% 100%);
}.smart-photo {
  position: relative;
  z-index: 1;
  align-self: stretch;
  margin-top: -118px;
}.tall-photo img {
  width: 100%;
  height: 360px;
  object-fit: cover;
  border-radius: 8px;
  box-shadow: var(--shadow);
}.smart-copy {
  position: relative;
  z-index: 1;
  max-width: 430px;
}.smart-copy h2, .smart-copy p {
  color: #ffffff;
}.smart-copy p:not(.eyebrow) {
  color: rgba(255, 255, 255, 0.84);
  margin-bottom: 24px;
}.smart-collage {
  position: relative;
  z-index: 1;
  min-height: 260px;
}.smart-collage img {
  position: absolute;
  object-fit: cover;
  border: 8px solid rgba(255, 255, 255, 0.86);
  box-shadow: var(--shadow-soft);
}.circle-one {
  width: 160px;
  height: 160px;
  border-radius: 999px;
  left: 20px;
  top: 20px;
}.circle-two {
  width: 210px;
  height: 210px;
  border-radius: 999px;
  right: 0;
  bottom: 0;
}.section-title {
  margin-bottom: 34px;
}.title-narrow {
  max-width: 680px;
}.destination-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}.destination-card, .feature-card, .why-card, .experience-card, .contact-card, .contact-form, .explore-card {
  border-radius: 8px;
}.destination-card {
  overflow: hidden;
  background: #ffffff;
  box-shadow: 0 12px 36px rgba(18, 45, 16, 0.09);
  transition: transform 180ms ease, box-shadow 180ms ease;
}.destination-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 48px rgba(18, 45, 16, 0.14);
}.destination-card img {
  width: 100%;
  aspect-ratio: 1.35;
  object-fit: cover;
}.destination-card div {
  padding: 18px 18px 22px;
}.destination-card p, .feature-card p, .why-card p, .experience-card p {
  margin-bottom: 0;
}.connected-section {
  background: #ffffff;
}.connected-grid {
  display: grid;
  grid-template-columns: 0.92fr 1fr;
  gap: 70px;
  align-items: center;
}.travel-board {
  position: relative;
  min-height: 360px;
}.board-main, .board-card {
  position: absolute;
  overflow: hidden;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--shadow-soft);
}.board-main {
  width: 250px;
  left: 70px;
  top: 40px;
}.board-main img {
  width: 100%;
  height: 220px;
  object-fit: cover;
}.board-main strong, .board-card span {
  display: block;
  padding: 14px 16px;
  color: var(--primary-dark);
  font-size: 14px;
  font-weight: 800;
}.board-card {
  width: 178px;
}.board-card img {
  width: 100%;
  height: 126px;
  object-fit: cover;
}.board-card:nth-child(2) {
  left: 0;
  bottom: 22px;
}.board-card:nth-child(3) {
  right: 8px;
  top: 76px;
}.connected-copy {
  max-width: 540px;
}.connected-copy p:not(.eyebrow) {
  margin-bottom: 26px;
}.deal-band {
  padding: 42px 0;
  background: #ffffff;
}.deal-inner {
  position: relative;
  min-height: 260px;
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr) 220px;
  gap: 34px;
  align-items: center;
  overflow: hidden;
  padding: 36px 44px;
  border-radius: 8px;
  background:
    linear-gradient(90deg, rgba(10, 37, 5, 0.9), rgba(14, 63, 7, 0.93)),
    url("https://images.unsplash.com/photo-1474302770737-173ee21bab63?auto=format&fit=crop&w=1400&q=80") center / cover;
  color: #ffffff;
}.deal-photo img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  border-radius: 8px;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.22);
}.deal-copy {
  max-width: 530px;
}.deal-copy h2 {
  margin-bottom: 10px;
  color: #ffffff;
  font-size: 42px;
}.deal-copy p {
  margin-bottom: 0;
  color: rgba(255, 255, 255, 0.83);
}.pill-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  margin-bottom: 18px;
  padding: 0 18px;
  border-radius: 999px;
  background: var(--accent);
  color: var(--primary-deep);
  font-size: 12px;
  font-weight: 800;
}.story-grid {
  display: grid;
  grid-template-columns: 0.9fr 1fr;
  gap: 74px;
  align-items: center;
}.service-bubbles {
  position: relative;
  min-height: 430px;
}.bubble {
  position: absolute;
  overflow: hidden;
  border: 8px solid #ffffff;
  border-radius: 999px;
  box-shadow: var(--shadow-soft);
}.bubble img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}.bubble span {
  position: absolute;
  left: 18px;
  bottom: 18px;
  display: inline-flex;
  min-height: 32px;
  align-items: center;
  padding: 0 12px;
  border-radius: 999px;
  background: #ffffff;
  color: var(--primary-dark);
  font-size: 12px;
  font-weight: 800;
}.bubble-large {
  width: 245px;
  height: 245px;
  left: 52px;
  top: 0;
}.bubble-medium {
  width: 220px;
  height: 220px;
  right: 20px;
  top: 140px;
}.bubble-small {
  width: 185px;
  height: 185px;
  left: 10px;
  bottom: 10px;
}.story-copy {
  position: relative;
  max-width: 600px;
}.mini-reviews {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 28px;
}.mini-reviews div {
  min-height: 130px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}.mini-reviews strong, .mini-reviews span {
  display: block;
}.mini-reviews strong {
  margin-bottom: 8px;
  color: var(--primary-dark);
  font-size: 14px;
}.mini-reviews span {
  color: var(--muted);
  font-size: 13px;
}.circle-cta {
  position: absolute;
  right: 0;
  bottom: -58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  border-radius: 999px;
  background: var(--accent);
  color: var(--primary-deep);
  font-size: 12px;
  font-weight: 800;
  box-shadow: 0 14px 28px rgba(251, 191, 36, 0.28);
}.explore-section {
  background: var(--soft);
}.explore-grid {
  display: grid;
  grid-template-columns: 1.35fr 0.65fr 0.7fr;
  gap: 22px;
  align-items: stretch;
}.explore-large {
  position: relative;
  min-height: 500px;
  overflow: hidden;
  border-radius: 8px;
  background: var(--primary-dark);
  color: #ffffff;
}.explore-large img {
  width: 100%;
  height: 100%;
  min-height: 500px;
  object-fit: cover;
  opacity: 0.78;
}.explore-large::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 35%, rgba(10, 37, 5, 0.86));
}.explore-large-copy {
  position: absolute;
  z-index: 1;
  left: 28px;
  right: 28px;
  bottom: 26px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}.explore-large-copy h2 {
  max-width: 360px;
  margin: 0;
  color: #ffffff;
}.explore-stack {
  display: grid;
  gap: 22px;
}.explore-card {
  overflow: hidden;
  padding: 24px 22px 0;
  min-height: 239px;
}.explore-card p {
  font-size: 13px;
}.explore-card img {
  width: calc(100% + 44px);
  height: 160px;
  margin: 16px -22px 0;
  object-fit: cover;
}.tone-mint {
  background: var(--mint);
}.tone-lime {
  background: var(--lime);
}.tone-sand {
  background: var(--sand);
}.contact-strip {
  background: #ffffff;
}.contact-strip-inner, .soft-cta-inner, .testimonial-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}.contact-strip h2, .soft-cta h2, .testimonial-inner h2 {
  margin-bottom: 0;
}.site-footer {
  margin: 0 32px 32px;
  border-radius: 8px;
  background: var(--primary-dark);
  color: #ffffff;
}.footer-main {
  display: grid;
  grid-template-columns: 1.4fr repeat(3, 0.75fr);
  gap: 46px;
  padding: 58px 0 34px;
}.brand-footer {
  margin-bottom: 18px;
  color: #ffffff;
}.footer-brand p {
  max-width: 360px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 13px;
}.footer-column h2 {
  margin-bottom: 16px;
  color: #ffffff;
  font-size: 14px;
}.footer-column a {
  display: block;
  margin-bottom: 10px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 13px;
}.footer-column a:hover, .footer-column a:focus-visible {
  color: #ffffff;
}.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 0 30px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  color: rgba(255, 255, 255, 0.74);
  font-size: 12px;
}.footer-bottom a {
  color: #ffffff;
  font-weight: 800;
}.page-hero {
  padding: 72px 0 54px;
  background: linear-gradient(180deg, #ffffff 0%, var(--soft) 100%);
}.page-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(360px, 1fr);
  gap: 58px;
  align-items: center;
}.page-hero h1 {
  max-width: 640px;
  font-size: 48px;
}.page-hero p:not(.eyebrow) {
  max-width: 540px;
  margin-bottom: 26px;
  font-size: 16px;
}.page-hero img {
  width: 100%;
  height: 430px;
  object-fit: cover;
  border-radius: 8px;
  box-shadow: var(--shadow-soft);
}.page-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}.feature-card {
  overflow: hidden;
  background: #ffffff;
  box-shadow: var(--shadow-soft);
}.feature-card img {
  width: 100%;
  height: 270px;
  object-fit: cover;
}.feature-card div {
  padding: 24px;
}.soft-cta {
  background: var(--soft);
}.why-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}.why-card {
  min-height: 300px;
  padding: 26px 22px;
  background: #ffffff;
  border: 1px solid var(--line);
  box-shadow: 0 12px 34px rgba(18, 45, 16, 0.07);
}.why-card span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  margin-bottom: 26px;
  border-radius: 999px;
  background: var(--primary-soft);
  color: var(--primary-dark);
  font-weight: 800;
}.route-section, .testimonial-panel {
  background: var(--primary-dark);
  color: #ffffff;
}.route-grid {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 50px;
  align-items: start;
}.route-grid h2, .testimonial-inner h2 {
  color: #ffffff;
}.route-list {
  display: grid;
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: route;
}.route-list li {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 22px;
  align-items: center;
  padding: 18px 20px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
}.route-list strong {
  color: var(--accent);
}.route-list span, .testimonial-inner p {
  color: rgba(255, 255, 255, 0.78);
}.story-page-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}.experience-card {
  overflow: hidden;
  background: #ffffff;
  box-shadow: var(--shadow-soft);
}.experience-card img {
  width: 100%;
  height: 260px;
  object-fit: cover;
}.experience-card div {
  padding: 24px;
}.testimonial-inner {
  color: #ffffff;
}.contact-page {
  background: #ffffff;
}.contact-grid {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 28px;
  align-items: start;
}.contact-card, .contact-form {
  padding: 30px;
  background: #ffffff;
  box-shadow: var(--shadow-soft);
  border: 1px solid var(--line);
}.contact-card h2 {
  font-size: 28px;
  word-break: break-word;
}.contact-form {
  display: grid;
  gap: 12px;
}.contact-form label {
  color: var(--primary-dark);
  font-size: 13px;
  font-weight: 800;
}.contact-form input, .contact-form textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdf9;
  color: var(--ink);
  padding: 13px 14px;
  outline: none;
}.contact-form input:focus, .contact-form textarea:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 4px rgba(24, 105, 0, 0.1);
}

@media (max-width: 1120px) {.nav-frame {
    grid-template-columns: 230px minmax(0, 1fr);
  }.nav-ribbon {
    gap: 12px;
    padding-right: 12px;
    padding-left: 46px;
  }.nav-ribbon a {
    font-size: 11px;
  }h1 {
    font-size: 48px;
  }h2 {
    font-size: 30px;
  }.smart-band {
    grid-template-columns: 250px minmax(0, 1fr) 260px;
    padding-right: 36px;
  }.destination-grid, .why-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }.explore-grid {
    grid-template-columns: 1fr 1fr;
  }.explore-large {
    grid-row: span 2;
  }
}

@media (max-width: 900px) {.container {
    width: min(var(--container), calc(100% - 36px));
  }.section-pad {
    padding: 66px 0;
  }.site-header {
    position: sticky;
  }.nav-frame {
    min-height: 70px;
    grid-template-columns: 1fr 44px;
    align-items: center;
  }.menu-toggle {
    display: block;
    justify-self: end;
  }.nav-ribbon {
    position: absolute;
    top: 70px;
    left: 16px;
    right: 16px;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 12px;
    border-radius: 8px;
    clip-path: none;
    box-shadow: var(--shadow);
  }.nav-ribbon.is-open {
    display: flex;
  }.nav-ribbon a {
    justify-content: flex-start;
    min-height: 44px;
    padding: 0 12px;
    font-size: 13px;
  }.support-link {
    justify-content: center !important;
    margin-top: 8px;
  }.hero {
    min-height: auto;
    padding-top: 52px;
  }.hero-grid, .connected-grid, .story-grid, .page-hero-grid, .contact-grid, .route-grid {
    grid-template-columns: 1fr;
  }.hero-grid {
    gap: 36px;
  }.hero-copy {
    max-width: none;
  }.hero-visual {
    min-height: 430px;
  }.hero-visual img {
    height: 395px;
  }.booking-wrap {
    margin-top: 24px;
  }.smart-band {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 28px;
  }.smart-photo {
    margin-top: 0;
  }.tall-photo img {
    height: 290px;
  }.smart-collage {
    display: none;
  }.travel-board {
    min-height: 410px;
  }.deal-inner {
    grid-template-columns: 1fr;
  }.deal-photo img {
    height: 240px;
  }.mini-reviews {
    grid-template-columns: 1fr;
  }.circle-cta {
    position: static;
    margin-top: 22px;
  }.page-card-grid, .story-page-grid, .footer-main {
    grid-template-columns: 1fr;
  }.footer-main {
    gap: 24px;
  }
}

@media (max-width: 640px) {.container {
    width: calc(100% - 28px);
  }.section-pad {
    padding: 52px 0;
  }.section-pad-sm {
    padding: 44px 0;
  }.brand {
    font-size: 14px;
  }h1, .page-hero h1 {
    font-size: 38px;
    line-height: 1.08;
  }h2 {
    font-size: 27px;
  }.hero {
    padding-top: 40px;
    background: linear-gradient(180deg, #ffffff 0%, #ffffff 72%, var(--soft) 72%, var(--soft) 100%);
  }.hero-actions, .store-actions, .contact-strip-inner, .soft-cta-inner, .testimonial-inner, .footer-bottom {
    align-items: stretch;
    flex-direction: column;
  }.btn {
    width: 100%;
    min-height: 48px;
  }.hero-visual {
    min-height: 360px;
  }.hero-visual::before {
    inset: 46px 8px 20px;
  }.hero-visual img {
    width: calc(100% - 42px);
    height: 330px;
  }.hero-badge {
    right: 4px;
    bottom: 54px;
    width: 132px;
    padding: 12px;
  }.hero-badge strong {
    font-size: 16px;
  }.smart-band {
    padding: 20px;
  }.destination-grid, .why-grid, .explore-grid {
    grid-template-columns: 1fr;
  }.destination-card img {
    aspect-ratio: 1.55;
  }.travel-board {
    min-height: auto;
    display: grid;
    gap: 14px;
  }.board-main, .board-card {
    position: static;
    width: 100%;
  }.board-main img, .board-card img {
    height: 190px;
  }.deal-inner {
    padding: 22px;
  }.deal-copy h2 {
    font-size: 32px;
  }.service-bubbles {
    min-height: auto;
    display: grid;
    gap: 14px;
  }.bubble {
    position: relative;
    inset: auto;
    width: 100%;
    height: 220px;
    border-radius: 8px;
  }.explore-large, .explore-large img {
    min-height: 380px;
  }.explore-large-copy {
    display: block;
  }.explore-large-copy .btn {
    margin-top: 18px;
  }.page-hero {
    padding: 52px 0 42px;
  }.page-hero img {
    height: 300px;
  }.feature-card img, .experience-card img {
    height: 220px;
  }.route-list li {
    grid-template-columns: 1fr;
    gap: 6px;
  }.contact-card, .contact-form {
    padding: 22px;
  }.site-footer {
    margin: 0 14px 14px;
  }
}

@media (prefers-reduced-motion: reduce) {*, *::before, *::after {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

/* adivaha locale-switch header mount v17 */
header .b2c-locale-switch{flex:0 0 auto;align-self:center;}
header .b2c-loc-btn{color:inherit;min-height:0;}
header .b2c-cur-picker{display:none !important;}
header .b2c-loc-panel a{display:block;min-height:0;justify-content:flex-start;text-align:left;padding:.45rem .7rem;font-size:.82rem;font-weight:600;color:#1f2937;}
.top-bar{padding-left:0 !important;padding-right:0 !important;}
.top-bar-row,.product-bar-row{max-width:1200px !important;margin-left:auto !important;margin-right:auto !important;padding-left:20px !important;padding-right:20px !important;box-sizing:border-box;}
.sights-section{padding-left:clamp(1rem,2.5vw,2.5rem) !important;padding-right:clamp(1rem,2.5vw,2.5rem) !important;}
@media (max-width:599px){.top-bar .b2c-contact--email{display:none !important;}}
@media (max-width:520px){header .b2c-locale-switch{gap:.15rem;}header .b2c-loc-btn{padding:.3rem .35rem;font-size:.72rem;}header .b2c-locale-switch .b2c-loc-dd:last-child .b2c-loc-btn > span{display:none;}.b2c-coins-pill{display:none !important;}.product-actions a,.product-actions button{white-space:nowrap !important;}.top-bar{display:flex !important;align-items:center !important;justify-content:space-between !important;flex-wrap:nowrap !important;gap:8px !important;}.top-bar-row{flex:1 1 auto;min-width:0;flex-direction:row !important;align-items:center !important;flex-wrap:nowrap !important;gap:8px !important;margin:0 !important;}.top-bar .b2c-contact-strip{display:flex !important;flex:1 1 auto;min-width:0;flex-wrap:nowrap !important;align-items:center;gap:10px;}.top-bar .b2c-contact{min-width:0;}.top-bar .b2c-contact-val{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.top-bar .b2c-locale-switch-wrap{flex:0 0 auto;margin-left:auto !important;}}
@media (max-width:900px){header a[class*="btn"],header button[class*="btn"],header [class*="auth-btn"],header [class*="sign"],header [class*="book"],header [class*="cta"],.product-actions a,.product-actions button{white-space:nowrap !important;}}
@media (max-width:420px){header .b2c-locale-switch .b2c-loc-btn > span{display:none !important;}header .b2c-loc-btn{padding:.25rem .2rem !important;}header [class*="brand"] img,header [class*="logo"] img{max-height:26px !important;width:auto !important;}header [class*="brand"]{font-size:15px !important;gap:6px !important;}header *{min-width:0 !important;}header [class*="actions"]{flex-wrap:wrap !important;gap:6px !important;justify-content:flex-end;}header [class*="header-row"],header [class*="header-inner"],header [class*="header__inner"]{gap:8px !important;}header [class*="header-row"],header [class*="header-inner"],header [class*="header__inner"],header [class*="container"]{flex-wrap:wrap !important;row-gap:6px !important;}header .b2c-mnav{flex-wrap:nowrap !important;width:40px !important;height:40px !important;flex:0 0 auto !important;background:transparent !important;border:0 !important;box-shadow:none !important;color:inherit !important;}header .b2c-mnav span{width:20px !important;height:2px !important;flex:0 0 auto !important;background:currentColor !important;border-radius:2px !important;}header a[class*="btn"],header button[class*="btn"],header [class*="auth-btn"],header [class*="sign"],header [class*="book"],header [class*="cta"]{white-space:nowrap !important;}header .b2c-coins-pill{display:none !important;}.b2c-coins-pill{display:none !important;}.product-actions a,.product-actions button{white-space:nowrap !important;}.product-bar-row{gap:8px !important;}}

/* adivaha header fixes v3 */
.nav-ribbon .b2c-locale-switch{flex:0 0 auto;}
.nav-ribbon .b2c-loc-btn{color:#fff;min-height:0;}
.nav-ribbon .b2c-loc-panel a{display:block;min-height:0;justify-content:flex-start;padding:.45rem .7rem;font-size:.82rem;font-weight:600;text-align:left;}
@media (max-width:1120px){.nav-ribbon .b2c-loc-btn{padding:.3rem .35rem;font-size:.72rem;}.nav-ribbon .b2c-locale-switch{gap:.2rem;}}
@media (max-width:900px){.nav-ribbon .b2c-locale-switch{align-self:flex-start;padding:6px 2px;}.nav-ribbon .b2c-loc-panel{right:auto;left:0;}}
@media (max-width:767px){.explore-large-copy .btn{display:none !important;}}
.abe-search-tabs{justify-content:flex-start !important;margin-left:0 !important;margin-right:auto !important;}
body{display:flow-root;}


/* ai25: burger from 991, ribbon utilities */
/* The theme's own 900 block also restacks the hero, the bands and the footer,
   so only its header rules are restated here - the page layout keeps 900. */
@media (max-width:991px){
  .site-header{position:sticky;}
  .nav-frame{min-height:70px;grid-template-columns:1fr 44px;align-items:center;}
  .menu-toggle{display:block;justify-self:end;}
  .nav-ribbon{position:absolute;top:70px;left:16px;right:16px;display:none;
    flex-direction:column;align-items:stretch;gap:0;padding:12px;border-radius:8px;
    clip-path:none;box-shadow:var(--shadow);}
  .nav-ribbon.is-open{display:flex;}
  .nav-ribbon a{justify-content:flex-start;min-height:44px;padding:0 12px;font-size:13px;}
  .support-link{justify-content:center !important;margin-top:8px;}
  .nav-ribbon .b2c-locale-switch{align-self:flex-start;padding:6px 2px;}
  .nav-ribbon .b2c-loc-panel{right:auto;left:0;}
  /* Need Help and Coins live in the ribbon now, so they need a row of their
     own once it is a stacked menu. */
  .nav-ribbon .link-help{min-height:44px;display:flex;align-items:center;padding:0 12px;
    text-decoration:none;color:inherit;}
  .nav-ribbon .b2c-coins-pill{align-self:stretch;margin:6px 0;}
}
/* Hidden outright at 520 and 420 by earlier !important rules, and this theme's
   menu is where it would otherwise have gone. */
@media (max-width:520px){ .nav-ribbon .b2c-coins-pill{display:inline-flex !important;} }

/* ==========================================================================
   Homepage, rebuilt to the travel-agency reference layout.
   Prefixed nd- so none of it can collide with the sections above.
   Colour comes from the brand variables only - never a literal.
   ========================================================================== */
.nd-section{padding:96px 0;}
.nd-soft{background:var(--soft);}
.nd-eyebrow{margin:0 0 10px;font-size:.78rem;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--accent-dark);}
.nd-head{max-width:720px;margin:0 0 46px;}
.nd-head h2{margin:0;font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1.18;letter-spacing:-.02em;}
.nd-head-lede{margin:14px 0 0;color:var(--muted);font-size:1.02rem;}
.nd-head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;max-width:none;}

.nd-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:.92rem 1.9rem;border-radius:var(--radius);font-weight:700;font-size:.94rem;
  letter-spacing:.02em;border:2px solid transparent;transition:transform .18s ease,box-shadow .18s ease;}
.nd-btn:hover{transform:translateY(-2px);}
.nd-btn-solid{background:var(--accent);color:var(--ink);box-shadow:var(--shadow-soft);}
.nd-btn-ghost{border-color:var(--line);color:var(--ink);background:var(--panel);}
.nd-btn-ghost:hover{border-color:var(--accent);}
.nd-link{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.9rem;
  color:var(--primary);}
.nd-link::after{content:"\2192";transition:transform .18s ease;}
.nd-link:hover::after{transform:translateX(4px);}

/* Hero -------------------------------------------------------------------- */
.nd-hero{position:relative;overflow:hidden;}
.nd-hero-bg{position:absolute;inset:0;z-index:0;}
.nd-hero-bg img{width:100%;height:100%;object-fit:cover;}
.nd-hero-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,20,10,.5),rgba(8,20,10,.68));}


.nd-cta h2,.nd-cta p{color:#fff;}



/* The search card rides up over the hero. */
.nd-searchband{position:relative;z-index:2;margin-top:-88px;padding-bottom:26px;}
.nd-searchcard{background:var(--panel);border-radius:calc(var(--radius) + 4px);
  box-shadow:var(--shadow);padding:22px;}

/* Packages ---------------------------------------------------------------- */
.nd-pkg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
.nd-pkg{background:var(--panel);border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);
  overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease;}
.nd-pkg:hover{transform:translateY(-6px);box-shadow:var(--shadow-soft);}
/* The photograph is taken out of the flow so a portrait file cannot stretch
   its card taller than the two beside it. */
.nd-pkg-media{position:relative;aspect-ratio:3/2;overflow:hidden;}
.nd-pkg-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.nd-badge-days{position:absolute;left:16px;bottom:16px;padding:.36rem .85rem;border-radius:999px;
  background:rgba(255,255,255,.94);color:var(--ink);font-size:.76rem;font-weight:700;}
.nd-badge-sale{position:absolute;right:16px;top:16px;padding:.34rem .8rem;border-radius:var(--radius);
  background:var(--accent);color:var(--ink);font-size:.72rem;font-weight:800;
  letter-spacing:.1em;text-transform:uppercase;}
.nd-pkg-body{padding:24px;display:flex;flex-direction:column;gap:10px;flex:1;}
.nd-pkg-place{margin:0;font-size:.78rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent-dark);}
.nd-pkg-body h3{margin:0;font-size:1.16rem;line-height:1.35;}
.nd-pkg-body p{margin:0;color:var(--muted);font-size:.94rem;}
.nd-pkg-foot{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;gap:12px;}
.nd-price{font-size:1.35rem;font-weight:800;color:var(--primary);}
.nd-price small{display:block;font-size:.7rem;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);}
.nd-price s{font-size:.9rem;font-weight:600;color:var(--muted);}

/* Split copy + photograph -------------------------------------------------- */
.nd-split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.nd-split-copy h2{margin:0 0 18px;font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1.18;
  letter-spacing:-.02em;}
.nd-split-copy p{margin:0 0 16px;color:var(--muted);}
.nd-split-copy .nd-btn{margin-top:12px;}
.nd-split-media img{width:100%;border-radius:calc(var(--radius) + 6px);box-shadow:var(--shadow);
  aspect-ratio:4/3;object-fit:cover;}
.nd-split-flip .nd-split-media{order:-1;}
.nd-ticks{margin:0 0 24px;padding:0;list-style:none;display:grid;gap:12px;}
.nd-ticks li{position:relative;padding-left:34px;color:var(--muted);}
.nd-ticks li::before{content:"\2713";position:absolute;left:0;top:1px;width:22px;height:22px;
  border-radius:50%;background:var(--accent);color:var(--ink);font-size:.74rem;font-weight:800;
  display:grid;place-items:center;}

/* Services ---------------------------------------------------------------- */
.nd-svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
.nd-svc{background:var(--panel);border-radius:calc(var(--radius) + 4px);padding:40px 32px;
  text-align:center;border:1px solid var(--line);}
.nd-svc-icon{display:grid;place-items:center;width:82px;height:82px;margin:0 auto 20px;
  border-radius:50%;background:color-mix(in srgb, var(--primary) 14%, #fff);color:var(--primary);}
.nd-svc-icon svg{width:34px;height:34px;stroke:currentColor;fill:none;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;}
.nd-svc h3{margin:0 0 10px;font-size:1.18rem;}
.nd-svc p{margin:0;color:var(--muted);font-size:.94rem;}

/* Sideways rails (destinations, testimonials) ------------------------------ */
.nd-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(266px,1fr);gap:26px;
  overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding-bottom:10px;scrollbar-width:none;}
.nd-rail::-webkit-scrollbar{display:none;}
.nd-rail > *{scroll-snap-align:start;}
.nd-arrows{display:flex;gap:10px;flex:0 0 auto;}
.nd-arrow{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);
  background:var(--panel);color:var(--ink);font-size:1.4rem;line-height:1;cursor:pointer;
  transition:background .18s ease,color .18s ease,border-color .18s ease;}
.nd-arrow:hover{background:var(--accent);border-color:var(--accent);}

.nd-dest{position:relative;border-radius:calc(var(--radius) + 4px);overflow:hidden;
  min-height:400px;display:flex;align-items:flex-end;}
.nd-dest img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .5s ease;}
.nd-dest:hover img{transform:scale(1.06);}
.nd-dest::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0) 38%,rgba(0,0,0,.78));}
.nd-dest-body{position:relative;z-index:1;padding:26px;color:#fff;}
.nd-dest-body h3{margin:0 0 4px;font-size:1.5rem;color:#fff;}
.nd-dest-body p{margin:0 0 12px;font-size:.9rem;color:rgba(255,255,255,.82);}
.nd-dest-body .nd-link{color:var(--accent);}

.nd-quote{margin:0;background:var(--panel);border:1px solid var(--line);
  border-radius:calc(var(--radius) + 4px);padding:32px 26px;text-align:center;}
.nd-quote img{width:76px;height:76px;border-radius:50%;object-fit:cover;margin:0 auto 18px;}
.nd-quote blockquote{margin:0 0 18px;color:var(--muted);font-size:.96rem;line-height:1.62;}
.nd-quote figcaption{font-weight:700;font-size:.95rem;}
.nd-quote figcaption span{display:block;font-weight:500;font-size:.84rem;color:var(--muted);}

/* Plans ------------------------------------------------------------------- */
.nd-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;align-items:start;}
.nd-plan{position:relative;background:var(--panel);border:1px solid var(--line);
  border-radius:calc(var(--radius) + 4px);padding:40px 32px;text-align:center;}
.nd-plan h3{margin:0 0 12px;font-size:1.22rem;}
.nd-plan-price{margin:0 0 22px;font-size:2.6rem;font-weight:800;color:var(--primary);
  line-height:1;}
.nd-plan-price small{font-size:.92rem;font-weight:600;color:var(--muted);}
.nd-plan ul{margin:0 0 28px;padding:0;list-style:none;display:grid;gap:12px;}
.nd-plan li{padding-bottom:12px;border-bottom:1px solid var(--line);color:var(--muted);
  font-size:.93rem;}
.nd-plan li:last-child{border-bottom:0;padding-bottom:0;}
.nd-plan .nd-btn{width:100%;}
.nd-plan-featured{border-color:var(--accent);box-shadow:var(--shadow);padding-top:52px;}
.nd-plan-tag{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);
  padding:.4rem 1.2rem;border-radius:999px;background:var(--accent);color:var(--ink);
  font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;}
.nd-plan-note{margin:26px 0 0;text-align:center;color:var(--muted);font-size:.86rem;}

/* Parallax call to action -------------------------------------------------- */
.nd-cta{position:relative;padding:130px 0;color:#fff;text-align:center;overflow:hidden;}
.nd-cta-bg{position:absolute;inset:0;z-index:0;}
.nd-cta-bg img{width:100%;height:100%;object-fit:cover;}
.nd-cta-bg::after{content:"";position:absolute;inset:0;background:rgba(8,20,10,.62);}
.nd-cta-inner{position:relative;z-index:1;max-width:700px;margin:0 auto;}
.nd-cta-inner .nd-eyebrow{color:var(--accent);}
.nd-cta h2{margin:0 0 16px;font-size:clamp(1.9rem,4vw,3rem);line-height:1.15;
  letter-spacing:-.02em;}
.nd-cta p{margin:0 0 30px;color:rgba(255,255,255,.88);}

/* Journal ----------------------------------------------------------------- */
.nd-blog{display:grid;grid-template-columns:1.15fr 1fr;gap:30px;align-items:start;}
.nd-post{background:var(--panel);border:1px solid var(--line);
  border-radius:calc(var(--radius) + 4px);overflow:hidden;}
.nd-post-lead img{width:100%;aspect-ratio:16/10;object-fit:cover;}
.nd-post-body{padding:24px;}
.nd-post-date{margin:0 0 8px;font-size:.76rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent-dark);}
.nd-post-body h3{margin:0 0 10px;font-size:1.2rem;line-height:1.35;}
.nd-post-body p{margin:0 0 14px;color:var(--muted);font-size:.94rem;}
.nd-post-stack{display:grid;gap:22px;}
.nd-post-stack .nd-post{display:grid;grid-template-columns:150px 1fr;align-items:center;}
.nd-post-stack .nd-post img{width:100%;height:100%;min-height:132px;object-fit:cover;}
.nd-post-stack .nd-post-body{padding:18px 22px;}
.nd-post-stack .nd-post-body h3{font-size:1.02rem;margin-bottom:8px;}

/* ==========================================================================
   Header and hero, rebuilt to the reference: logo left, nav through the
   middle with dot separators, actions right; then type on the left of the
   hero and arched photographs on the right over a dotted field.
   These come after the block above on purpose - they replace what it said
   about .nd-hero, and they override the theme's original ribbon header.
   ========================================================================== */
.nd-header{background:var(--panel);box-shadow:0 1px 0 var(--line);}
.nd-header-inner{width:min(1320px,calc(100% - 40px));margin:0 auto;min-height:88px;
  display:flex;align-items:center;gap:24px;}
.nd-header .nd-brand{flex:0 0 auto;font-size:16px;}
.nd-header .nd-brand img{max-height:46px;width:auto;}

.nd-nav{flex:1 1 auto;display:flex;align-items:center;justify-content:center;gap:0;
  min-width:0;}
.nd-nav a{position:relative;padding:0 22px;font-weight:600;font-size:.98rem;
  color:var(--ink);white-space:nowrap;transition:color .18s ease;}
.nd-nav a + a::before{content:"";position:absolute;left:-3px;top:50%;width:6px;height:6px;
  margin-top:-3px;border-radius:50%;background:var(--accent);}
.nd-nav a:hover,.nd-nav a.active,.nd-nav a[aria-current="page"]{color:var(--primary);}
.nd-nav-help{font-weight:500;opacity:.75;}

.nd-header-side{flex:0 0 auto;display:flex;align-items:center;gap:14px;}
.nd-header-cta{display:inline-flex;align-items:center;justify-content:center;
  padding:.85rem 2rem;border-radius:var(--radius);background:var(--primary);color:#fff;
  font-weight:700;font-size:.95rem;transition:transform .18s ease,box-shadow .18s ease;}
.nd-header-cta:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft);}
.nd-burger{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;padding:0 10px;border:0;background:transparent;cursor:pointer;}
.nd-burger span{display:block;height:2px;border-radius:2px;background:var(--ink);}

/* Hero -------------------------------------------------------------------- */
.nd-hero{position:relative;overflow:visible;padding:76px 0 210px;
  background:var(--soft);min-height:0;display:block;color:var(--ink);text-align:left;}
/* The dotted field behind everything, in place of the reference's dot map. */
.nd-hero::before{content:"";position:absolute;inset:0;z-index:0;
  background-image:radial-gradient(currentColor 1.4px, transparent 1.4px);
  background-size:22px 22px;color:var(--line);opacity:.85;}
.nd-hero-inner{position:relative;z-index:1;display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:56px;align-items:center;
  max-width:none;}
.nd-hero-kicker{margin:0 0 18px;font-size:.94rem;font-weight:600;letter-spacing:.22em;
  text-transform:uppercase;color:var(--muted);}
.nd-hero h1{margin:0;font-size:clamp(2.6rem,5.6vw,4.6rem);line-height:1.06;
  letter-spacing:-.03em;font-weight:800;color:var(--ink);text-shadow:none;}
/* The yellow rule under the first line, drawn behind the letters. */
.nd-mark{position:relative;display:inline-block;}
.nd-mark::after{content:"";position:absolute;left:0;right:0;bottom:.1em;height:.17em;
  background:var(--accent);z-index:-1;}
.nd-hero-lede{margin:26px 0 32px;max-width:480px;font-size:1.06rem;color:var(--muted);}

/* Two tall capsules, rounded at both ends, the second overlapping the first
   and running on past the search card - as on the reference. */
.nd-hero-art{position:relative;min-height:clamp(480px,58vw,660px);}
.nd-arch{margin:0;overflow:hidden;border-radius:999px;}
.nd-arch img{width:100%;height:100%;object-fit:cover;}
.nd-arch-lead{position:absolute;left:2%;top:-34px;width:58%;height:156%;}
.nd-arch-trail{position:absolute;right:-4%;top:56px;width:50%;height:162%;}

/* The search card overlaps the foot of the hero, as it does on the reference. */
.nd-searchband{margin-top:-132px;}
/* The capsules run on well past the card, so the first section below has to
   start clear of them rather than colliding with the rounded ends. */
.nd-searchband + .nd-section{padding-top:170px;}

/* ==========================================================================
   Footer: a photograph washed almost to grey, the promise across the left,
   address and contact to the right, small links along the foot.
   ========================================================================== */
/* The theme's own .site-footer floats the footer in from the page edges with
   a rounded card; this one is full-bleed, so both are undone. Two classes so
   it also beats the narrow-screen rule that re-states the margin. */
.site-footer.nd-footer{margin:0;border-radius:0;}
.nd-footer{position:relative;overflow:hidden;color:#fff;padding:104px 0 34px;
  background:#3f4a55;}
.nd-footer-bg{position:absolute;inset:0;z-index:0;}
.nd-footer-bg img{width:100%;height:100%;object-fit:cover;object-position:center 28%;
  filter:grayscale(1);}
.nd-footer-bg::after{content:"";position:absolute;inset:0;background:rgba(46,56,66,.82);}
.nd-footer-inner{position:relative;z-index:1;display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);gap:48px;
  align-items:start;}

.nd-footer-lead h2{margin:0;max-width:15ch;font-size:clamp(1.9rem,3.2vw,2.8rem);
  line-height:1.16;letter-spacing:-.02em;color:#fff;}

.nd-footer-col h3{margin:0 0 22px;font-size:1.35rem;color:#fff;}
.nd-footer-col address{font-style:normal;line-height:2;color:rgba(255,255,255,.86);}

.nd-footer-social{margin-top:22px;display:flex;align-items:center;gap:14px;}
/* The platform's social markup brings its own colours; here they sit on a
   dark photograph, so they are flattened to white outlines. */
.nd-footer-social a{display:inline-grid;place-items:center;width:38px;height:38px;
  border-radius:50%;background:transparent !important;border:1px solid rgba(255,255,255,.5);
  color:#fff !important;transition:background .18s ease,border-color .18s ease;}
.nd-footer-social a:hover{background:var(--accent) !important;border-color:var(--accent);
  color:var(--ink) !important;}
.nd-footer-social svg{width:17px;height:17px;fill:currentColor;}
.nd-footer-social img{max-width:17px;filter:brightness(0) invert(1);}

.nd-footer-mail{display:inline-flex;align-items:center;justify-content:center;
  padding:.9rem 1.6rem;border-radius:var(--radius);background:var(--primary);color:#fff;
  font-weight:700;font-size:.98rem;word-break:break-all;}
.nd-footer-mail:hover{background:var(--primary-dark);}
.nd-footer-tel{display:block;margin-top:22px;font-size:clamp(1.3rem,2vw,1.75rem);
  font-weight:800;color:#fff;letter-spacing:-.01em;}

.nd-footer-bottom{position:relative;z-index:1;margin-top:86px;padding-top:22px;
  border-top:1px solid rgba(255,255,255,.16);display:flex;align-items:center;
  justify-content:space-between;gap:18px;flex-wrap:wrap;
  font-size:.88rem;color:rgba(255,255,255,.72);}
.nd-footer-links{display:flex;align-items:center;flex-wrap:wrap;}
.nd-footer-links a{position:relative;padding:0 18px 0 0;margin-right:18px;color:#fff;
  font-weight:600;}
.nd-footer-links a::after{content:"";position:absolute;right:0;top:50%;width:6px;height:6px;
  margin-top:-3px;border-radius:50%;background:var(--accent);}
.nd-footer-links a:last-child{margin-right:0;padding-right:0;}
.nd-footer-links a:last-child::after{display:none;}
.nd-footer-links a:hover{color:var(--accent);}

/* A tenant that has not filled in an address, a phone or any social profile
   should not be left with a heading standing over nothing. Each empty piece
   removes itself, and a column with nothing left in it goes too. */
.nd-footer-col address:empty,
.nd-footer-social:empty,
.nd-footer-tel:empty{display:none;}
.nd-footer-col:has(address:empty):has(.nd-footer-social:empty){display:none;}

/* Responsive for the homepage rebuild. Kept together at the very bottom. */
@media (max-width:1024px){
  .nd-pkg-grid,.nd-svc-grid,.nd-plans{grid-template-columns:repeat(2,1fr);}
  .nd-plan-featured{grid-column:span 2;}
  .nd-split{gap:40px;}
  .nd-blog{grid-template-columns:1fr;}
}
@media (max-width:820px){
  .nd-section{padding:66px 0;}
  .nd-hero{padding:96px 0 130px;min-height:clamp(440px,64vh,560px);}
  .nd-split{grid-template-columns:1fr;}
  .nd-split-flip .nd-split-media{order:0;}
  .nd-head-row{flex-direction:column;align-items:flex-start;}
  .nd-arrows{display:none;}
}
@media (max-width:640px){
  .nd-pkg-grid,.nd-svc-grid,.nd-plans{grid-template-columns:1fr;}
  .nd-plan-featured{grid-column:auto;}
  .nd-searchband{margin-top:-56px;}
  .nd-searchband .container{width:calc(100% - 28px);}
  /* The booking widget carries its own widths from the engine stylesheet.
     On a narrow screen those push the card past the viewport, and the body
     clips overflow, so the right edge of the card simply disappears. Nothing
     inside it is allowed to be wider than the card. */
  .nd-searchcard{padding:14px;overflow:hidden;}
  .nd-searchcard .abe-shortcode-wrap,
  .nd-searchcard .abe-search-widget,
  .nd-searchcard .abe-search-widget-body,
  .nd-searchcard .abe-hero-search{max-width:100%;min-width:0;}
  .nd-cta{padding:88px 0;}
  .nd-rail{grid-auto-columns:82%;}
  .nd-post-stack .nd-post{grid-template-columns:110px 1fr;}
  .nd-post-stack .nd-post img{min-height:104px;}
}

/* Header and hero, narrow screens. */
@media (max-width:1180px){
  .nd-nav a{padding:0 14px;font-size:.94rem;}
  .nd-header-cta{padding:.8rem 1.4rem;}
}
@media (max-width:1024px){
  .nd-hero-inner{grid-template-columns:1fr;gap:44px;}
  .nd-hero-art{min-height:460px;max-width:620px;}
  .nd-hero{padding:56px 0 170px;}
}
@media (max-width:900px){
  /* The middle of the bar cannot hold six links, so it becomes the drop-down
     the burger already opens. */
  .nd-header-inner{min-height:72px;gap:12px;flex-wrap:wrap;}
  .nd-nav{position:absolute;left:0;right:0;top:100%;z-index:60;display:none;
    flex-direction:column;align-items:stretch;justify-content:flex-start;
    background:var(--panel);box-shadow:var(--shadow-soft);padding:8px 0;}
  .nd-nav.is-open{display:flex;}
  .nd-nav a{padding:14px 22px;}
  .nd-nav a + a::before{display:none;}
  .nd-header{position:sticky;top:0;}
  .nd-header-inner{position:relative;}
  .nd-nav{width:100%;}
}
@media (min-width:901px){
  .nd-burger{display:none !important;}
}
/* The theme's own .menu-toggle rule hides the button outright and this one
   carries the same weight, so on a phone it has to say so plainly. */
@media (max-width:900px){
  .nd-header .nd-burger{display:inline-flex !important;background:transparent;
    border-radius:8px;padding:0 10px;}
  .nd-header .nd-burger span{margin:0;background:var(--ink) !important;height:3px !important;width:24px;}
}
@media (max-width:640px){
  .nd-header-inner{width:calc(100% - 28px);}
  .nd-header-cta{padding:.72rem 1.1rem;font-size:.88rem;}
  .nd-hero{padding:40px 0 128px;}
  .nd-hero-art{min-height:340px;}
  .nd-arch-lead{left:0;top:-16px;width:58%;height:118%;}
  .nd-arch-trail{width:48%;top:34px;height:120%;}
  .nd-searchband{margin-top:-84px;}
}

/* Footer, narrow screens. */
@media (max-width:1024px){
  .nd-footer-inner{grid-template-columns:1fr 1fr;gap:40px;}
  .nd-footer-lead{grid-column:1 / -1;}
  .nd-footer-lead h2{max-width:22ch;}
}
@media (max-width:640px){
  .nd-footer{padding:66px 0 28px;}
  .nd-footer-inner{grid-template-columns:1fr;gap:34px;}
  .nd-footer-bottom{margin-top:52px;flex-direction:column;align-items:flex-start;}
  .nd-footer-mail{width:100%;}
}
