/* ═══════════════════════════════════════════════════════════
   BRAND TOKENS — Bright Caribbean palette
   Fonts: Forum (serif heading) · Avenir LT Light / Nunito (body)
═══════════════════════════════════════════════════════════ */
:root {
  --ocean:   #007587;   /* bright Caribbean teal */
  --deep:    #005A68;   /* deeper teal for hover states */
  --sand:    #D4A052;   /* warm sandy gold */
  --navy:    #1E2D32;   /* deep ocean dark — text/footer */
  --text:    #2C3E45;   /* primary body text */
  --muted:   #4A6A78;   /* muted blue-gray — darkened to meet WCAG AA 4.5:1 on white */
  --light:   #E4F4F8;   /* pale sky blue — section bg */
  --cream:   #FAF7F2;   /* warm cream — alt section bg */
  --white:   #FFFFFF;
  --crimson: #C2274B;   /* used sparingly — one CTA only */

  --serif: 'Forum', Georgia, serif;
  --sans:  'avenir-lt-w01_35-light1475496', 'Nunito', system-ui, sans-serif;

  --radius: 8px;
  --shadow: 0 2px 18px rgba(0,107,128,0.09), 0 1px 4px rgba(0,0,0,0.04);
  --shadow-lg: 0 16px 56px rgba(30,45,50,0.15), 0 4px 14px rgba(0,0,0,0.06);
}

/* ═══════════════════════════════════════════════════════════ RESET */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body { font-family: var(--sans); color: var(--text); background: var(--white); line-height: 1.65; overflow-x: hidden; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
img { max-width: 100%; display: block; }
/* Link color uses --deep (#006B80) which passes WCAG AA 6.2:1 on white */
a { color: var(--deep); text-decoration: none; }
a:hover { color: var(--ocean); text-decoration: underline; }

/* ── SKIP LINK (ADA) ── */
.skip-link {
  position: absolute; top: -100%; left: 1rem;
  background: var(--navy); color: var(--white);
  padding: 0.75rem 1.25rem; border-radius: 0 0 8px 8px;
  font-size: 0.875rem; font-weight: 700;
  z-index: 9999; text-decoration: none;
  transition: top 0.2s;
}
.skip-link:focus { top: 0; text-decoration: underline; }

/* ── FOCUS STYLES (ADA WCAG 2.4.7) ── */
:focus-visible {
  outline: 3px solid var(--sand);
  outline-offset: 3px;
  border-radius: 2px;
}
button:focus-visible, a:focus-visible {
  outline: 3px solid var(--sand);
  outline-offset: 3px;
}

/* ── REDUCED MOTION (ADA WCAG 2.3.3) ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
  html { scroll-behavior: auto; }
}
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 400; line-height: 1.15; letter-spacing: -0.01em; }
.container { max-width: 1180px; margin: 0 auto; padding: 0 2rem; }
.section { padding: 112px 0; }

/* ── LABELS ── */
.label {
  font-family: var(--sans);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ocean);
  display: block;
  margin-bottom: 0.65rem;
}
.label-light { color: rgba(255,255,255,0.65); }

/* ── BUTTONS ── */
.btn {
  display: inline-block;
  padding: 15px 36px;
  border-radius: 50px;
  font-family: var(--sans);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.28s ease;
  border: 2px solid transparent;
}
.btn-ocean {
  background: var(--ocean);
  color: var(--white);
  border-color: var(--ocean);
}
.btn-ocean:hover { background: var(--deep); border-color: var(--deep); color: var(--white); }
.btn-outline-white {
  background: transparent;
  color: var(--white);
  border-color: rgba(255,255,255,0.65);
}
.btn-outline-white:hover { background: var(--white); color: var(--navy); border-color: var(--white); }
.btn-sand {
  background: var(--sand);
  color: var(--white);
  border-color: var(--sand);
}
.btn-sand:hover { background: #b8882e; border-color: #b8882e; color: var(--white); }
/* crimson used ONLY for the single hero investor CTA */
.btn-crimson {
  background: var(--crimson);
  color: var(--white);
  border-color: var(--crimson);
}
.btn-crimson:hover { background: #a01e3c; border-color: #a01e3c; color: var(--white); }

/* ═══════════════════════════════════════════════════════════
   NAV
═══════════════════════════════════════════════════════════ */
#nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  background: rgba(30,45,50,0.96);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255,255,255,0.07);
}
#nav .inner {
  display: flex; align-items: center; justify-content: space-between;
  height: 78px; max-width: 1180px; margin: 0 auto; padding: 0 2rem;
}
.nav-brand {
  display: flex; align-items: center;
}
.nav-logo-svg {
  height: 52px;
  width: auto;
  display: block;
}
.nav-links { display: flex; align-items: center; gap: 1.75rem; list-style: none; }
.nav-links a {
  color: rgba(255,255,255,0.75);
  font-size: 0.78rem; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  transition: color 0.2s;
}
.nav-links a:hover { color: var(--sand); }
.nav-cta {
  background: var(--ocean); color: var(--white) !important;
  padding: 9px 22px; border-radius: 50px;
}
.nav-cta:hover { background: var(--deep) !important; }

/* Hamburger */
.nav-hamburger {
  display: none;
  flex-direction: column; justify-content: center; align-items: center;
  gap: 5px; width: 40px; height: 40px;
  background: none; border: none; cursor: pointer; padding: 4px;
  z-index: 1001;
}
.nav-hamburger span {
  display: block; width: 24px; height: 2px;
  background: var(--white); border-radius: 2px;
  transition: all 0.25s ease;
  transform-origin: center;
}
.nav-hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-hamburger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.nav-hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Mobile drawer */
.mobile-menu {
  display: none;
  position: fixed; top: 78px; left: 0; right: 0;
  background: rgba(18,32,40,0.98);
  backdrop-filter: blur(12px);
  z-index: 999;
  padding: 1.5rem 2rem 2rem;
  border-top: 1px solid rgba(255,255,255,0.08);
  transform: translateY(-8px); opacity: 0;
  transition: transform 0.25s ease, opacity 0.25s ease;
}
.mobile-menu.open {
  display: block;
  transform: translateY(0); opacity: 1;
}
.mobile-menu ul {
  list-style: none; display: flex; flex-direction: column; gap: 0;
}
.mobile-menu ul li a {
  display: block; padding: 1rem 0;
  color: rgba(255,255,255,0.8);
  font-size: 0.85rem; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  text-decoration: none; transition: color 0.2s;
}
.mobile-menu ul li a:hover { color: var(--ocean); }
.mobile-menu ul li:last-child a {
  margin-top: 1rem; border: none;
  background: var(--ocean); color: var(--white) !important;
  text-align: center; border-radius: 50px; padding: 0.85rem 1.5rem;
}

/* ═══════════════════════════════════════════════════════════
   HERO
═══════════════════════════════════════════════════════════ */
#hero {
  min-height: 100vh;
  display: flex; align-items: center;
  position: relative; overflow: hidden;
  background:
    linear-gradient(160deg,
      rgba(0,107,128,0.80) 0%,
      rgba(0,145,168,0.55) 50%,
      rgba(30,45,50,0.72) 100%),
    url('https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&w=1920&q=80') center/cover no-repeat;
}
#hero::after {
  content: '';
  position: absolute; bottom: -1px; left: 0; right: 0;
  height: 80px;
  background: var(--white);
  clip-path: ellipse(60% 100% at 50% 100%);
}
.hero-wrap {
  position: relative; z-index: 1;
  max-width: 1180px; margin: 0 auto; padding: 0 2rem;
  padding-top: 70px;
  display: grid; grid-template-columns: 1.1fr 0.9fr;
  gap: 4rem; align-items: center; min-height: 100vh;
}
.hero-eyebrow {
  font-size: 0.7rem; font-weight: 800; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--sand);
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 1.25rem;
}
.hero-eyebrow::before { content: ''; width: 28px; height: 2px; background: var(--sand); display: inline-block; }
.hero-text h1 {
  font-size: clamp(2.6rem, 4.5vw, 4rem);
  color: var(--white); font-weight: 400;
  line-height: 1.08; margin-bottom: 1.25rem;
}
.hero-text h1 em { font-style: italic; color: var(--sand); }
.hero-text > p {
  font-size: 1.05rem; color: rgba(255,255,255,0.82);
  max-width: 500px; margin-bottom: 2.25rem; line-height: 1.78;
}
.hero-ctas { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 2.75rem; }
.hero-ribbon {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 0; padding-top: 2rem;
  border-top: 1px solid rgba(255,255,255,0.18);
}
.ribbon-item { text-align: center; padding: 0 0.5rem; }
.ribbon-item + .ribbon-item { border-left: 1px solid rgba(255,255,255,0.14); }
.ribbon-item .rnum {
  font-family: var(--serif);
  font-size: 2rem; color: var(--sand); line-height: 1;
}
.ribbon-item .rlbl {
  font-size: 0.65rem; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: rgba(255,255,255,0.55);
  margin-top: 4px;
}
.hero-cards { display: flex; flex-direction: column; gap: 1.25rem; }
.hcard {
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.18);
  backdrop-filter: blur(12px);
  border-radius: 16px; padding: 1.75rem;
  transition: all 0.32s ease; cursor: pointer;
}
.hcard:hover { background: rgba(255,255,255,0.17); border-color: var(--sand); transform: translateY(-3px); }
.hcard-icon { font-size: 1.8rem; margin-bottom: 0.85rem; }
.hcard h3 { font-family: var(--serif); font-size: 1.45rem; color: var(--white); margin-bottom: 0.4rem; }
.hcard p { font-size: 0.85rem; color: rgba(255,255,255,0.72); line-height: 1.65; margin-bottom: 1rem; }
.hcard-arrow {
  font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--sand);
  display: flex; align-items: center; gap: 6px;
}
.hcard-arrow::after { content: '→'; transition: transform 0.2s; }
.hcard:hover .hcard-arrow::after { transform: translateX(4px); }

/* ═══════════════════════════════════════════════════════════
   REGION INTRO
═══════════════════════════════════════════════════════════ */
#region { background: var(--white); }
.region-header { text-align: center; max-width: 780px; margin: 0 auto 4rem; }
.region-header h2 { font-size: clamp(2.2rem, 3.5vw, 3.2rem); color: var(--navy); margin-bottom: 1rem; }
.region-header p { font-size: 1.05rem; color: var(--muted); line-height: 1.8; }
.area-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem;
}
.area-card {
  border-radius: 14px; overflow: hidden;
  box-shadow: var(--shadow);
  background: var(--white);
  border: 1px solid rgba(0,145,168,0.12);
  transition: all 0.28s;
}
.area-card:hover { transform: translateY(-7px); box-shadow: var(--shadow-lg); border-color: rgba(0,145,168,0.25); }
.area-thumb {
  height: 200px;
  background-size: cover;
  background-position: center;
  position: relative; overflow: hidden;
}
/* Subtle teal gradient overlay so area label stays readable */
.area-thumb::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 40%, rgba(0,107,128,0.45) 100%);
}
/* Cabarete — kiteboarding, Dominican Republic */
.area-thumb.ocean-bg {
  background-image: url('https://images.unsplash.com/photo-1650127252884-80de29641e4d?auto=format&fit=crop&w=800&q=80');
}
/* Sosúa — people on beach, DR */
.area-thumb.sand-bg {
  background-image: url('https://images.unsplash.com/photo-1596396967820-414435bbff2e?auto=format&fit=crop&w=800&q=80');
}
/* Playa Dorada — tropical pool & palm trees resort */
.area-thumb.green-bg {
  background-image: url('https://images.unsplash.com/photo-1681171619326-32af508ae648?auto=format&fit=crop&w=800&q=80');
}
/* Puerto Plata City — aerial view of Fortaleza San Felipe & the city */
.area-thumb.blue-bg {
  background-image: url('https://images.unsplash.com/photo-1689373161937-80a6e1301b1d?auto=format&fit=crop&w=800&q=80');
  background-position: center 30%;
}
/* Costambar — ocean view from balcony */
.area-thumb.teal-bg {
  background-image: url('https://images.unsplash.com/photo-1648048326573-9f6331f0aed4?auto=format&fit=crop&w=800&q=80');
}
/* Luperón — boats anchored in a bay with lush green hills */
.area-thumb.rose-bg {
  background-image: url('https://images.unsplash.com/photo-1771373447088-a0d8d75703b0?auto=format&fit=crop&w=800&q=80');
}
.area-body { padding: 1.5rem; }
.area-tag {
  font-size: 0.62rem; font-weight: 800; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ocean);
  margin-bottom: 0.5rem; display: block;
}
.area-body h3 { font-size: 1.2rem; color: var(--navy); margin-bottom: 0.4rem; }
.area-body p { font-size: 0.83rem; color: var(--muted); line-height: 1.65; margin-bottom: 1rem; }
.area-pills { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.pill {
  font-size: 0.62rem; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  padding: 3px 9px; border-radius: 50px;
  background: var(--light); color: var(--ocean);
}

/* ═══════════════════════════════════════════════════════════
   CONFOTUR STRIP
═══════════════════════════════════════════════════════════ */
#confotur {
  background: linear-gradient(135deg, #0091A8 0%, #006B80 100%);
  padding: 56px 0;
}
.confotur-wrap {
  display: flex; align-items: center; gap: 2.5rem;
}
.confotur-badge {
  flex-shrink: 0;
  width: 100px; height: 100px; border-radius: 50%;
  background: rgba(255,255,255,0.15);
  border: 2px solid rgba(255,255,255,0.4);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  text-align: center;
}
.confotur-badge .icon { font-size: 1.6rem; }
.confotur-badge .bl {
  font-size: 0.48rem; font-weight: 800;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: rgba(255,255,255,0.8); margin-top: 4px;
}
.confotur-copy h3 {
  font-size: 1.7rem; color: var(--white);
  margin-bottom: 0.4rem;
}
.confotur-copy h3 strong { color: var(--sand); }
.confotur-copy p { color: rgba(255,255,255,0.8); font-size: 0.92rem; max-width: 680px; margin-bottom: 1rem; }
.perks { display: flex; gap: 1.5rem; flex-wrap: wrap; }
.perk {
  display: flex; align-items: center; gap: 6px;
  font-size: 0.8rem; color: rgba(255,255,255,0.92); font-weight: 700;
}
.perk::before { content: '✓'; color: var(--sand); font-weight: 900; }

/* ═══════════════════════════════════════════════════════════
   HOW IT WORKS
═══════════════════════════════════════════════════════════ */
#how { background: var(--cream); }
.section-head { text-align: center; margin-bottom: 3.5rem; }
.section-head h2 { font-size: clamp(2rem, 3vw, 2.8rem); color: var(--navy); margin-bottom: 0.75rem; }
.section-head p { font-size: 0.98rem; color: var(--muted); max-width: 600px; margin: 0 auto; }
.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; position: relative; }
.step {
  background: var(--white); border-radius: 16px;
  padding: 2.25rem 1.75rem; box-shadow: var(--shadow);
  transition: all 0.28s;
  border: 1px solid rgba(0,145,168,0.08);
}
.step:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.step-n {
  width: 48px; height: 48px; border-radius: 50%;
  background: var(--ocean); color: var(--white);
  font-family: var(--serif); font-size: 1.3rem;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 1.1rem; position: relative; z-index: 1;
  border: 3px solid var(--white);
  box-shadow: 0 0 0 3px var(--ocean);
}
.step h4 { font-size: 1.1rem; color: var(--navy); margin-bottom: 0.5rem; }
.step p { font-size: 0.83rem; color: var(--muted); line-height: 1.7; }

/* Revenue streams */
.revenue { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; margin-top: 3.5rem; }
.rev-card {
  background: var(--white); border-radius: 14px;
  padding: 1.75rem; box-shadow: var(--shadow);
  border-left: 4px solid var(--ocean);
  display: flex; gap: 1.25rem; align-items: flex-start;
}
.rev-card:nth-child(even) { border-left-color: var(--sand); }
.rev-icon { font-size: 1.8rem; flex-shrink: 0; }
.rev-text h4 { font-size: 1rem; color: var(--navy); margin-bottom: 0.35rem; }
.rev-text p { font-size: 0.82rem; color: var(--muted); line-height: 1.65; }

/* ═══════════════════════════════════════════════════════════
   INVESTOR RETURNS
═══════════════════════════════════════════════════════════ */
#returns { background: var(--light); }
.returns-wrap {
  display: grid; grid-template-columns: 1.2fr 1fr; gap: 4rem; align-items: center;
}
.returns-copy h2 { font-size: clamp(2rem, 3vw, 2.8rem); color: var(--navy); margin-bottom: 1rem; }
.returns-copy h2 em { font-style: italic; color: var(--ocean); }
.returns-copy p { color: var(--muted); line-height: 1.8; margin-bottom: 1.5rem; }
.returns-bullets { list-style: none; display: flex; flex-direction: column; gap: 0.75rem; margin-bottom: 2rem; }
.returns-bullets li {
  display: flex; gap: 10px; align-items: flex-start;
  font-size: 0.86rem; color: var(--text);
}
.returns-bullets li::before { content: '→'; color: var(--ocean); font-weight: 700; flex-shrink: 0; }
.scenario {
  background: var(--navy);
  border-radius: 16px; padding: 2rem;
  box-shadow: var(--shadow-lg);
}
.scenario h4 {
  font-size: 0.65rem; font-weight: 800; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--sand); margin-bottom: 1.5rem;
}
.sc-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 0.65rem 0; border-bottom: 1px solid rgba(255,255,255,0.07);
}
.sc-row:last-child { border-bottom: none; }
.sc-row .sl { font-size: 0.8rem; color: rgba(255,255,255,0.6); }
.sc-row .sv { font-family: var(--serif); font-size: 1.1rem; color: var(--white); }
.sc-row.hl .sl { color: var(--sand); font-weight: 700; }
.sc-row.hl .sv { color: var(--sand); font-size: 1.35rem; }

/* ═══════════════════════════════════════════════════════════
   FEATURED PROPERTIES
═══════════════════════════════════════════════════════════ */
#properties { background: var(--white); }
.props { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.75rem; }
.prop {
  border-radius: 14px; overflow: hidden;
  box-shadow: var(--shadow); background: var(--white);
  border: 1px solid rgba(0,145,168,0.1);
  transition: all 0.28s; position: relative; cursor: pointer;
}
.prop:hover { transform: translateY(-7px); box-shadow: var(--shadow-lg); border-color: rgba(0,145,168,0.22); }
/* Full-card clickable overlay */
.prop-overlay-link {
  position: absolute; inset: 0; z-index: 1;
  border-radius: 14px; display: block;
}
/* Property photo */
.prop-photo-wrap {
  position: relative; height: 210px; overflow: hidden;
}
.prop-photo-wrap img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 0.45s ease;
}
.prop:hover .prop-photo-wrap img { transform: scale(1.06); }
/* Tags float over the photo */
.prop-tags {
  position: absolute; top: 12px; left: 12px;
  display: flex; gap: 0.4rem; flex-wrap: wrap; z-index: 2;
}
.tag {
  font-size: 0.62rem; font-weight: 800;
  letter-spacing: 0.08em; text-transform: uppercase;
  padding: 3px 9px; border-radius: 50px;
  backdrop-filter: blur(4px);
}
.tg-blue  { background: rgba(228,244,248,0.92); color: var(--ocean); }
.tg-sand  { background: rgba(254,245,232,0.92); color: #B07820; }
.tg-navy  { background: rgba(30,45,50,0.72); color: #fff; }
.prop-body { padding: 1.25rem 1.5rem 0.75rem; }
.prop-price { font-family: var(--serif); font-size: 1.55rem; color: var(--navy); margin-bottom: 0.2rem; }
.prop-name  { font-size: 0.93rem; font-weight: 700; color: var(--navy); margin-bottom: 0.35rem; }
.prop-loc   { font-size: 0.78rem; color: var(--ocean); font-weight: 600; margin-bottom: 0.35rem; }
.prop-desc  { font-size: 0.8rem; color: var(--muted); line-height: 1.6; margin-bottom: 0; }
/* Location map embed */
.prop-map-wrap {
  position: relative; z-index: 2; height: 150px;
  border-top: 1px solid var(--light); overflow: hidden;
}
.prop-map-wrap iframe {
  width: 100%; height: 100%; border: none; display: block;
}
.prop-map-badge {
  position: absolute; top: 8px; right: 8px;
  font-size: 0.6rem; font-weight: 800; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--navy);
  background: rgba(255,255,255,0.92); padding: 3px 8px;
  border-radius: 50px; pointer-events: none; z-index: 3;
  box-shadow: 0 1px 4px rgba(0,0,0,0.12);
}
/* Card footer */
.prop-foot {
  display: flex; justify-content: space-between; align-items: center;
  padding: 0.75rem 1.5rem 1.1rem; border-top: 1px solid var(--light);
}
.prop-cta {
  font-size: 0.73rem; font-weight: 700; letter-spacing: 0.07em;
  text-transform: uppercase; color: var(--ocean);
  transition: color 0.2s;
}
.prop:hover .prop-cta { color: var(--sand); }
.prop-foot .prop-tier { font-size: 0.73rem; color: var(--muted); }

/* ═══════════════════════════════════════════════════════════
   PROPERTY BUYERS
═══════════════════════════════════════════════════════════ */
#buy { background: var(--cream); }
.buy-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.buy-copy h2 { font-size: clamp(1.9rem, 3vw, 2.7rem); color: var(--navy); margin-bottom: 1rem; }
.buy-copy h2 em { font-style: italic; color: var(--ocean); }
.buy-copy p { color: var(--muted); line-height: 1.8; margin-bottom: 1.5rem; }
.buy-list { list-style: none; display: flex; flex-direction: column; gap: 0.7rem; margin-bottom: 2rem; }
.buy-list li { display: flex; gap: 10px; align-items: center; font-size: 0.88rem; color: var(--text); }
.buy-list li .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ocean); flex-shrink: 0; }
.buy-panel {
  background: linear-gradient(140deg, #0091A8 0%, #006B80 100%);
  border-radius: 18px; padding: 2.5rem; color: var(--white);
}
.buy-panel h4 { font-size: 1.45rem; color: var(--white); margin-bottom: 0.4rem; }
.buy-panel .sub {
  font-size: 0.7rem; font-weight: 800; letter-spacing: 0.15em;
  text-transform: uppercase; color: rgba(255,255,255,0.6); margin-bottom: 2rem;
}
.svc-list { list-style: none; display: flex; flex-direction: column; gap: 1rem; }
.svc-list li {
  display: flex; gap: 12px; align-items: center;
  font-size: 0.87rem; color: rgba(255,255,255,0.88);
}
.svc-icon {
  width: 36px; height: 36px; border-radius: 8px;
  background: rgba(255,255,255,0.12);
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem; flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════════════
   VETERANS
═══════════════════════════════════════════════════════════ */
#veterans { background: var(--light); }
#veterans .section-header h2 { color: var(--navy); }
#veterans .section-header h2 em { font-style: italic; color: var(--ocean); }
#veterans .section-header p { color: var(--muted); }
.vets-benefits {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem; margin-bottom: 3rem;
}
.vet-card {
  background: var(--white);
  border: 1px solid rgba(0,145,168,0.12);
  border-radius: 16px; padding: 1.75rem;
  box-shadow: var(--shadow);
  transition: all 0.28s;
}
.vet-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.vet-card-icon { font-size: 2rem; margin-bottom: 0.8rem; }
.vet-card h4 { font-size: 1rem; color: var(--navy); margin-bottom: 0.5rem; }
.vet-card p { font-size: 0.84rem; color: var(--muted); line-height: 1.7; margin: 0; }
.vets-residency {
  background: var(--white);
  border: 1px solid rgba(0,145,168,0.15);
  border-radius: 18px; padding: 2.5rem;
  margin-bottom: 3rem;
  box-shadow: var(--shadow);
}
.vets-residency h3 { font-size: 1.35rem; color: var(--navy); margin-bottom: 0.5rem; }
.vets-residency .res-sub {
  font-size: 0.7rem; font-weight: 800; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--muted); margin-bottom: 1.5rem;
}
.res-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.res-item { display: flex; gap: 10px; align-items: flex-start; }
.res-check { color: var(--ocean); font-size: 1rem; flex-shrink: 0; margin-top: 0.1rem; }
.res-text { font-size: 0.85rem; color: var(--text); line-height: 1.6; }
.res-text strong { color: var(--navy); }
.vets-cta-row { text-align: center; }

/* ═══════════════════════════════════════════════════════════
   ABOUT / PARTNERS
═══════════════════════════════════════════════════════════ */
#about { background: var(--white); }
.about-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; }
.about-visual {
  position: relative;
}
.about-main {
  width: 100%; aspect-ratio: 4/3; border-radius: 20px;
  background: linear-gradient(145deg, #004A5C 0%, #0091A8 50%, #00B4CF 100%);
  display: flex; align-items: center; justify-content: center;
  font-size: 5rem; box-shadow: var(--shadow-lg); overflow: hidden;
  position: relative;
}
.about-main::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 25% 75%, rgba(212,160,82,0.28) 0%, transparent 55%);
}
.about-badge {
  position: absolute; bottom: -1.5rem; right: -1.5rem;
  width: 46%; aspect-ratio: 1; border-radius: 16px;
  background: var(--sand);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  text-align: center; padding: 1.5rem;
  box-shadow: var(--shadow);
}
.about-badge .bn { font-family: var(--serif); font-size: 2.6rem; color: var(--white); line-height: 1; }
.about-badge .bs { font-size: 0.65rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.85); margin-top: 4px; }
.about-copy h2 { font-size: clamp(2rem, 3vw, 2.8rem); color: var(--navy); margin-bottom: 1rem; }
.about-copy h2 em { font-style: italic; color: var(--ocean); }
.about-copy p { color: var(--muted); line-height: 1.8; margin-bottom: 1.1rem; }
.pillars { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1.75rem; }
.pl { display: flex; gap: 10px; align-items: flex-start; }
.pl-icon {
  width: 38px; height: 38px; border-radius: 8px;
  background: var(--light); display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem; flex-shrink: 0;
}
.pl-text strong { display: block; font-size: 0.8rem; font-weight: 700; color: var(--navy); text-transform: uppercase; letter-spacing: 0.05em; }
.pl-text span { font-size: 0.77rem; color: var(--muted); }

/* Team cards */
.team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; margin-top: 3.5rem; }
.team-card {
  text-align: center; padding: 2rem 1.25rem;
  border-radius: 14px; background: var(--light);
  transition: all 0.25s;
}
.team-card:hover { background: var(--ocean); transform: translateY(-4px); }
.team-card:hover h4 { color: var(--white); }
.team-card:hover .role { color: var(--sand); }
.team-card:hover p { color: rgba(255,255,255,0.75); }
.ta {
  width: 76px; height: 76px; border-radius: 50%;
  background: linear-gradient(135deg, var(--ocean), var(--deep));
  margin: 0 auto 1.1rem;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.7rem; color: var(--white);
  border: 3px solid var(--white); box-shadow: var(--shadow);
}
.team-card h4 { font-size: 1rem; color: var(--navy); margin-bottom: 0.2rem; transition: color 0.25s; }
.team-card .role {
  font-size: 0.65rem; font-weight: 800; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--ocean); margin-bottom: 0.65rem; transition: color 0.25s;
}
.team-card p { font-size: 0.78rem; color: var(--muted); line-height: 1.6; transition: color 0.25s; }

/* ═══════════════════════════════════════════════════════════
   CSR
═══════════════════════════════════════════════════════════ */
#csr {
  background: linear-gradient(150deg, #E4F4F8 0%, #D0ECF4 100%);
}
.csr-head { text-align: center; margin-bottom: 3rem; }
.csr-head h2 { font-size: clamp(2rem, 3vw, 2.8rem); color: var(--navy); margin-bottom: 0.75rem; }
.csr-head p { font-size: 0.98rem; color: var(--muted); max-width: 620px; margin: 0 auto; }
.csr-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.csr-card {
  background: var(--white); border-radius: 14px;
  padding: 2rem; text-align: center;
  box-shadow: var(--shadow); transition: all 0.25s;
}
.csr-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.csr-icon { font-size: 2.4rem; margin-bottom: 1rem; }
.csr-card h4 { font-size: 1.2rem; color: var(--navy); margin-bottom: 0.5rem; }
.csr-card p { font-size: 0.83rem; color: var(--muted); line-height: 1.7; margin-bottom: 1.25rem; }
.csr-card-cta {
  display: inline-block;
  font-size: 0.72rem; font-weight: 800; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--ocean);
  border: 1.5px solid var(--ocean); border-radius: 50px;
  padding: 8px 20px; transition: all 0.22s; cursor: pointer;
  background: transparent;
  font-family: var(--sans);
}
.csr-card-cta:hover { background: var(--ocean); color: var(--white); text-decoration: none; }

/* ── TRAVEL PACKAGES ── */
.pkg-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  margin-top: 1rem;
}
.pkg-card {
  background: var(--white);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  transition: transform 0.25s, box-shadow 0.25s;
}
.pkg-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.pkg-badge {
  position: relative;
  height: 220px;
  background-size: cover;
  background-position: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  padding: 1.25rem 1.25rem 1.4rem;
  text-align: center;
  overflow: hidden;
}
.pkg-badge::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.08) 0%, rgba(0,0,0,0.68) 100%);
}
.pkg-icon { font-size: 2rem; margin-bottom: 0.4rem; position: relative; z-index: 1; }
.pkg-badge-label {
  font-family: var(--serif);
  font-size: 1.5rem;
  color: var(--white);
  letter-spacing: 0.02em;
  position: relative;
  z-index: 1;
  text-shadow: 0 2px 12px rgba(0,0,0,0.55);
  line-height: 1.2;
}
.pkg-body { padding: 1.25rem; flex: 1; display: flex; flex-direction: column; }
.pkg-tagline {
  font-size: 0.72rem;
  color: var(--muted);
  font-style: italic;
  margin-bottom: 1rem;
  line-height: 1.5;
}
.pkg-highlights {
  list-style: none;
  margin-bottom: 1.25rem;
  flex: 1;
}
.pkg-highlights li {
  font-size: 0.78rem;
  color: var(--text);
  padding: 0.35rem 0;
  border-bottom: 1px solid rgba(0,0,0,0.05);
  line-height: 1.4;
}
.pkg-highlights li:last-child { border-bottom: none; }
.pkg-cta {
  display: inline-block;
  width: 100%;
  text-align: center;
  font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--ocean);
  border: 1.5px solid var(--ocean); border-radius: 50px;
  padding: 10px 16px; transition: all 0.22s; cursor: pointer;
  background: transparent; font-family: var(--sans);
  margin-top: auto;
}
.pkg-cta:hover { background: var(--ocean); color: var(--white); }

/* Package itinerary in modal */
.pkg-itinerary { margin-bottom: 1.5rem; }
.pkg-day {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(0,0,0,0.06);
}
.pkg-day:last-child { border-bottom: none; }
.pkg-day-num {
  font-family: var(--serif);
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--ocean);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding-top: 3px;
}
.pkg-day-detail strong { display: block; color: var(--navy); font-size: 0.95rem; margin-bottom: 0.3rem; }
.pkg-day-detail p { font-size: 0.82rem; color: var(--muted); line-height: 1.7; margin: 0; }

/* Build option tiles */
.build-option {
  background: var(--light);
  border-radius: 10px;
  padding: 0.75rem 1rem;
  font-size: 0.8rem;
  color: var(--navy);
  font-weight: 600;
  transition: background 0.2s;
}
.build-option:hover { background: var(--ocean); color: var(--white); cursor: default; }

@media (max-width: 900px) { .pkg-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .pkg-grid { grid-template-columns: 1fr; } .pkg-day { grid-template-columns: 50px 1fr; } }

/* ═══════════════════════════════════════════════════════════
   MODALS — Glossary + CSR detail pages
═══════════════════════════════════════════════════════════ */
.modal-overlay {
  display: none; position: fixed; inset: 0; z-index: 9000;
  background: rgba(30,45,50,0.72); backdrop-filter: blur(6px);
  overflow-y: auto; padding: 2rem 1rem;
}
.modal-overlay.open { display: flex; align-items: flex-start; justify-content: center; }
.modal-box {
  background: var(--white); border-radius: 20px;
  max-width: 780px; width: 100%; position: relative;
  box-shadow: var(--shadow-lg); margin: auto;
  overflow: hidden;
}
.modal-header {
  background: linear-gradient(135deg, var(--navy) 0%, #0d3a47 100%);
  padding: 2.5rem 2.5rem 2rem; position: relative;
}
.modal-header .label-light { margin-bottom: 0.5rem; }
.modal-header h2 { font-family: var(--serif); font-size: clamp(1.6rem,3vw,2.2rem); color: var(--white); line-height: 1.15; }
.modal-header h2 em { font-style: italic; color: var(--sand); }
.modal-header p { font-size: 0.92rem; color: rgba(255,255,255,0.75); margin-top: 0.75rem; line-height: 1.7; max-width: 580px; }
.modal-close {
  position: absolute; top: 1.25rem; right: 1.5rem;
  background: rgba(255,255,255,0.12); border: none; color: var(--white);
  font-size: 1.2rem; width: 36px; height: 36px; border-radius: 50%;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: background 0.2s; font-family: var(--sans);
}
.modal-close:hover { background: rgba(255,255,255,0.25); }
.modal-body, .modal-content { padding: 2.5rem; }

/* Glossary styles */
.gloss-intro { font-size: 0.95rem; color: var(--muted); margin-bottom: 2rem; line-height: 1.75; }
.gloss-section-title {
  font-size: 0.65rem; font-weight: 800; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--ocean);
  margin: 2rem 0 1rem; border-bottom: 1px solid rgba(0,145,168,0.15);
  padding-bottom: 0.5rem;
}
.gloss-term {
  display: grid; grid-template-columns: 200px 1fr; gap: 1rem;
  padding: 0.85rem 0; border-bottom: 1px solid rgba(0,0,0,0.06);
  align-items: start;
}
.gloss-term:last-child { border-bottom: none; }
.gloss-key {
  font-weight: 700; color: var(--navy); font-size: 0.88rem;
  padding-top: 0.05rem;
}
.gloss-key abbr { font-size: 0.72rem; font-weight: 800; color: var(--ocean);
  letter-spacing: 0.08em; display: block; text-transform: uppercase; }
.gloss-val { font-size: 0.86rem; color: var(--text); line-height: 1.7; }
.gloss-val strong { color: var(--navy); }

/* CSR modal styles */
.csr-modal-hero {
  display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem;
}
.csr-modal-icon { font-size: 3rem; }
.csr-modal-hero h3 { font-family: var(--serif); font-size: 1.35rem; color: var(--navy); margin-bottom: 0.25rem; }
.csr-modal-hero .sub { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ocean); }
.csr-modal-body p { font-size: 0.9rem; color: var(--text); line-height: 1.8; margin-bottom: 1.1rem; }
.csr-modal-body p:last-of-type { margin-bottom: 0; }
.csr-fact-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin: 1.75rem 0; }
.csr-fact { background: var(--light); border-radius: 12px; padding: 1.1rem; text-align: center; }
.csr-fact .num { font-family: var(--serif); font-size: 1.6rem; color: var(--ocean); line-height: 1; }
.csr-fact .lbl { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-top: 4px; }
.csr-modal-cta-row { text-align: center; padding-top: 2rem; border-top: 1px solid rgba(0,0,0,0.08); margin-top: 1.75rem; }
.csr-modal-cta-row p { font-size: 0.88rem; color: var(--muted); margin-bottom: 1rem; }
.csr-modal-cta-row .btn { margin: 0 0.4rem 0.5rem; }

@media (max-width: 640px) {
  .modal-box { border-radius: 14px; }
  .modal-header { padding: 2rem 1.5rem 1.5rem; }
  .modal-body, .modal-content { padding: 1.5rem; }
  .gloss-term { grid-template-columns: 1fr; gap: 0.3rem; }
  .csr-fact-grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════
   CONTACT
═══════════════════════════════════════════════════════════ */
#contact { background: var(--white); }
.contact-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; }
.contact-copy h2 { font-size: clamp(1.9rem, 3vw, 2.6rem); color: var(--navy); margin-bottom: 1rem; }
.contact-copy p { color: var(--muted); line-height: 1.8; margin-bottom: 1.75rem; }
.tracks { display: flex; flex-direction: column; gap: 1rem; }
.track {
  background: var(--light); border-radius: 10px;
  padding: 1.1rem 1.5rem;
  display: flex; gap: 1rem; align-items: center;
  border-left: 4px solid var(--ocean);
}
.track:nth-child(2) { border-left-color: var(--sand); }
.track-icon { font-size: 1.4rem; flex-shrink: 0; }
.track-body strong { display: block; font-size: 0.8rem; font-weight: 700; color: var(--navy); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 2px; }
.track-body span { font-size: 0.78rem; color: var(--muted); }
.contact-details { margin-top: 1.75rem; display: flex; flex-direction: column; gap: 0.55rem; }
.contact-details a, .contact-details span {
  font-size: 0.87rem; color: var(--ocean);
  display: flex; align-items: center; gap: 8px;
}
.notice {
  margin-top: 1.75rem; padding: 1rem 1.25rem;
  background: var(--light); border-radius: 10px;
  border-left: 3px solid var(--sand);
}
.notice p { font-size: 0.72rem; color: var(--muted); line-height: 1.7; }
.notice strong { color: var(--navy); }
/* Form */
.contact-form {
  background: var(--white); border-radius: 18px;
  padding: 2.5rem; box-shadow: var(--shadow-lg);
  border: 1px solid rgba(0,145,168,0.1);
}
.contact-form h3 { font-size: 1.5rem; color: var(--navy); margin-bottom: 1.5rem; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1rem; }
.fg { display: flex; flex-direction: column; gap: 5px; margin-bottom: 1rem; }
.fg label { font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--navy); }
.fg input, .fg select, .fg textarea {
  width: 100%; padding: 12px 14px;
  border: 1.5px solid #D8ECF0; border-radius: var(--radius);
  font-family: var(--sans); font-size: 0.87rem; color: var(--text);
  background: var(--cream); outline: none; transition: border-color 0.2s;
}
.fg input:focus, .fg select:focus, .fg textarea:focus {
  border-color: var(--ocean); background: var(--white);
}
.fg textarea { resize: vertical; min-height: 100px; }
.form-note { font-size: 0.7rem; color: var(--muted); margin-top: 0.75rem; line-height: 1.6; }

/* ═══════════════════════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════════════════════ */
#footer { background: var(--navy); color: var(--white); padding: 64px 0 28px; }
.footer-grid {
  display: grid; grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 3rem; padding-bottom: 2.5rem;
  border-bottom: 1px solid rgba(255,255,255,0.09);
}
.fbrand .wm {
  font-family: var(--serif); font-size: 1.4rem; color: var(--white);
  display: block; margin-bottom: 0.9rem; line-height: 1;
}
.fbrand .wm span {
  display: block; font-size: 0.52rem; font-family: var(--sans);
  font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--sand); margin-top: 3px;
}
.fbrand p { font-size: 0.81rem; color: rgba(255,255,255,0.5); line-height: 1.75; margin-bottom: 1.5rem; }
.social-row { display: flex; gap: 0.6rem; }
.sb {
  width: 34px; height: 34px; border-radius: 7px;
  background: rgba(255,255,255,0.08);
  display: flex; align-items: center; justify-content: center;
  font-size: 0.95rem; color: var(--white); transition: background 0.2s;
}
.sb:hover { background: var(--ocean); color: var(--white); }
.fcol h5 {
  font-size: 0.65rem; font-weight: 800; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--sand); margin-bottom: 1.1rem;
}
.fcol ul { list-style: none; display: flex; flex-direction: column; gap: 0.55rem; }
.fcol ul a { font-size: 0.8rem; color: rgba(255,255,255,0.55); transition: color 0.2s; }
.fcol ul a:hover { color: var(--sand); }
.footer-btm {
  display: flex; justify-content: space-between; align-items: flex-start;
  padding-top: 1.75rem; gap: 2rem;
}
.footer-btm p { font-size: 0.72rem; color: rgba(255,255,255,0.3); }
.footer-btm .disc { max-width: 500px; text-align: right; line-height: 1.5; }

/* ═══════════════════════════════════════════════════════════
   FADE-IN
═══════════════════════════════════════════════════════════ */
.fi { opacity: 0; transform: translateY(22px); transition: opacity 0.6s ease, transform 0.6s ease; }
.fi.on { opacity: 1; transform: none; }

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .hero-wrap { grid-template-columns: 1fr; padding-top: 110px; }
  .hero-cards { display: grid; grid-template-columns: 1fr 1fr; }
  .hero-ribbon { grid-template-columns: repeat(4,1fr); }
  .area-grid { grid-template-columns: repeat(2,1fr); }
  .about-wrap, .buy-wrap, .returns-wrap, .contact-wrap { grid-template-columns: 1fr; gap: 3rem; }
  .vets-benefits { grid-template-columns: 1fr 1fr; }
  .res-grid { grid-template-columns: 1fr; }
  .steps { grid-template-columns: repeat(2,1fr); }
  .steps::before { display: none; }
  .team-grid { grid-template-columns: repeat(2,1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
}
@media (max-width: 640px) {
  .section { padding: 64px 0; }
  .hero-cards { grid-template-columns: 1fr; }
  .hero-ribbon { grid-template-columns: 1fr 1fr; gap: 1rem; }
  .area-grid { grid-template-columns: 1fr; }
  .props { grid-template-columns: 1fr; }
  .revenue { grid-template-columns: 1fr; }
  .csr-grid { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }
  .team-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-btm { flex-direction: column; }
  .footer-btm .disc { text-align: left; }
  .nav-links { display: none; }
  .nav-hamburger { display: flex; }
  .confotur-wrap { flex-direction: column; text-align: center; }
  .cmp-table th, .cmp-table td { font-size: 0.78rem; padding: 0.65rem 0.5rem; }
  .cmp-bar-wrap { display: block; }
  .vets-benefits { grid-template-columns: 1fr; }
  /* ── CTA button centering on mobile ── */
  .hero-ctas { justify-content: center; }
  .btn { display: block; width: fit-content; margin-left: auto; margin-right: auto; }
}

/* ═══════════════════════════════════════════════════════════
   RETURNS COMPARISON TABLE
═══════════════════════════════════════════════════════════ */
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.cmp-table-wrap {
  background: var(--white);
  border-radius: 16px;
  box-shadow: var(--shadow-lg);
  overflow: hidden;
}
.cmp-table {
  width: 100%; border-collapse: collapse;
  font-size: 0.875rem;
}
.cmp-table caption { caption-side: top; }
.cmp-table thead tr {
  background: var(--navy);
}
.cmp-table th {
  padding: 1rem 1.25rem;
  text-align: left;
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.75);
}
.cmp-table th:not(:first-child) { text-align: center; }
.cmp-table td {
  padding: 0.9rem 1.25rem;
  border-bottom: 1px solid var(--light);
  color: var(--text);
  vertical-align: middle;
}
.cmp-table td:not(:first-child) { text-align: center; }
.cmp-table tbody tr:last-child td { border-bottom: none; }
.cmp-table tbody tr:hover { background: var(--light); }
.cmp-highlight {
  background: linear-gradient(90deg, rgba(0,196,222,0.06) 0%, rgba(0,145,168,0.04) 100%);
}
.cmp-highlight td { border-bottom: 2px solid rgba(0,196,222,0.3) !important; }
.cmp-badge {
  display: inline-block;
  font-size: 0.58rem; font-weight: 800;
  letter-spacing: 0.1em; text-transform: uppercase;
  background: rgba(0,196,222,0.15); color: var(--ocean);
  padding: 2px 7px; border-radius: 50px;
  margin-left: 6px; vertical-align: middle;
}
.cmp-bar-wrap {
  display: flex; align-items: center; gap: 10px;
  justify-content: center;
}
.cmp-bar {
  height: 8px; border-radius: 4px;
  background: linear-gradient(90deg, var(--ocean), #00C4DE);
  flex-shrink: 0;
}
.cmp-highlight .cmp-bar {
  background: linear-gradient(90deg, #00C4DE, var(--sand));
  height: 10px;
}
.cmp-val {
  font-family: var(--serif); font-size: 1rem;
  color: var(--navy); white-space: nowrap;
  min-width: 50px; text-align: left;
}
.cmp-val.twl { color: var(--ocean); font-size: 1.1rem; font-weight: 700; }
.cmp-zero {
  display: inline-block;
  background: rgba(0,196,222,0.12);
  color: var(--ocean);
  font-weight: 800; font-size: 0.82rem;
  padding: 4px 12px; border-radius: 50px;
  border: 1px solid rgba(0,196,222,0.3);
}
.cmp-tax { color: var(--muted); font-size: 0.8rem; }
.cmp-note {
  font-size: 0.74rem; color: var(--muted);
  padding: 1rem 1.25rem 1.25rem;
  border-top: 1px solid var(--light);
  line-height: 1.6;
  background: var(--white);
}

/* ── LUXURY TRAVEL ── */
.tw-services{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.tw-svc{background:var(--white);border:1px solid rgba(0,145,168,0.12);border-radius:14px;padding:1.6rem;box-shadow:0 6px 24px rgba(30,45,50,0.06)}
.tw-svc-i{font-size:1.8rem;margin-bottom:0.6rem}
.tw-svc h4{color:var(--navy);font-size:1.05rem;margin-bottom:0.4rem}
.tw-svc p{color:var(--muted);font-size:0.88rem;line-height:1.6}
.tw-fora{margin-top:3rem;display:grid;grid-template-columns:1.2fr 1fr;gap:2.5rem;align-items:center;background:var(--navy);color:#fff;border-radius:18px;padding:2.5rem}
.tw-fora h3{color:#fff;font-size:1.6rem;margin:0.4rem 0 0.8rem}
.tw-fora p{color:rgba(255,255,255,0.8);font-size:0.92rem;line-height:1.7}
.tw-fora .label{color:var(--sand)}
.tw-fora-steps{display:grid;gap:1rem}
.tw-step{display:flex;gap:0.9rem;align-items:flex-start;background:rgba(255,255,255,0.06);border-radius:12px;padding:0.9rem 1rem;font-size:0.85rem;color:rgba(255,255,255,0.8);line-height:1.5}
.tw-step strong{display:block;color:#fff;font-size:0.95rem}
.tw-step span{flex-shrink:0;width:30px;height:30px;border-radius:50%;background:var(--ocean);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center}
.tw-divider{background:linear-gradient(135deg,var(--deep),var(--ocean));color:#fff;text-align:center;padding:4.5rem 0}
.tw-divider .label{color:rgba(255,255,255,0.75)}
.tw-divider h2{color:#fff;font-size:clamp(2rem,3vw,2.8rem);margin:0.4rem 0 0.8rem}
.tw-divider p{max-width:640px;margin:0 auto;color:rgba(255,255,255,0.85)}
.team-grid.tw-solo{grid-template-columns:minmax(0,340px);justify-content:center}
@media (max-width:900px){.tw-services{grid-template-columns:1fr 1fr}.tw-fora{grid-template-columns:1fr;padding:1.75rem}}
@media (max-width:600px){.tw-services{grid-template-columns:1fr}}

/* ── HEADER: clean, responsive, accessible ── */
#nav .inner { height: 76px; gap: 1.5rem; }
.nav-brand { flex-shrink: 0; min-height: 44px; border-radius: 6px; }
.nav-logo-svg { height: 48px; }
.nav-links { gap: 0.25rem; margin: 0; padding: 0; flex-wrap: nowrap; }
.nav-links li { list-style: none; }
.nav-links a {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 0.8rem;
  white-space: nowrap; font-size: 0.74rem; letter-spacing: 0.09em;
  color: rgba(255,255,255,0.85); border-radius: 8px; text-decoration: none; position: relative;
}
.nav-links a:not(.nav-cta)::after {
  content: ""; position: absolute; left: 0.8rem; right: 0.8rem; bottom: 9px; height: 2px;
  background: var(--sand); transform: scaleX(0); transform-origin: left; transition: transform 0.2s;
}
.nav-links a:not(.nav-cta):hover::after, .nav-links a[aria-current]::after { transform: scaleX(1); }
.nav-links a[aria-current] { color: #fff; }
.nav-links .nav-cta { margin-left: 0.6rem; padding: 0 1.3rem; min-height: 42px; border-radius: 50px; color: #fff !important; }
.nav-links a:focus-visible, .nav-brand:focus-visible, .nav-hamburger:focus-visible, .mobile-menu a:focus-visible {
  outline: 3px solid var(--sand); outline-offset: 2px;
}
.nav-hamburger { width: 44px; height: 44px; border-radius: 8px; }
.mobile-menu[hidden] { display: none !important; }
.mobile-menu { top: 76px; display: block; max-height: calc(100vh - 76px); overflow-y: auto; }
.mobile-menu ul { margin: 0; padding: 0; }
.mobile-menu ul li a { min-height: 48px; display: flex; align-items: center; }
.mobile-menu ul li:last-child a { justify-content: center; }
.mobile-menu a[aria-current] { color: var(--sand); }
@media (max-width: 1100px) {
  .nav-links { display: none; }
  .nav-hamburger { display: flex; }
}
@media (max-width: 640px) {
  #nav .inner { padding: 0 1.1rem; }
  .nav-logo-svg { height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .nav-links a::after, .mobile-menu, .nav-hamburger span { transition: none !important; }
}

/* ── WCAG AA contrast fixes ── */
.btn-sand, .btn-sand:hover { color: var(--navy) !important; }
.footer-btm p { color: #A9B6BB !important; }
.about-badge .bs, .about-badge .bn { color: var(--navy) !important; }

/* ── About: founder stats ── */
.about-copy .tw-lead { font-size: 1.05rem; color: var(--text); line-height: 1.75; }
.tw-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; margin: 1.5rem 0 1.6rem; }
.tw-stat { background: var(--cream); border: 1px solid rgba(0,117,135,0.18); border-top: 3px solid var(--sand); border-radius: 12px; padding: 1rem 0.9rem; text-align: center; }
.tw-stat strong { display: block; font-family: var(--serif); font-size: 2.1rem; line-height: 1; color: var(--navy); font-weight: 400; }
.tw-stat strong span { font-size: 1.1rem; color: var(--ocean); margin-left: 2px; }
.tw-stat small { display: block; margin-top: 0.45rem; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
@media (max-width: 480px) { .tw-stats { gap: 0.5rem; } .tw-stat { padding: 0.8rem 0.5rem; } .tw-stat strong { font-size: 1.7rem; } }

/* ── Photos & icon cleanup ── */
.about-main { padding: 0 !important; overflow: hidden; font-size: 0.9rem !important; }
.about-main img { width: 100%; height: 100%; object-fit: cover; display: block; }

.about-main::before { display: none; }
.about-main img { object-position: center 35% !important; }
.about-badge { top: -1.25rem; left: -1.25rem; bottom: auto; right: auto; width: auto; aspect-ratio: auto; padding: 0.9rem 1.3rem; }
.about-badge .bn { font-size: 2rem; }

/* ── Larger, legible logo ── */
#nav .inner { height: 88px; }
.nav-logo-svg { height: 64px; }
.mobile-menu { top: 88px; max-height: calc(100vh - 88px); }
.hero-wrap { padding-top: 88px; }
@media (max-width: 640px) {
  #nav .inner { height: 78px; }
  .nav-logo-svg { height: 58px; }
  .mobile-menu { top: 78px; max-height: calc(100vh - 78px); }
}

/* ── Social icons ── */
.social-row { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.sb { width: 44px !important; height: 44px !important; border-radius: 50% !important; transition: background 0.2s, transform 0.2s; }
.sb svg { width: 20px; height: 20px; display: block; }
.sb:hover { transform: translateY(-2px); }
.sb:focus-visible { outline: 3px solid var(--sand); outline-offset: 3px; }
.tw-follow { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; margin: 0.5rem 0 1.5rem; }
.tw-follow span { font-size: 0.72rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); margin-right: 0.3rem; }
.tw-sb-dark { background: var(--navy) !important; color: #fff !important; }
.tw-sb-dark:hover { background: var(--ocean) !important; }
@media (prefers-reduced-motion: reduce) { .sb { transition: none; } .sb:hover { transform: none; } }

/* ── FUN & DYNAMIC ── */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#hero{background:#1E2D32 !important;}
.tw-slides{position:absolute;inset:0;z-index:0;overflow:hidden}
.tw-slide{position:absolute;inset:-4%;background-size:cover;opacity:0;transition:opacity 1.6s ease;transform:scale(1.02)}
.tw-slide.is-on{opacity:1;animation:twKen 9s ease-out forwards}
.tw-slides::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(0,90,104,0.82) 0%,rgba(0,117,135,0.55) 50%,rgba(30,45,50,0.78) 100%)}
@keyframes twKen{from{transform:scale(1.02)}to{transform:scale(1.1)}}
.hero-wrap{position:relative;z-index:1}
.tw-rotate{display:inline-block;transition:opacity .45s, transform .45s}
.tw-rotate.out{opacity:0;transform:translateY(10px)}
.area-thumb{transition:transform .6s ease}
.area-card:hover .area-thumb{transform:scale(1.06)}
.tw-best{margin-top:.75rem;padding:.65rem .8rem;background:var(--cream);border-left:3px solid var(--sand);border-radius:6px;font-size:.8rem;line-height:1.5;color:var(--navy)}
.tw-best span{color:var(--muted)}
.tw-quiz-sec{background:linear-gradient(180deg,var(--cream),#fff)}
.tw-quiz{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.tw-q{border:1px solid rgba(0,117,135,0.18);border-radius:14px;padding:1.2rem 1.25rem;background:#fff;margin:0}
.tw-q legend{font-weight:800;color:var(--navy);padding:0 .4rem;display:flex;align-items:center;gap:.5rem}
.tw-q legend span{width:26px;height:26px;border-radius:50%;background:var(--ocean);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem}
.tw-q label{display:flex;align-items:center;gap:.6rem;padding:.6rem .7rem;margin:.35rem 0;border:1.5px solid #E3EEF1;border-radius:10px;cursor:pointer;font-size:.9rem;color:var(--text);transition:border-color .2s, background .2s}
.tw-q label:hover{border-color:var(--ocean)}
.tw-q input{accent-color:var(--ocean);width:18px;height:18px}
.tw-q label:has(input:checked){border-color:var(--ocean);background:#E8F6F8;font-weight:700}
.tw-q input:focus-visible{outline:3px solid var(--sand);outline-offset:2px}
.tw-quiz-actions{grid-column:1/-1;text-align:center}
.tw-quiz-err{color:#A4122B;font-weight:700;font-size:.85rem;min-height:1.2em;margin-top:.6rem}
.tw-result{margin-top:2rem;background:var(--navy);color:#fff;border-radius:18px;padding:2rem;display:grid;grid-template-columns:minmax(0,260px) 1fr;gap:1.75rem;align-items:center}
.tw-result[hidden]{display:none}
.tw-result-img{height:200px;border-radius:12px;background-size:cover;background-position:center}
.tw-result h3{color:#fff;font-size:1.7rem;margin:.3rem 0 .6rem}
.tw-result .label{color:var(--sand)}
.tw-result p{color:rgba(255,255,255,.85)}
.tw-result .btns{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}
.tw-result .btn-again{background:transparent;border:1.5px solid rgba(255,255,255,.6);color:#fff}
.tw-float{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:900;display:none;background:var(--crimson);color:#fff;font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;padding:14px 22px;border-radius:50px;box-shadow:0 10px 28px rgba(0,0,0,.28);text-decoration:none;min-height:44px}
.tw-float:focus-visible{outline:3px solid var(--sand);outline-offset:3px}
@media (max-width:820px){.tw-quiz{grid-template-columns:1fr}.tw-result{grid-template-columns:1fr;padding:1.5rem}.tw-float{display:inline-flex;align-items:center}.tw-float.is-hidden{display:none}}
@media (prefers-reduced-motion: reduce){.tw-slide{transition:none}.tw-slide.is-on{animation:none}.tw-rotate{transition:none}.area-thumb{transition:none}.area-card:hover .area-thumb{transform:none}}

.tw-result{grid-template-columns:minmax(0,240px) 1fr;align-items:start}
#tw-result{scroll-margin-top:110px}
.tw-why{font-size:1.02rem;color:#fff !important;margin-bottom:1rem}
.tw-res-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:.5rem}
.tw-res-grid h4{color:var(--sand);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;margin:0 0 .6rem}
.tw-picks{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
.tw-picks li{background:rgba(255,255,255,.07);border-radius:10px;padding:.65rem .8rem;font-size:.85rem;color:rgba(255,255,255,.82);line-height:1.45}
.tw-picks strong{display:block;color:#fff;font-size:.92rem}
.tw-days{list-style:none;padding:0;margin:0;display:grid;gap:.4rem}
.tw-days li{font-size:.85rem;color:rgba(255,255,255,.85);display:flex;gap:.6rem;line-height:1.45}
.tw-days li span{flex-shrink:0;font-weight:800;color:#7FE3F2;min-width:3.2rem}
.tw-when{margin-top:.9rem;font-size:.85rem}
.tw-when strong{color:#fff}
.tw-fine{font-size:.75rem;color:rgba(255,255,255,.7) !important;margin-top:.75rem}
@media (max-width:820px){.tw-res-grid{grid-template-columns:1fr}.tw-result-img{height:170px}}

/* ── WHY I DO THIS ── */
.tw-why-sec{background:linear-gradient(180deg,#fff 0%,var(--cream) 100%)}
.tw-why-sec h2 em{font-style:italic;color:var(--ocean)}
.tw-why-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem;margin-top:.5rem}
.tw-why-card{background:#fff;border-radius:14px;padding:1.6rem 1.4rem;border-top:4px solid var(--sand);box-shadow:0 8px 26px rgba(30,45,50,0.07)}
.tw-why-num{display:block;font-family:var(--serif);font-size:2.2rem;line-height:1;color:var(--ocean);margin-bottom:.7rem}
.tw-why-card h3{font-size:1.15rem;color:var(--navy);margin-bottom:.5rem}
.tw-why-card p{font-size:.9rem;line-height:1.65;color:var(--muted)}
.tw-why-quote{margin:3rem auto 0;max-width:860px;text-align:center}
.tw-why-quote blockquote{margin:0}
.tw-why-quote p{font-family:var(--serif);font-size:clamp(1.45rem,2.6vw,2.05rem);line-height:1.4;color:var(--navy)}
.tw-why-quote p::before{content:"\201C";color:var(--sand)}
.tw-why-quote p::after{content:"\201D";color:var(--sand)}
.tw-why-quote figcaption{margin-top:1rem;font-size:.8rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.tw-why-cta{text-align:center;margin-top:2rem}
@media (max-width:1000px){.tw-why-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.tw-why-grid{grid-template-columns:1fr}}

.tw-pkgs{margin-top:1.4rem}
.tw-pkgs h4{color:var(--sand);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;margin:0 0 .7rem}
.tw-pkg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}
.tw-pkg{position:relative;background:#fff;color:var(--text);border-radius:12px;padding:1.1rem 1rem 1rem;display:flex;flex-direction:column}
.tw-pkg.is-featured{outline:3px solid var(--sand)}
.tw-pkg-tag{position:absolute;top:-11px;left:12px;background:var(--sand);color:var(--navy);font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:3px 10px;border-radius:20px}
.tw-pkg h5{font-size:1.02rem;color:var(--navy);margin:.2rem 0 .2rem}
.tw-pkg-meta{font-size:.78rem;font-weight:800;color:var(--ocean) !important;margin:0 0 .6rem}
.tw-pkg ul{margin:0 0 .9rem;padding-left:1.05rem;font-size:.8rem;line-height:1.5;color:var(--muted);flex-grow:1}
.tw-pkg ul li{margin-bottom:.25rem}
.tw-pkg-btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;border-radius:50px;border:1.5px solid var(--ocean);color:var(--ocean);font-weight:800;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none}
.tw-pkg-btn:hover{background:var(--ocean);color:#fff}
.tw-pkg-btn:focus-visible{outline:3px solid var(--sand);outline-offset:2px}
@media (max-width:900px){.tw-pkg-grid{grid-template-columns:1fr}}

/* ── Gateway to investing ── */
.tw-gateway{background:linear-gradient(135deg,var(--navy) 0%,#0e4a57 60%,var(--ocean) 100%);color:#fff;padding:5rem 0}
.tw-gateway-inner{display:grid;grid-template-columns:1.4fr 1fr;gap:2.5rem;align-items:center}
.tw-gateway .label{color:var(--sand)}
.tw-gateway h2{color:#fff;font-size:clamp(2rem,3.2vw,2.8rem);margin:.4rem 0 .9rem}
.tw-gateway h2 em{color:#F0C277;font-style:italic}
.tw-gateway p{color:rgba(255,255,255,.86);line-height:1.75}
.tw-gateway-ctas{display:flex;flex-direction:column;gap:.9rem;align-items:flex-start}
@media (max-width:860px){.tw-gateway-inner{grid-template-columns:1fr}.tw-gateway{padding:3.5rem 0}}

/* ── Trust strip ── */
.tw-trust{background:var(--navy);color:#fff;border-bottom:3px solid var(--sand)}
.tw-trust ul{list-style:none;margin:0 auto;padding:1rem 2rem;display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 2rem;font-size:.84rem;color:rgba(255,255,255,.82)}
.tw-trust strong{color:#fff}
.tw-trust li{white-space:nowrap}
@media (max-width:640px){.tw-trust ul{justify-content:flex-start;gap:.35rem 1.2rem;font-size:.8rem}.tw-trust li{white-space:normal}}

/* ════════ LUXURY REFINEMENT LAYER ════════ */
:root{--ink:#1B2A30;--mist:#F2F6F6;--gold:#C9A15A;--hair:rgba(27,42,48,.12)}
body{color:var(--ink);font-weight:400;font-size:1.02rem;letter-spacing:.005em}
p{line-height:1.8}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.005em;color:var(--ink)}
.section{padding:clamp(88px,10vw,140px) 0}
.section-head{max-width:720px;margin-left:auto;margin-right:auto;margin-bottom:clamp(2.5rem,5vw,4rem)}
.section-head h2{font-size:clamp(2.4rem,4.6vw,3.6rem);line-height:1.08;margin:.35rem 0 1.1rem}
.section-head p{font-size:1.08rem;color:#4E5E64}
/* quiet labels instead of tracked caps */
.label,.fd-kicker,.story-kicker{font-family:var(--serif)!important;font-style:italic;text-transform:none!important;letter-spacing:.01em!important;font-size:1.05rem!important;font-weight:400!important;color:var(--ocean)!important}
.tw-gateway .label,.tw-fora .label,.tw-result .label{color:var(--gold)!important}
/* buttons: squared, calm */
.btn{border-radius:2px!important;text-transform:none!important;letter-spacing:.02em!important;font-weight:700!important;font-size:.95rem!important;padding:1rem 1.9rem!important;box-shadow:none!important;transition:background .25s,color .25s,border-color .25s!important;transform:none!important}
.btn:hover{transform:none!important}
.btn-outline-white{border-width:1px!important}
.nav-links .nav-cta{border-radius:2px!important;text-transform:none!important;letter-spacing:.02em!important}
.nav-links a{text-transform:none;letter-spacing:.02em;font-size:.86rem}
/* no fade-in on every section; the hero is the one moving moment */
.fi{opacity:1!important;transform:none!important;transition:none!important}
/* hero: cinematic, photo-led */
#hero{min-height:92vh}
.tw-slides::after{background:linear-gradient(90deg,rgba(14,24,28,.78) 0%,rgba(14,24,28,.45) 55%,rgba(14,24,28,.15) 100%),linear-gradient(0deg,rgba(14,24,28,.55),transparent 45%)!important}
.hero-wrap{grid-template-columns:1fr!important;max-width:1180px}
.hero-text{max-width:720px}
.hero-text h1{font-size:clamp(3.2rem,7.4vw,6.4rem)!important;line-height:1!important;margin-bottom:1.6rem!important;letter-spacing:-.015em}
.hero-text h1 em{color:#E7C98F!important}
.hero-eyebrow{text-transform:none!important;letter-spacing:.01em!important;font-family:var(--serif);font-style:italic;font-size:1.25rem!important;color:rgba(255,255,255,.88)!important}
.hero-eyebrow::before{display:none!important}
.hero-text>p:not(.hero-eyebrow){font-size:1.12rem;max-width:560px;color:rgba(255,255,255,.86)}
/* trust strip: hairline, understated */
.tw-trust{background:#fff;color:var(--ink);border-bottom:1px solid var(--hair)}
.tw-trust ul{color:#53636A;font-size:.86rem;padding:1.25rem 2rem}
.tw-trust strong{color:var(--ink);font-weight:700}
/* flatten the card kit */
.tw-svc,.tw-why-card,.area-card,.tw-q,.panel,.rev-card,.vet-card,.csr-card,.team-card,.tw-stat,.track,.pkg-card,.prop-card{box-shadow:none!important;border-radius:2px!important}
.area-card:hover,.tw-svc:hover,.csr-card:hover,.prop-card:hover,.pkg-card:hover{transform:none!important;box-shadow:none!important}
/* why: editorial list, not numbered tiles */
.tw-why-sec{background:#fff}
.tw-why-num{display:none}
.tw-why-grid{gap:0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.tw-why-card{background:transparent;border-top:0;padding:2.2rem 1.8rem;border-left:1px solid var(--hair)}
.tw-why-card:first-child{border-left:0}
.tw-why-card h3{font-size:1.45rem;margin-bottom:.7rem}
.tw-why-card p{font-size:.95rem}
.tw-why-quote p{font-size:clamp(1.7rem,3.2vw,2.5rem);line-height:1.3}
.tw-why-quote p::before,.tw-why-quote p::after{color:var(--gold)}
@media (max-width:1000px){.tw-why-card{border-left:0;border-top:1px solid var(--hair)}.tw-why-card:nth-child(-n+2){border-top:0}.tw-why-card:nth-child(even){border-left:1px solid var(--hair)}}
@media (max-width:560px){.tw-why-card,.tw-why-card:nth-child(even){border-left:0;border-top:1px solid var(--hair);padding:1.8rem .2rem}.tw-why-card:first-child{border-top:0}}
/* services: open grid with hairlines */
.tw-services{gap:0;border-top:1px solid var(--hair)}
.tw-svc{background:transparent;border:0;border-bottom:1px solid var(--hair);padding:2rem 1.6rem 2rem 0}
.tw-svc h4{font-family:var(--serif);font-weight:400;font-size:1.4rem;margin-bottom:.5rem}
.tw-fora{border-radius:2px;background:var(--ink)}
.tw-step{border-radius:2px}
.tw-step span{border-radius:0;background:transparent;border:1px solid var(--gold);color:var(--gold)}
/* destinations: editorial image-led cards */
.area-grid{gap:3rem 2rem}
.area-card{background:transparent;border:0}
.area-thumb{height:340px!important;border-radius:2px}
.area-body{padding:1.25rem 0 0!important}
.area-body h3{font-size:1.6rem;line-height:1.15}
.area-tag{text-transform:none!important;letter-spacing:.01em!important;font-family:var(--serif);font-style:italic;font-size:1rem!important;color:var(--ocean)!important;background:none!important;padding:0!important}
#destinations .area-pills{display:none}
.tw-best{background:transparent;border-left:1px solid var(--gold);border-radius:0;padding:.2rem 0 .2rem 1rem}
/* quiz */
.tw-quiz-sec{background:var(--mist)}
.tw-q{border:1px solid var(--hair);background:#fff}
.tw-q legend{font-family:var(--serif);font-weight:400;font-size:1.25rem}
.tw-q legend span{border-radius:0;background:transparent;border:1px solid var(--ocean);color:var(--ocean)}
.tw-q label{border-radius:2px;border-width:1px}
.tw-result{border-radius:2px;background:var(--ink)}
.tw-pkg{border-radius:2px}
.tw-pkg-btn{border-radius:2px}
.tw-pkg-tag{border-radius:0}
/* gateway */
.tw-gateway{background:var(--ink)}
.tw-gateway h2{font-size:clamp(2.2rem,4vw,3.4rem)}
/* stats & about */
.tw-stat{background:transparent;border:0;border-top:1px solid var(--gold);text-align:left;padding:1rem 0 0}
.tw-stat strong{font-size:2.6rem}
.about-main,.about-main img{border-radius:2px!important}
.about-badge{border-radius:2px!important}
/* contact */
.contact-form{border-radius:2px!important;box-shadow:none!important;border:1px solid var(--hair)}
.fg input,.fg select,.fg textarea{border-radius:2px!important}
.tw-follow .sb{border-radius:50%!important}
/* floating button */
.tw-float{border-radius:2px;text-transform:none;letter-spacing:.02em;font-size:.9rem}

/* ── One site: shared nav, sub-nav, footer ── */
.nav-links a[aria-current="page"]{color:#fff}
.nav-links a[aria-current="page"]::after{transform:scaleX(1)}
.mobile-menu .mm-sub a{padding-left:2.2rem;font-size:.9em;opacity:.85}
.tw-subnav{position:sticky;top:88px;z-index:50;background:#fff;border-bottom:1px solid var(--hair)}
.tw-subnav ul{list-style:none;margin:0 auto;padding:0 2rem;display:flex;gap:.25rem;overflow-x:auto;scrollbar-width:none}
.tw-subnav ul::-webkit-scrollbar{display:none}
.tw-subnav a{display:inline-flex;align-items:center;min-height:52px;padding:0 .9rem;white-space:nowrap;font-size:.86rem;color:#4E5E64;text-decoration:none;border-bottom:2px solid transparent}
.tw-subnav a:hover,.tw-subnav a[aria-current]{color:var(--ink);border-bottom-color:var(--gold)}
.tw-subnav a:focus-visible{outline:3px solid var(--sand);outline-offset:-3px}
@media (max-width:640px){.tw-subnav{top:78px}.tw-subnav ul{padding:0 1rem}}


html:has(.tw-subnav){scroll-padding-top:150px}

            .sms-consent{margin:0.25rem 0 1.25rem;padding:1rem 1.1rem;background:var(--cream);border:1.5px solid #D8ECF0;border-radius:var(--radius);font-size:0.75rem;line-height:1.6;color:var(--muted)}
            .sms-consent p{margin:0 0 0.6rem}
            .sms-check{display:flex;gap:0.6rem;align-items:flex-start;margin-top:0.55rem;font-size:0.8rem;font-weight:600;color:var(--navy);cursor:pointer}
            .sms-check input{width:18px;height:18px;margin-top:1px;flex-shrink:0;accent-color:var(--ocean)}

/* ── Mobile polish (shared) ── */
.cmp-table-wrap{overflow-x:auto!important;-webkit-overflow-scrolling:touch}
.cmp-table-wrap:focus-visible{outline:3px solid var(--sand);outline-offset:4px}
.contact-details a{display:inline-flex;align-items:center;min-height:44px}
@media (max-width:640px){
  .hero-ctas{flex-direction:column;align-items:stretch;gap:.75rem}
  .hero-ctas .btn{width:100%;justify-content:center;text-align:center}
  .hero-text h1{font-size:clamp(2.6rem,11vw,3.4rem)!important}
  .section{padding:72px 0}
  .area-thumb{height:240px!important}
  .tw-gateway-ctas .btn{width:100%;justify-content:center;text-align:center}
}

/* ── Tighter vertical rhythm ── */
.section{padding:clamp(44px,4.5vw,64px) 0!important}
.section-head{margin-bottom:clamp(1.75rem,3vw,2.6rem)!important}
.section-head h2{margin:.25rem 0 .8rem!important}
#destinations.section{padding-top:clamp(24px,3vw,40px)!important}
.tw-why-quote{margin-top:2.25rem!important}
.tw-why-cta{margin-top:1.5rem!important}
.tw-fora{margin-top:2.25rem!important}
.tw-gateway{padding:clamp(48px,6vw,80px) 0!important}
.tw-result{margin-top:1.5rem!important}
.area-grid{gap:2.25rem 2rem!important}
#hero{min-height:84vh!important}
@media (max-width:640px){
  .section{padding:40px 0!important}
  .section-head{margin-bottom:1.5rem!important}
  .tw-gateway{padding:44px 0!important}
  #hero{min-height:auto!important}
  .hero-wrap{padding-top:120px!important;padding-bottom:72px!important;min-height:auto!important}
}

.cmp-section,#comparison.section{padding-top:clamp(24px,3vw,40px)!important}
#returns.section{padding-bottom:clamp(32px,3.5vw,48px)!important}
footer{padding-top:clamp(48px,5vw,64px)!important}

/* ── Why: experiences over things ── */
.tw-why-statement{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(1.5rem,4vw,4rem);align-items:center;background:var(--ink);color:#fff;padding:clamp(2rem,4.5vw,3.5rem);margin:0 0 clamp(2rem,4vw,3rem)}
.tw-why-big{font-family:var(--serif);font-size:clamp(2.4rem,5vw,4.2rem);line-height:1.05;color:#fff;margin:0}
.tw-why-big br+*{color:#E7C98F}
.tw-why-sub{color:rgba(255,255,255,.85);font-size:1.05rem;line-height:1.8;margin:0;border-left:1px solid var(--gold);padding-left:clamp(1rem,2.5vw,2rem)}
@media (max-width:820px){.tw-why-statement{grid-template-columns:1fr}.tw-why-sub{border-left:0;border-top:1px solid var(--gold);padding:1.25rem 0 0}}

/* ── Reviews ── */
.tw-reviews{background:var(--mist)}
.tw-reviews[hidden]{display:none}
.tw-review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:clamp(1.25rem,2.5vw,2rem)}
.tw-review{margin:0;background:#fff;padding:clamp(1.5rem,2.5vw,2rem);border-top:2px solid var(--gold);display:flex;flex-direction:column}
.tw-stars{margin:0 0 .8rem;color:#A87A1F;letter-spacing:.15em;font-size:1rem}
.tw-star-off{color:#D9D4C7}
.tw-review blockquote{margin:0;flex-grow:1}
.tw-review blockquote p{font-family:var(--serif);font-size:1.25rem;line-height:1.5;color:var(--ink)}
.tw-review figcaption{margin-top:1.1rem;font-size:.9rem;color:#4E5E64;display:flex;flex-direction:column;gap:.15rem}
.tw-review figcaption strong{color:var(--ink)}
.tw-review figcaption strong span{font-weight:400;color:#4E5E64}
.tw-review figcaption strong span::before{content:", "}
.tw-review figcaption em{font-style:italic}

/* ── Photos & videos ── */
.tw-moments[hidden],#tw-gallery-wrap[hidden],.tw-videos-wrap[hidden]{display:none}
.tw-gallery{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:1rem}
.tw-ph{display:block;width:100%;padding:0;border:0;background:var(--mist);cursor:zoom-in;aspect-ratio:4/3;overflow:hidden}
.tw-ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.tw-ph:hover img{transform:scale(1.04)}
.tw-ph:focus-visible{outline:3px solid var(--sand);outline-offset:3px}
.tw-ph-cap{margin:.55rem 0 0;font-size:.88rem;color:var(--ink);line-height:1.45}
.tw-ph-cap span{display:block;color:#4E5E64;font-style:italic;font-size:.82rem}
.tw-videos-wrap{margin-top:clamp(2rem,4vw,3rem)}
.tw-sub{font-size:1.6rem;margin:0 0 1rem}
.tw-videos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:1.25rem}
.tw-yt,.tw-videos iframe{display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;background:#000;position:relative;cursor:pointer}
.tw-yt img{width:100%;height:100%;object-fit:cover;display:block;opacity:.9}
.tw-play{position:absolute;left:50%;top:50%;width:68px;height:68px;margin:-34px 0 0 -34px;border-radius:50%;background:rgba(27,42,48,.82);border:2px solid #fff}
.tw-play::after{content:"";position:absolute;left:27px;top:20px;border-style:solid;border-width:14px 0 14px 22px;border-color:transparent transparent transparent #fff}
.tw-yt:hover .tw-play,.tw-yt:focus-visible .tw-play{background:var(--crimson)}
.tw-yt:focus-visible{outline:3px solid var(--sand);outline-offset:3px}
.tw-yt-title{margin:.6rem 0 0;font-size:.95rem;color:var(--ink)}
.tw-yt-more{margin-top:1.25rem}
.tw-yt-more a{color:var(--ocean);font-weight:700}
.tw-lightbox{position:fixed;inset:0;z-index:2000;background:rgba(10,18,21,.94);display:flex;align-items:center;justify-content:center;padding:4rem 4.5rem}
.tw-lightbox[hidden]{display:none}
.tw-lightbox figure{margin:0;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center}
.tw-lightbox img{max-width:100%;max-height:calc(100vh - 10rem);object-fit:contain}
.tw-lightbox figcaption{color:#fff;margin-top:.8rem;text-align:center;font-size:.95rem}
.tw-lightbox button{position:absolute;background:transparent;border:1px solid rgba(255,255,255,.5);color:#fff;width:48px;height:48px;font-size:1.8rem;line-height:1;cursor:pointer}
.tw-lightbox button:focus-visible{outline:3px solid var(--sand);outline-offset:2px}
.tw-lb-close{top:1rem;right:1rem}
.tw-lb-prev{left:1rem;top:50%;margin-top:-24px}
.tw-lb-next{right:1rem;top:50%;margin-top:-24px}
@media (max-width:640px){.tw-lightbox{padding:4rem .75rem}.tw-lb-prev,.tw-lb-next{top:auto;bottom:1rem;margin:0}}
@media (prefers-reduced-motion: reduce){.tw-ph img{transition:none}.tw-ph:hover img{transform:none}}

/* ── Quiz: aligned rows ── */
.tw-quiz{display:block!important;max-width:980px;margin:0 auto;border-top:1px solid var(--hair)}
.tw-q{display:flow-root!important;border:0!important;border-bottom:1px solid var(--hair)!important;background:transparent!important;padding:1.35rem 0!important;margin:0!important;min-width:0}
.tw-q legend{float:left;width:250px;padding:.55rem 1rem 0 0!important;margin:0;font-family:var(--serif);font-weight:400;font-size:1.3rem;color:var(--ink);display:flex;align-items:baseline;gap:.6rem}
.tw-q legend span{width:auto!important;height:auto!important;border:0!important;background:none!important;color:var(--ocean)!important;font-size:1rem!important;font-family:var(--serif)}
.tw-q legend span::after{content:"."}
.tw-q label{display:inline-flex!important;align-items:center;gap:.55rem;margin:.3rem .45rem .3rem 0!important;padding:.65rem 1rem!important;background:#fff;border:1px solid var(--hair)!important;border-radius:2px!important;font-size:.92rem;min-height:44px;width:auto}
.tw-q label:has(input:checked){border-color:var(--ocean)!important;background:#E8F6F8!important}
.tw-quiz-actions{padding-top:1.75rem}
@media (max-width:820px){
  .tw-q legend{float:none;width:100%;padding:0 0 .6rem!important}
  .tw-q label{display:flex!important;width:100%;margin:.4rem 0!important}
}

.tw-opts{margin-left:250px;display:flex;flex-wrap:wrap;gap:.6rem}
.tw-opts label{margin:0!important}
@media (max-width:820px){.tw-opts{margin-left:0;flex-direction:column;gap:.5rem}}

/* ── Trips for every occasion ── */
.tw-occ-sec{background:#fff}
.tw-occ-feature{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);background:var(--ink);color:#fff;padding:clamp(1.75rem,4vw,3rem);margin-bottom:clamp(1.75rem,3vw,2.5rem);border-top:3px solid var(--gold)}
.tw-occ-feature .label{color:var(--gold)!important}
.tw-occ-feature h3{color:#fff;font-size:clamp(1.9rem,3.2vw,2.6rem);margin:.3rem 0 .9rem}
.tw-occ-feature p{color:rgba(255,255,255,.86)}
.tw-occ-feature .btn{margin-top:.75rem}
.tw-occ-places{list-style:none;margin:0;padding:0;align-self:center}
.tw-occ-places li{border-bottom:1px solid rgba(255,255,255,.14);padding:.85rem 0}
.tw-occ-places li:last-child{border-bottom:0}
.tw-occ-places strong{display:block;color:#fff;font-family:var(--serif);font-weight:400;font-size:1.2rem}
.tw-occ-places span{display:block;color:rgba(255,255,255,.75);font-size:.88rem;margin-top:.15rem}
.tw-occ-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--hair)}
.tw-occ{padding:1.75rem 1.5rem 1.75rem 0;border-bottom:1px solid var(--hair)}
.tw-occ h3{font-size:1.4rem;margin:0 0 .5rem}
.tw-occ p{font-size:.92rem;margin:0 0 .8rem}
.tw-occ a{color:var(--ocean);font-weight:700;font-size:.9rem;text-decoration:none;border-bottom:1px solid currentColor;display:inline-flex;min-height:44px;align-items:center}
.tw-occ a:focus-visible{outline:3px solid var(--sand);outline-offset:3px}
@media (max-width:900px){.tw-occ-feature{grid-template-columns:1fr}.tw-occ-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.tw-occ-grid{grid-template-columns:1fr}.tw-occ{padding-right:0}}
/* ── Personal note ── */
.tw-note{margin:1.25rem 0 1.5rem;padding:1rem 1.25rem;border-left:3px solid var(--gold);background:#fff}
.tw-note p{margin:0;font-family:var(--serif);font-size:1.12rem;color:var(--ink);line-height:1.55}
.tw-note footer{margin-top:.5rem;font-size:.82rem;color:#4E5E64;font-weight:700}
/* ── Newsletter ── */
.tw-news{background:var(--ink);color:#fff;padding:clamp(40px,5vw,64px) 0;border-top:3px solid var(--gold)}
.tw-news-inner{display:grid;grid-template-columns:1fr 1.15fr;gap:2rem;align-items:center}
.tw-news h2{color:#fff;font-size:clamp(1.7rem,2.8vw,2.3rem);margin:0 0 .4rem}
.tw-news p{color:rgba(255,255,255,.82);margin:0}
.tw-news-form{display:flex;flex-wrap:wrap;gap:.6rem;position:relative}
.tw-news-form input{flex:1 1 160px;min-height:48px;padding:0 1rem;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.06);color:#fff;border-radius:2px;font:inherit}
.tw-news-form input::placeholder{color:rgba(255,255,255,.7)}
.tw-news-form input:focus-visible{outline:3px solid var(--sand);outline-offset:2px}
.tw-news-form .btn{flex:0 0 auto}
.tw-news-msg{flex-basis:100%;min-height:1.2em;font-size:.9rem;color:#F0C277!important}
@media (max-width:820px){.tw-news-inner{grid-template-columns:1fr}.tw-news-form .btn{flex:1 1 100%}}

/* ── Quiz cleanup: even rows, equal choices ── */
.tw-quiz{max-width:1040px!important}
.tw-q{padding:1.1rem 0!important}
.tw-q legend{width:200px!important;padding-top:.75rem!important;font-size:1.2rem!important}
.tw-opts{margin-left:200px!important;display:flex!important;flex-wrap:nowrap!important;gap:.6rem!important}
.tw-opts label{flex:1 1 0!important;min-width:0;justify-content:flex-start;padding:.8rem .9rem!important;font-size:.9rem!important;line-height:1.3;min-height:52px!important}
.tw-quiz-actions{padding-top:1.5rem!important}
.tw-quiz-err{margin:.5rem 0 0!important}
@media (max-width:1000px){.tw-q legend{width:100%!important;float:none!important;padding:0 0 .6rem!important}.tw-opts{margin-left:0!important}}
@media (max-width:700px){.tw-opts{flex-wrap:wrap!important}.tw-opts label{flex:1 1 calc(50% - .6rem)!important}}
@media (max-width:420px){.tw-opts label{flex:1 1 100%!important}}
/* result panel tidy */
.tw-result{gap:1.5rem 2rem!important}
.tw-result h3{font-size:clamp(1.6rem,2.6vw,2.1rem)!important}
.tw-result .btns{margin-top:1.25rem!important}

.tw-opts{flex-direction:row!important}
.tw-opts label{min-height:60px!important}
@media (max-width:700px){.tw-opts label{min-height:52px!important}}

/* ── Share your trip ── */
.tw-review-grid[hidden]{display:none}
.tw-review-grid{margin-bottom:clamp(2rem,4vw,3rem)}
.tw-review-photo{width:calc(100% + 2*clamp(1.5rem,2.5vw,2rem));margin:calc(-1*clamp(1.5rem,2.5vw,2rem)) calc(-1*clamp(1.5rem,2.5vw,2rem)) 1.1rem;aspect-ratio:4/3;object-fit:cover;display:block;max-width:none}
.tw-review-video{display:inline-flex;align-items:center;min-height:44px;margin-top:.35rem;color:var(--ocean);font-weight:700}
.tw-share{background:#fff;border-top:3px solid var(--gold);padding:clamp(1.5rem,3.5vw,2.5rem);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:clamp(1.5rem,3vw,2.5rem);align-items:start}
.tw-share-intro h3{font-size:clamp(1.5rem,2.4vw,1.9rem);margin:0 0 .5rem}
.tw-share-intro .btn{margin-top:.75rem}
.tw-share-form[hidden]{display:none}
.tw-share-form .fg{margin-bottom:1rem}
.tw-share-form label{display:block;font-weight:700;font-size:.82rem;margin-bottom:.35rem;color:var(--ink)}
.tw-share-form input[type=text],.tw-share-form input[type=email],.tw-share-form input[type=url],.tw-share-form textarea{width:100%;box-sizing:border-box;padding:.7rem .8rem;border:1px solid #B9C3C7;border-radius:2px;font:inherit;background:#fff}
.tw-share-form input:focus-visible,.tw-share-form textarea:focus-visible{outline:3px solid var(--sand);outline-offset:1px}
.tw-share-form input[type=file]{font-size:.85rem;width:100%}
.tw-rating{border:0;padding:0;margin:0 0 1rem}
.tw-rating legend{font-weight:700;font-size:.82rem;margin-bottom:.4rem}
.tw-rating label{display:inline-flex!important;align-items:center;gap:.4rem;margin:0 .9rem .4rem 0;font-weight:400!important;font-size:.9rem!important;min-height:44px}
.tw-hint{font-size:.8rem;margin:-.4rem 0 1rem}
.tw-consent{display:flex!important;gap:.6rem;align-items:flex-start;font-weight:400!important;font-size:.85rem!important;line-height:1.5;margin:.25rem 0 1.25rem!important}
.tw-consent input{width:20px;height:20px;flex-shrink:0;margin-top:2px}
.tw-share-msg{min-height:1.3em;margin-top:.75rem;font-weight:700;color:var(--ink)}
@media (max-width:900px){.tw-share{grid-template-columns:1fr}}

.tw-review-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))!important}

/* ── VSO organizations list ── */
.tw-vso-orgs{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.16);padding-top:1.4rem}
.tw-vso-lead{margin:0 0 .8rem;color:#fff!important;font-weight:700}
.tw-vso-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem 1.5rem}
.tw-vso-list li{color:rgba(255,255,255,.88);font-size:.92rem;padding-left:.9rem;position:relative;line-height:1.4}
.tw-vso-list li::before{content:"";position:absolute;left:0;top:.55em;width:5px;height:5px;background:var(--gold)}
.tw-vso-fine{margin:1rem 0 0;font-size:.76rem;color:rgba(255,255,255,.72)!important;line-height:1.5}
@media (max-width:1000px){.tw-vso-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.tw-vso-list{grid-template-columns:1fr}}

/* ════════ COMPETITIVE POLISH (keeps brand) ════════ */
/* clear section rhythm: white and warm cream alternate */
#why,#destinations,#quiz,#moments,#about,#contact{background:#fff!important}
#travel,#occasions,#reviews,#csr{background:var(--cream)!important}
.tw-occ-sec{background:var(--cream)!important}
.tw-occ-feature{box-shadow:none}
/* hero quick-start planner */
.tw-plan{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem;background:rgba(255,255,255,.97);padding:1rem;margin-top:1.75rem;max-width:720px;border-top:3px solid var(--gold)}
.tw-plan-field{flex:1 1 200px;display:flex;flex-direction:column;gap:.3rem}
.tw-plan-field label{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.tw-plan-field input,.tw-plan-field select{min-height:48px;padding:0 .8rem;border:1px solid #B9C3C7;border-radius:2px;font:inherit;color:var(--ink);background:#fff}
.tw-plan-field input:focus-visible,.tw-plan-field select:focus-visible{outline:3px solid var(--sand);outline-offset:1px}
.tw-plan .btn{min-height:48px;flex:0 0 auto}
.tw-plan-alt{margin-top:.9rem!important;font-size:.95rem;color:rgba(255,255,255,.88)!important}
.tw-plan-alt a{color:#F0C277;font-weight:700}
@media (max-width:640px){.tw-plan .btn{flex:1 1 100%}}
/* destination cards: title on the photo */
.tw-dest-thumb{height:auto!important;aspect-ratio:4/3;display:flex;align-items:flex-end}
.tw-dest-thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(14,24,28,.82) 0%,rgba(14,24,28,.35) 45%,rgba(14,24,28,0) 75%)}
.tw-dest-cap{position:relative;z-index:1;padding:1.1rem 1.25rem}
.tw-dest-cap .area-tag{color:#F0C277!important;background:none!important;padding:0!important;margin-bottom:.25rem;display:block}
.tw-dest-cap h3{color:#fff!important;margin:0;font-size:1.45rem;line-height:1.15}
#destinations .area-body{padding-top:1rem!important}
/* full-width photo moment */
.tw-photo-band{position:relative;min-height:clamp(320px,42vw,520px);display:flex;align-items:center;color:#fff;background:#1E2D32 url('https://images.unsplash.com/photo-1760209752070-1a83f66f2e8b?auto=format&fit=crop&w=1920&q=80') 70% 45%/cover no-repeat}
.tw-photo-band::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,24,28,.82) 0%,rgba(14,24,28,.55) 55%,rgba(14,24,28,.2) 100%)}
.tw-photo-band-inner{position:relative;z-index:1}
.tw-photo-quote{font-family:var(--serif);font-size:clamp(2.1rem,4.6vw,3.8rem);line-height:1.1;color:#fff!important;max-width:640px;margin:0 0 1.5rem}

.tw-plan{flex-wrap:nowrap}
.tw-plan-field{flex:1 1 0;min-width:0}
.tw-plan .btn{padding-left:1.4rem!important;padding-right:1.4rem!important;white-space:nowrap}
@media (max-width:640px){.tw-plan{flex-wrap:wrap}.tw-plan-field{flex:1 1 100%}}

/* ── Flow fixes ── */
.tw-vso-sec{background:#fff!important}
.tw-vso-sec .tw-occ-feature{margin-bottom:0}

.tw-why-big.tw-why-moments{font-size:clamp(1.6rem,2.8vw,2.35rem);line-height:1.3;font-style:italic}

/* ── Group travel ── */
.tw-groups{background:var(--cream)!important}
.tw-group-tracks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin-bottom:clamp(1.75rem,3vw,2.5rem)}
.tw-track{background:#fff;padding:1.6rem 1.5rem;border-top:3px solid var(--ocean)}
.tw-track h3{font-size:1.4rem;margin:0 0 .5rem}
.tw-track p{font-size:.92rem;margin:0 0 .8rem}
.tw-track a{color:var(--ocean);font-weight:700;font-size:.9rem;text-decoration:none;border-bottom:1px solid currentColor;display:inline-flex;min-height:44px;align-items:center}
.tw-pc{background:var(--ink);color:#fff;padding:clamp(1.75rem,4vw,3rem);border-top:3px solid var(--gold)}
.tw-pc .label{color:var(--gold)!important}
.tw-pc-head h3{color:#fff;font-size:clamp(1.8rem,3.2vw,2.6rem);line-height:1.15;margin:.35rem 0 .9rem}
.tw-pc-head p{color:rgba(255,255,255,.86);max-width:760px}
.tw-pc-points{list-style:none;margin:1.75rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem;border-top:1px solid rgba(255,255,255,.16);padding-top:1.5rem}
.tw-pc-points strong{display:block;color:#fff;font-family:var(--serif);font-weight:400;font-size:1.15rem;margin-bottom:.3rem}
.tw-pc-points span{display:block;color:rgba(255,255,255,.78);font-size:.86rem;line-height:1.55}
.tw-pc-sub{color:var(--gold);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;margin:2rem 0 1rem}
.tw-pc-exp{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.tw-exp{background:rgba(255,255,255,.06);padding:1.2rem 1.1rem;border-left:2px solid var(--gold)}
.tw-exp h5{color:#fff;font-family:var(--serif);font-weight:400;font-size:1.2rem;margin:0 0 .4rem}
.tw-exp p{color:rgba(255,255,255,.8);font-size:.86rem;line-height:1.55;margin:0}
.tw-pc-cta{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:1.75rem}
.tw-pc-cta p{color:rgba(255,255,255,.82);margin:0;font-size:.95rem}
@media (max-width:1000px){.tw-group-tracks{grid-template-columns:1fr}.tw-pc-points,.tw-pc-exp{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.tw-pc-points,.tw-pc-exp{grid-template-columns:1fr}}

/* ── Invest: leadership ── */
.tw-lead-sec{background:var(--cream)!important}
.tw-lead{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
.tw-lead h2{font-size:clamp(2rem,3.4vw,2.8rem);margin:.3rem 0 1rem}
.tw-lead-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}
.btn-outline-dark{background:transparent!important;color:var(--ink)!important;border:1px solid var(--ink)!important}
.btn-outline-dark:hover{background:var(--ink)!important;color:#fff!important}
.tw-lead-facts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.tw-lead-facts li{background:#fff;padding:1.1rem 1.2rem;border-top:3px solid var(--gold)}
.tw-lead-facts strong{display:block;font-family:var(--serif);font-weight:400;font-size:1.35rem;color:var(--ink)}
.tw-lead-facts span{display:block;font-size:.85rem;color:#4E5E64;margin-top:.2rem}
@media (max-width:900px){.tw-lead{grid-template-columns:1fr}}
@media (max-width:420px){.tw-lead-facts{grid-template-columns:1fr}}

/* ── Early-stage notice (real estate) ── */
.tw-early{background:#FFF7E6;border-top:3px solid var(--gold);border-bottom:1px solid rgba(201,161,90,.35)}
.tw-early p{margin:0;padding:1rem 0;font-size:.95rem;color:var(--ink);line-height:1.6}
.tw-early strong{color:#7A4E00}

/* ── Sample listing (illustration) ── */
.tw-sample-sec{background:var(--cream)!important}
.tw-sample{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr);background:#fff;border-top:3px solid var(--gold);box-shadow:0 8px 28px rgba(30,45,50,.08)}
.tw-sample-photo{position:relative;min-height:340px;background:#1E2D32 url('/images/caribbean-driftwood-beach.jpg') center/cover no-repeat}
.tw-sample-tag{position:absolute;top:1rem;left:1rem;background:var(--ink);color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:.45rem .75rem}
.tw-sample-body{padding:clamp(1.5rem,3vw,2.25rem)}
.tw-sample-loc{margin:0;color:var(--ocean);font-weight:700;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase}
.tw-sample-body h3{font-size:clamp(1.6rem,2.6vw,2.1rem);margin:.3rem 0 .6rem}
.tw-sample-desc{margin:0 0 1.25rem}
.tw-sample-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem 1.75rem;border-top:1px solid var(--hair);padding-top:1.25rem}
.tw-sample-grid h4{margin:0 0 .5rem;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.tw-sample-grid dl{margin:0}
.tw-sample-grid dl div{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0;border-bottom:1px dashed var(--hair);font-size:.88rem}
.tw-sample-grid dt{color:#4E5E64}
.tw-sample-grid dd{margin:0;color:var(--ink);font-weight:700;text-align:right}
.tw-sample-foot{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:1.5rem}
.tw-sample-foot p{margin:0;font-size:.82rem;color:#4E5E64;flex:1 1 260px}
@media (max-width:900px){.tw-sample{grid-template-columns:1fr}.tw-sample-photo{min-height:240px}}
@media (max-width:560px){.tw-sample-grid{grid-template-columns:1fr}}

/* ── Investment focus ── */
.tw-focus-sec{background:#fff!important}
.tw-focus-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--hair)}
.tw-focus{padding:1.75rem 1.5rem;border-bottom:1px solid var(--hair);border-left:1px solid var(--hair)}
.tw-focus:first-child{border-left:0;padding-left:0}
.tw-focus h3{font-size:1.45rem;margin:0 0 .5rem}
.tw-focus p{font-size:.92rem;margin:0}
@media (max-width:1000px){.tw-focus-grid{grid-template-columns:1fr 1fr}.tw-focus{border-left:0;padding-left:0}.tw-focus:nth-child(even){border-left:1px solid var(--hair);padding-left:1.5rem}}
@media (max-width:560px){.tw-focus-grid{grid-template-columns:1fr}.tw-focus:nth-child(even){border-left:0;padding-left:0}}
/* ── Sample listing photo panel ── */
.tw-sample-photo{background:linear-gradient(160deg,#1B2A30 0%,#0e4a57 55%,#007587 100%)!important;display:flex;align-items:center;justify-content:center;overflow:hidden}
.tw-sample-photo::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,255,255,.035) 0 2px,transparent 2px 22px)}
.tw-sample-ph{position:relative;text-align:center;padding:2rem;color:#fff}
.tw-sample-ph span{display:block;font-family:var(--serif);font-size:clamp(1.6rem,2.6vw,2.2rem);line-height:1.1}
.tw-sample-ph small{display:block;margin-top:.6rem;font-size:.85rem;color:rgba(255,255,255,.78);max-width:240px;margin-left:auto;margin-right:auto}
/* ── Region cards: photo-led like destinations ── */
#region .area-pills{display:none}
#region .area-thumb{aspect-ratio:4/3;height:auto!important}
#region .area-card{background:transparent;border:0;box-shadow:none}
#region .area-body{padding:1rem 0 0!important}

.tw-sample-real{background:#1E2D32 url('https://images.unsplash.com/photo-1549294413-26f195200c16?auto=format&fit=crop&w=1200&q=75') center/cover no-repeat!important}
.tw-sample-real::before{background:linear-gradient(0deg,rgba(14,24,28,.65) 0%,rgba(14,24,28,0) 45%)!important}
.tw-sample-cap{position:absolute;left:1rem;right:1rem;bottom:.9rem;z-index:1;color:#fff;font-size:.75rem;line-height:1.4;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.tw-sample-tag{z-index:1}

/* ── DR regions ── */
.tw-regions-sec{background:var(--cream)!important}
.tw-regions{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.tw-regions .tw-focus{border-left:1px solid var(--hair);padding:1.6rem 1.5rem!important}
.tw-regions .tw-focus:nth-child(3n+1){border-left:0;padding-left:0!important}
.tw-home h3{color:var(--ocean)}
.tw-region-tag{display:inline-block;font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#7A4E00;background:#FFF1D6;padding:.2rem .5rem;margin-bottom:.5rem}
@media (max-width:1000px){.tw-regions{grid-template-columns:1fr 1fr!important}.tw-regions .tw-focus{border-left:0!important;padding-left:0!important}.tw-regions .tw-focus:nth-child(even){border-left:1px solid var(--hair)!important;padding-left:1.5rem!important}}
@media (max-width:560px){.tw-regions{grid-template-columns:1fr!important}.tw-regions .tw-focus:nth-child(even){border-left:0!important;padding-left:0!important}}

#hero .hero-wrap{padding-bottom:120px!important}
@media (max-width:640px){#hero .hero-wrap{padding-bottom:96px!important}}

/* ── Regions with opportunities ── */
.tw-region-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.tw-region{background:#fff;padding:1.6rem 1.5rem;border-top:3px solid var(--ocean);display:flex;flex-direction:column}
.tw-region.tw-home{border-top-color:var(--gold)}
.tw-region h3{font-size:1.5rem;margin:0}
.tw-region-sub{margin:.15rem 0 .7rem!important;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#4E5E64!important}
.tw-region p{font-size:.92rem;margin:0 0 1rem}
.tw-region h4{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin:auto 0 .5rem;padding-top:.75rem;border-top:1px solid var(--hair)}
.tw-region ul{margin:0;padding-left:1.05rem;font-size:.88rem;line-height:1.55;color:#3E4C52}
.tw-region li{margin-bottom:.3rem}
.tw-region-note{text-align:center;font-size:.85rem;color:#4E5E64;margin-top:1.5rem!important}
@media (max-width:1000px){.tw-region-grid{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.tw-region-grid{grid-template-columns:1fr}}

/* links inside running text are underlined (accessibility) */
.sms-consent a,.tw-early a,.tw-legal p a{text-decoration:underline;text-underline-offset:2px;color:var(--ocean);font-weight:700}

/* ── Homepage group teaser ── */
.tw-groups-teaser{background:var(--cream)!important}
.tw-gt-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.tw-gt{display:flex;flex-direction:column;background:var(--ink);color:#fff;padding:clamp(1.6rem,3vw,2.25rem);text-decoration:none;border-top:3px solid var(--gold);transition:transform .2s}
.tw-gt:hover{transform:translateY(-3px)}
.tw-gt:focus-visible{outline:3px solid var(--sand);outline-offset:3px}
.tw-gt-k{color:var(--gold);font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.tw-gt h3{color:#fff;font-size:clamp(1.6rem,2.6vw,2.1rem);margin:.4rem 0 .6rem}
.tw-gt p{color:rgba(255,255,255,.85);margin:0 0 1.2rem;flex-grow:1}
.tw-gt-cta{color:#F0C277;font-weight:800;font-size:.92rem}
.tw-gt-cta::after{content:" \2192"}
@media (max-width:820px){.tw-gt-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion: reduce){.tw-gt{transition:none}.tw-gt:hover{transform:none}}
/* ── Inner page header + closing call to action ── */
.tw-page-hero{background:linear-gradient(135deg,var(--ink) 0%,#0e4a57 70%,var(--ocean) 100%);color:#fff;padding:150px 0 64px}
.tw-page-hero h1{color:#fff;font-size:clamp(2.4rem,5vw,3.8rem);margin:.4rem 0 .9rem;line-height:1.05}
.tw-page-hero h1 em{color:#F0C277;font-style:italic}
.tw-page-hero p{color:rgba(255,255,255,.88);max-width:680px;font-size:1.08rem}
.tw-page-kicker{font-size:.85rem!important;color:rgba(255,255,255,.75)!important}
.tw-page-kicker a{color:#F0C277;font-weight:700}
.tw-page-cta{background:var(--ink);color:#fff;padding:clamp(48px,6vw,72px) 0;border-top:3px solid var(--gold)}
.tw-page-cta-inner{display:grid;grid-template-columns:1.3fr 1fr;gap:2rem;align-items:center}
.tw-page-cta h2{color:#fff;font-size:clamp(1.8rem,3vw,2.4rem);margin:0 0 .5rem}
.tw-page-cta p{color:rgba(255,255,255,.85);margin:0}
.tw-page-cta-btns{display:flex;flex-wrap:wrap;gap:.75rem}
@media (max-width:820px){.tw-page-cta-inner{grid-template-columns:1fr}.tw-page-hero{padding:120px 0 48px}}

/* ── Founding investor FAQ ── */
.tw-faq-sec{background:#fff!important}
.tw-faq{max-width:860px;margin:0 auto;border-top:1px solid var(--hair)}
.tw-faq-item{border-bottom:1px solid var(--hair)}
.tw-faq-item summary{list-style:none;cursor:pointer;padding:1.15rem 2.5rem 1.15rem 0;position:relative;font-family:var(--serif);font-size:1.25rem;color:var(--ink);min-height:44px}
.tw-faq-item summary::-webkit-details-marker{display:none}
.tw-faq-item summary::after{content:"+";position:absolute;right:.25rem;top:50%;transform:translateY(-50%);font-family:inherit;font-size:1.6rem;color:var(--ocean)}
.tw-faq-item[open] summary::after{content:"\2212"}
.tw-faq-item summary:focus-visible{outline:3px solid var(--sand);outline-offset:2px}
.tw-faq-a{padding:0 0 1.25rem}
.tw-faq-a p{margin:0;color:#3E4C52;line-height:1.75}

/* ── Planning fees note ── */
.tw-fees{margin-top:2rem;background:#fff;border:1px solid var(--hair);border-top:3px solid var(--gold);padding:clamp(1.4rem,3vw,2rem)}
.tw-fees h3{font-size:clamp(1.4rem,2.4vw,1.8rem);margin:0 0 1rem}
.tw-fees-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem 2rem}
.tw-fees-grid p{margin:0;font-size:.92rem;line-height:1.65;color:#3E4C52}
.tw-fees-grid strong{display:block;color:var(--ink);font-size:1rem;margin-bottom:.25rem}
@media (max-width:860px){.tw-fees-grid{grid-template-columns:1fr}}
.tw-fee-table{width:100%;border-collapse:collapse;margin-top:1.5rem;font-size:.95rem}
.tw-fee-table th,.tw-fee-table td{text-align:left;padding:.75rem .5rem;border-bottom:1px solid var(--hair)}
.tw-fee-table thead th{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:#4E5E64;border-bottom:2px solid var(--ink)}
.tw-fee-table tbody th{font-weight:400;color:var(--ink)}
.tw-fee-table td{font-weight:800;color:var(--ink);white-space:nowrap;text-align:right}
.tw-fee-table thead th:last-child{text-align:right}
.tw-fee-note{font-size:.85rem;color:#4E5E64;margin:1rem 0 0}
@media (max-width:560px){.tw-fee-table td{white-space:normal}}

/* ── "What you won't have to think about" ── */
.tw-nothink{margin:clamp(2rem,4vw,3rem) 0;background:#fff;border:1px solid var(--hair);border-top:3px solid var(--gold);padding:clamp(1.5rem,3vw,2.25rem)}
.tw-nothink-head h3{font-size:clamp(1.6rem,2.6vw,2.1rem);margin:.3rem 0 1.25rem}
.tw-nothink-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem 1.75rem}
.tw-nothink-list li{padding-left:1.6rem;position:relative}
.tw-nothink-list li::before{content:"\2713";position:absolute;left:0;top:.05rem;color:var(--ocean);font-weight:800}
.tw-nothink-list strong{display:block;color:var(--ink);margin-bottom:.15rem}
.tw-nothink-list span{display:block;font-size:.9rem;color:#3E4C52;line-height:1.55}
@media (max-width:900px){.tw-nothink-list{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.tw-nothink-list{grid-template-columns:1fr}}
.tw-promise{color:#F0C277;font-weight:800;display:block;margin-top:.5rem}

/* ── Readability: larger body text (auto-generated from measured sizes; only increases) ── */
#cf-area > option{font-size:0.9375rem!important}
#cf-budget > option{font-size:0.9375rem!important}
#cf-occasion > option{font-size:0.9375rem!important}
#cf-travelers > option{font-size:0.9375rem!important}
#cf-type > option{font-size:0.9375rem!important}
#contact-form > label{font-size:1.0938rem!important}
#main-content > a{font-size:1.0938rem!important}
#main-content > li{font-size:1.0938rem!important}
#main-content > p{font-size:1.0938rem!important}
#main-content > strong{font-size:1.0938rem!important}
#packages > p{font-size:0.9375rem!important}
#tp-when > option{font-size:1.0938rem!important}
#tw-share-form > label{font-size:0.9375rem!important}
#vso > p{font-size:1.0938rem!important}
a.btn{font-size:1.0312rem!important}
a.btn.btn-crimson{font-size:1.0312rem!important}
a.btn.btn-crimson.tw-occ-link{font-size:1.0312rem!important}
a.btn.btn-ocean{font-size:1.0312rem!important}
a.btn.btn-outline-dark{font-size:1.0312rem!important}
a.btn.btn-outline-ocean{font-size:1.0312rem!important}
a.btn.btn-outline-white{font-size:1.0312rem!important}
a.btn.btn-sand{font-size:1.0312rem!important}
a.mobile-nav-link{font-size:0.9375rem!important}
a.nav-cta{font-size:0.9375rem!important}
a.skip-link{font-size:1.0312rem!important}
a.tw-gt > p{font-size:1.0938rem!important}
a.tw-occ-link{font-size:1.0312rem!important}
a.tw-track-link{font-size:1.0312rem!important}
article.tw-focus > p{font-size:1.0312rem!important}
article.tw-occ > p{font-size:1.0312rem!important}
article.tw-region > h4{font-size:0.9375rem!important}
article.tw-region > li{font-size:1.0312rem!important}
article.tw-region > p{font-size:1.0312rem!important}
article.tw-region.tw-home > h4{font-size:0.9375rem!important}
article.tw-region.tw-home > li{font-size:1.0312rem!important}
article.tw-region.tw-home > p{font-size:1.0312rem!important}
article.tw-track > p{font-size:1.0312rem!important}
article.tw-why-card > p{font-size:1.0312rem!important}
button.btn.btn-crimson{font-size:1.0312rem!important}
button.btn.btn-ocean{font-size:1.0312rem!important}
button.csr-card-cta{font-size:0.8438rem!important}
button.pkg-cta{font-size:0.8438rem!important}
div.about-copy > p{font-size:1.0938rem!important}
div.area-body > p{font-size:0.9375rem!important}
div.build-option{font-size:0.9375rem!important}
div.buy-copy > p{font-size:1.0938rem!important}
div.confotur-copy > p{font-size:1.0312rem!important}
div.contact-copy > p{font-size:1.0938rem!important}
div.contact-details > a{font-size:0.9375rem!important}
div.contact-details > span{font-size:0.9375rem!important}
div.csr-card > p{font-size:0.9375rem!important}
div.csr-head > p{font-size:1.0312rem!important}
div.csr-modal-body > p{font-size:1.0312rem!important}
div.csr-modal-body > strong{font-size:1.0312rem!important}
div.csr-modal-cta-row > p{font-size:1.0312rem!important}
div.fbrand > p{font-size:0.9375rem!important}
div.fcol > a{font-size:0.9375rem!important}
div.fcol > h5{font-size:0.8438rem!important}
div.fg > label{font-size:0.8438rem!important}
div.footer-btm > p{font-size:0.8438rem!important}
div.gloss-key{font-size:1.0312rem!important}
div.gloss-key > abbr{font-size:0.8438rem!important}
div.gloss-section-title{font-size:0.8438rem!important}
div.gloss-val{font-size:0.9375rem!important}
div.gloss-val > em{font-size:0.9375rem!important}
div.gloss-val > strong{font-size:0.9375rem!important}
div.hero-text > a{font-size:0.9375rem!important}
div.modal-header > p{font-size:0.9375rem!important}
div.notice > p{font-size:0.8438rem!important}
div.notice > strong{font-size:0.8438rem!important}
div.pkg-day-detail > p{font-size:0.9375rem!important}
div.pkg-day-detail > strong{font-size:1.0312rem!important}
div.pkg-day-num{font-size:0.8438rem!important}
div.pl-text > span{font-size:0.9375rem!important}
div.pl-text > strong{font-size:0.9375rem!important}
div.res-sub{font-size:0.8438rem!important}
div.section-header > p{font-size:1.0938rem!important}
div.sms-consent > a{font-size:0.9375rem!important}
div.sms-consent > p{font-size:0.9375rem!important}
div.step > p{font-size:0.9375rem!important}
div.sub{font-size:0.9375rem!important}
div.track-body > a{font-size:0.9375rem!important}
div.track-body > span{font-size:0.9375rem!important}
div.track-body > strong{font-size:0.9375rem!important}
div.tw-early > p{font-size:1.0312rem!important}
div.tw-early > strong{font-size:1.0312rem!important}
div.tw-exp > p{font-size:0.9375rem!important}
div.tw-faq-a > p{font-size:1.0938rem!important}
div.tw-fees-grid > p{font-size:1.0312rem!important}
div.tw-fees-grid > strong{font-size:1.0938rem!important}
div.tw-follow > span{font-size:0.8438rem!important}
div.tw-fora-copy > p{font-size:1.0312rem!important}
div.tw-gateway-inner > p{font-size:1.0938rem!important}
div.tw-lead > p{font-size:1.0938rem!important}
div.tw-news-inner > p{font-size:1.0938rem!important}
div.tw-occ-feature-copy > p{font-size:1.0938rem!important}
div.tw-occ-feature-copy > strong{font-size:1.0938rem!important}
div.tw-opts > label{font-size:1.0312rem!important}
div.tw-pc-cta > p{font-size:1.0312rem!important}
div.tw-pc-head > p{font-size:1.0938rem!important}
div.tw-plan-field > label{font-size:0.8438rem!important}
div.tw-sample-foot > p{font-size:0.9375rem!important}
div.tw-sample-grid > h4{font-size:0.9375rem!important}
div.tw-share-intro > p{font-size:1.0938rem!important}
div.tw-stat > small{font-size:0.8438rem!important}
div.tw-step > div{font-size:0.9375rem!important}
div.tw-step > strong{font-size:1.0312rem!important}
div.tw-svc > p{font-size:1.0312rem!important}
div.vet-card > h4{font-size:1.0938rem!important}
div.vet-card > p{font-size:0.9375rem!important}
div.vets-cta-row > p{font-size:1.0312rem!important}
fieldset.tw-rating > label{font-size:1.0312rem!important}
fieldset.tw-rating > legend{font-size:0.9375rem!important}
figure.tw-why-quote > figcaption{font-size:0.9375rem!important}
form.tw-news-form > label{font-size:1.0938rem!important}
label.sms-check > span{font-size:0.9375rem!important}
label.tw-consent > span{font-size:0.9375rem!important}
p.disc{font-size:0.8438rem!important}
p.eff{font-size:1.0938rem!important}
p.form-note{font-size:0.8438rem!important}
p.gloss-intro{font-size:1.0312rem!important}
p.pkg-tagline{font-size:0.8438rem!important}
p.sub{font-size:0.8438rem!important}
p.tw-best{font-size:0.9375rem!important}
p.tw-best > span{font-size:0.9375rem!important}
p.tw-best > strong{font-size:0.9375rem!important}
p.tw-fee-note{font-size:0.9375rem!important}
p.tw-hint{font-size:0.9375rem!important}
p.tw-lead{font-size:1.0938rem!important}
p.tw-page-kicker{font-size:0.9375rem!important}
p.tw-page-kicker > a{font-size:0.9375rem!important}
p.tw-region-note{font-size:0.9375rem!important}
p.tw-region-sub{font-size:1.0312rem!important}
p.tw-sample-desc{font-size:1.0938rem!important}
p.tw-sample-loc{font-size:0.9375rem!important}
p.tw-vso-fine{font-size:0.9375rem!important}
p.tw-vso-lead{font-size:1.0938rem!important}
p.tw-why-sub{font-size:1.0938rem!important}
p.tw-yt-more > a{font-size:1.0938rem!important}
span.area-tag{font-size:1.0938rem!important}
span.label{font-size:1.0938rem!important}
span.label.label-light{font-size:1.0938rem!important}
span.perk{font-size:0.9375rem!important}
span.res-text{font-size:0.9375rem!important}
span.res-text > strong{font-size:0.9375rem!important}
span.tw-gt-cta{font-size:1.0312rem!important}
span.tw-gt-k{font-size:0.9375rem!important}
span.tw-region-tag{font-size:0.8438rem!important}
span.tw-sample-cap{font-size:0.9375rem!important}
span.tw-sample-tag{font-size:0.8438rem!important}
ul.buy-list > li{font-size:1.0312rem!important}
ul.nav-links > a{font-size:0.9688rem!important}
ul.pkg-highlights > li{font-size:0.9375rem!important}
ul.svc-list > li{font-size:0.9375rem!important}
ul.tw-lead-facts > span{font-size:0.9375rem!important}
ul.tw-nothink-list > span{font-size:1.0312rem!important}
ul.tw-nothink-list > strong{font-size:1.0938rem!important}
ul.tw-occ-places > span{font-size:1.0312rem!important}
ul.tw-pc-points > span{font-size:0.9375rem!important}
ul.tw-vso-list > li{font-size:1.0312rem!important}

/* ── Readability: stronger overrides for key small text ── */
html body .fcol a{font-size:0.9375rem!important;line-height:1.7}
html body .fcol h5{font-size:0.875rem!important}
html body .footer-btm p{font-size:0.875rem!important}
html body ul.nav-links a{font-size:0.95rem!important}
html body nav.tw-subnav a{font-size:0.9375rem!important}
html body .fg label{font-size:0.9375rem!important}
html body .tw-plan-field label{font-size:0.8125rem!important}
html body #tw-share-form label{font-size:0.9375rem!important}
html body p.disc,html body p.form-note{font-size:0.9rem!important;line-height:1.6}
html body .tw-follow span{font-size:0.875rem!important}
html body ul.tw-lead-facts span,html body ul.tw-pc-points span{font-size:0.95rem!important}
html body .tw-sample-grid h4{font-size:0.8125rem!important}
html body .tw-fee-table thead th{font-size:0.8125rem!important}
html body blockquote.tw-note footer{font-size:0.9rem!important}
html body .tw-stat small{font-size:0.875rem!important}
html body .pkg-tagline,html body button.pkg-cta,html body button.csr-card-cta{font-size:0.9rem!important}
html body .gloss-key abbr,html body .gloss-section-title,html body .pkg-day-num{font-size:0.875rem!important}

/* ════════ Accessibility (ADA / WCAG 2.2 AA) ════════ */
/* Visible keyboard focus everywhere (2.4.7 / 2.4.11) */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible,[role="button"]:focus-visible{
  outline:3px solid #0B6E7F!important;outline-offset:3px!important;box-shadow:0 0 0 6px rgba(240,194,119,.55)!important}
/* On dark backgrounds use gold so the ring stands out */
#nav a:focus-visible,#nav button:focus-visible,#hero a:focus-visible,#hero button:focus-visible,.tw-pc a:focus-visible,.tw-gt:focus-visible,
footer a:focus-visible,footer button:focus-visible,.tw-news a:focus-visible,.tw-news input:focus-visible,.tw-news button:focus-visible,
.tw-gateway a:focus-visible,.tw-page-hero a:focus-visible,.tw-occ-feature a:focus-visible,.tw-photo-band a:focus-visible,.mobile-menu a:focus-visible,.tw-fora a:focus-visible{
  outline-color:#F0C277!important;box-shadow:0 0 0 6px rgba(0,0,0,.35)!important}
/* Checkboxes and radio buttons at least 24px (2.5.8) */
input[type=checkbox],input[type=radio]{width:24px!important;height:24px!important;min-width:24px;accent-color:#007587;cursor:pointer}
/* Small text links get a comfortable tap area */
#contact p a,.contact-info a,.tw-contact a{display:inline-block;min-height:24px;padding:2px 0}
/* Hero pause / play control */
.tw-hero-pause{position:absolute;right:clamp(12px,3vw,32px);bottom:clamp(70px,9vw,110px);z-index:5;display:inline-flex;align-items:center;gap:.45rem;
  min-height:44px;min-width:44px;padding:0 .9rem;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:rgba(14,24,28,.55);
  color:#fff;font:700 .85rem/1 var(--sans,Nunito),sans-serif;cursor:pointer;backdrop-filter:blur(4px)}
.tw-hero-pause:hover{background:rgba(14,24,28,.8)}
#hero{position:relative;overflow:hidden}
/* Very small screens / 400% zoom: header fits at 320px (1.4.10) */
@media (max-width:360px){
  .nav-inner,#nav .container{gap:.5rem!important;padding-left:12px!important;padding-right:12px!important}
  .nav-logo-svg{height:auto!important;width:205px!important;max-width:205px!important}
  .tw-hero-pause .tw-hp-txt{display:none}
}
/* Respect reduced-motion preferences everywhere */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
@media (max-width:480px){ .steps{grid-template-columns:1fr!important} }
#contact span a,.contact-info span a{display:inline-block;min-height:24px;padding:2px 0}

/* ════════ Travel Resources page ════════ */
.tw-res .tw-page-hero{padding-top:150px}
.tw-res-wrap{display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(1.5rem,4vw,3.5rem);padding-top:clamp(2rem,4vw,3rem);padding-bottom:clamp(3rem,6vw,5rem)}
.tw-res-toc{position:sticky;top:100px;align-self:start}
.tw-res-toc-h{font-size:.8rem!important;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#4E5E64!important;margin:0 0 .6rem}
.tw-res-toc ul{list-style:none;margin:0;padding:0;border-left:2px solid var(--hair)}
.tw-res-toc a{display:block;padding:.45rem 0 .45rem 1rem;color:var(--ink);text-decoration:none;font-size:1rem;min-height:24px}
.tw-res-toc a:hover{color:var(--ocean)}
.tw-res-body{max-width:780px}
.tw-res-note{background:#FFF7E6;border-left:3px solid var(--gold);padding:1rem 1.2rem;margin:0 0 2rem;font-size:1.02rem}
.tw-res-sec{padding:0 0 2.25rem;margin-bottom:2.25rem;border-bottom:1px solid var(--hair);scroll-margin-top:100px}
.tw-res-sec h2{font-size:clamp(1.8rem,3vw,2.3rem);margin:0 0 1rem}
.tw-res-sec h3{font-size:1.3rem;margin:1.4rem 0 .4rem}
.tw-res-sec p,.tw-res-sec li{font-size:1.06rem;line-height:1.75;color:#2F3B40}
.tw-res-sec ul{padding-left:1.2rem}
.tw-res-sec li{margin-bottom:.45rem}
.tw-res-sec a{color:var(--ocean);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.tw-check{list-style:none;padding:0!important;margin:0 0 1.25rem}
.tw-check li{position:relative;padding:.7rem .9rem .7rem 2.6rem;background:#fff;border:1px solid var(--hair);margin-bottom:.6rem}
.tw-check li::before{content:"\2713";position:absolute;left:.9rem;top:.65rem;color:#fff;background:var(--ocean);width:1.3rem;height:1.3rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:800}
.tw-res-card{background:#fff;border:1px solid var(--hair);padding:1.25rem 1.4rem;margin:0 0 1.5rem}
.tw-res-alert{border-left:4px solid var(--crimson,#A4122B);background:#FFF9F9}
.tw-res-alert h3{margin-top:0}
.tw-res-cta{background:var(--ink);color:#fff;padding:clamp(1.5rem,3vw,2.25rem);border-top:3px solid var(--gold)}
.tw-res-cta h2{color:#fff;margin:0 0 .5rem;font-size:clamp(1.6rem,2.6vw,2.1rem)}
.tw-res-cta p{color:rgba(255,255,255,.88)!important;margin:0 0 1.2rem}
.tw-res-cta a:focus-visible{outline-color:#F0C277!important}
@media (max-width:900px){.tw-res-wrap{grid-template-columns:1fr}.tw-res-toc{position:static}.tw-res-toc ul{display:flex;flex-wrap:wrap;gap:.25rem .9rem;border:0}.tw-res-toc a{padding:.35rem 0}}
@media print{#nav,.mobile-menu,footer,.tw-res-toc,.tw-res-cta,.tw-print,.tw-page-hero .tw-page-kicker{display:none!important}.tw-page-hero{background:none!important;color:#000!important;padding:0!important}.tw-page-hero h1,.tw-page-hero p{color:#000!important}.tw-res-wrap{display:block}.tw-res-sec a::after{content:" (" attr(href) ")";font-weight:400;font-size:.85em}}
.tw-res-note a,.tw-res-cta p a{color:var(--ocean);font-weight:700;text-decoration:underline;text-underline-offset:2px}
/* Quick links list (resources) */
.tw-ql{list-style:none;padding:0!important;margin:0;border-top:1px solid var(--hair)}
.tw-ql li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:.15rem 1.25rem;padding:.75rem 0;border-bottom:1px solid var(--hair);margin:0!important}
.tw-ql-name{font-weight:800;color:var(--ink);font-size:1.02rem}
.tw-ql-desc{grid-column:1;font-size:.95rem!important;color:#4E5E64}
.tw-ql a{grid-column:2;grid-row:1 / span 2;align-self:center;word-break:break-all;font-size:.98rem!important}
@media (max-width:620px){.tw-ql li{grid-template-columns:1fr}.tw-ql a{grid-column:1;grid-row:auto}}
@media print{.tw-ql a::after{content:none!important}}

/* ════════ Blog ════════ */
.tw-blog-wrap{padding-top:clamp(2rem,4vw,3rem);padding-bottom:clamp(3rem,6vw,5rem)}
.tw-bgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin-bottom:2.5rem}
.tw-bcard{background:#fff;border:1px solid var(--hair);display:flex;flex-direction:column;transition:box-shadow .2s}
.tw-bcard:hover{box-shadow:0 10px 28px rgba(30,45,50,.1)}
.tw-bcard-img img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.tw-bcard-body{padding:1.25rem 1.3rem 1.4rem;display:flex;flex-direction:column;flex:1}
.tw-bcard-cat{margin:0 0 .4rem!important;font-size:.85rem!important;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ocean)!important}
.tw-bcard h2{font-size:1.45rem;line-height:1.2;margin:0 0 .6rem}
.tw-bcard h2 a{color:var(--ink);text-decoration:none}
.tw-bcard h2 a:hover{color:var(--ocean);text-decoration:underline}
.tw-bcard p{font-size:1rem;color:#3E4C52;margin:0 0 .8rem}
.tw-bcard-meta{margin-top:auto!important;font-size:.9rem!important;color:#4E5E64!important}
.tw-blog-cta{max-width:780px}
.tw-post-head{max-width:860px}
.tw-post-head h1{font-size:clamp(2.1rem,4.4vw,3.2rem)!important}
.tw-post-meta{font-size:1rem!important;color:rgba(255,255,255,.85)!important;margin-top:.5rem}
.tw-post{max-width:860px;padding-top:clamp(1.5rem,3vw,2.5rem);padding-bottom:clamp(3rem,6vw,5rem)}
.tw-post-img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;margin:0 0 2rem}
.tw-post-body{max-width:720px;margin:0 auto}
.tw-post-body p,.tw-post-body li{font-size:1.12rem;line-height:1.8;color:#2F3B40}
.tw-post-body h2{font-size:clamp(1.5rem,2.6vw,1.9rem);margin:2rem 0 .6rem}
.tw-post-body ul{padding-left:1.3rem}
.tw-post-body li{margin-bottom:.4rem}
.tw-post-body a{color:var(--ocean);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.tw-post-cta{margin-top:2.5rem}
.tw-post-cta a{color:#fff;text-decoration:none}
.tw-related{margin-top:2.5rem;border-top:1px solid var(--hair);padding-top:1.5rem}
.tw-related h2{margin-top:0}
.tw-related ul{list-style:none;padding:0}
.tw-related li{padding:.7rem 0;border-bottom:1px solid var(--hair)}
.tw-related li a{display:block;font-size:1.1rem}
.tw-related li span{display:block;font-size:.9rem;color:#4E5E64;margin-top:.2rem}
@media (max-width:1000px){.tw-bgrid{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.tw-bgrid{grid-template-columns:1fr}}
@media (prefers-reduced-motion: reduce){.tw-bcard{transition:none}}
.tw-bcard-img img{aspect-ratio:16/9!important;height:auto!important;object-fit:cover!important;width:100%!important}

/* ── About section: desktop layout ── */
@media (min-width:901px){
  #about .about-wrap{align-items:start!important}
  #about .about-visual{position:sticky;top:110px;align-self:start}
  #about .about-main{aspect-ratio:1/1!important;height:auto!important}
  #about .about-main img{object-position:center 40%!important}
}
#about .about-copy .tw-lead{max-width:none!important;width:auto!important}
.tw-about-quote{margin:1.75rem 0 0;padding:1.4rem 1.5rem;background:var(--cream);border-left:3px solid var(--gold)}
.tw-about-quote blockquote{margin:0}
.tw-about-quote p{font-family:var(--serif);font-size:clamp(1.25rem,1.8vw,1.5rem)!important;line-height:1.4;color:var(--ink)!important;margin:0}
.tw-about-quote figcaption{margin-top:.75rem;font-size:.9rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ocean)}
@media (max-width:900px){.tw-about-quote{margin-top:1.25rem}}
#about .about-copy p.tw-lead{display:block!important;grid-template-columns:none!important}
/* Featured (first) blog card spans the full row */
.tw-bcard-feature{grid-column:1 / -1;display:grid;grid-template-columns:1.2fr 1fr}
.tw-bcard-feature .tw-bcard-img img{height:100%!important;aspect-ratio:auto!important;min-height:300px}
.tw-bcard-feature .tw-bcard-body{padding:clamp(1.5rem,3vw,2.25rem);justify-content:center}
.tw-bcard-feature h2{font-size:clamp(1.7rem,2.8vw,2.3rem)}
@media (max-width:820px){.tw-bcard-feature{grid-template-columns:1fr}.tw-bcard-feature .tw-bcard-img img{height:auto!important;aspect-ratio:16/9!important;min-height:0}}

/* Travel pages: 3-column footer (brand · Travel · Company) */
@media (min-width:1025px){ .footer-grid.tw-fg3{grid-template-columns:2fr 1fr 1fr} }
/* Real estate menu: link back to the travel site */
.nav-links a.tw-nav-switch{opacity:.85;font-style:italic}

/* ════════ Spacing system: consistent, tight rhythm ════════
   Section padding: 64px desktop → 44px phone (set above)
   Header → content: 40px desktop → 24px phone
   Block → block inside a section: 40px desktop → 28px phone            */
:root{--tw-gap:clamp(28px,3.2vw,40px)}
/* the quote's attribution line is not the site footer */
blockquote footer,figure footer,.tw-note footer{padding-top:0!important;padding-bottom:0!important;background:none!important}
.tw-note footer{margin-top:.6rem!important}
/* every homepage section starts at the same distance from its edge */
#destinations.section,#destinations{padding-top:clamp(40px,4.5vw,64px)!important}
/* section header → content */
main .section .section-head{margin-bottom:clamp(24px,3vw,40px)!important}
/* block → block */
.tw-why-statement{margin-bottom:var(--tw-gap)!important}
.tw-why-quote{margin-top:var(--tw-gap)!important}
.tw-why-cta{margin-top:clamp(20px,2.2vw,28px)!important}
.tw-nothink{margin:var(--tw-gap) 0!important}
.tw-fora{margin-top:var(--tw-gap)!important}
.tw-fees{margin-top:var(--tw-gap)!important}
#destinations .area-grid + div{margin-top:var(--tw-gap)!important}
/* stacked columns on phones */
@media (max-width:900px){
  .about-wrap,.contact-wrap{gap:28px!important}
}
/* Phones: tighter internal spacing (text sizes and tap targets unchanged) */
@media (max-width:600px){
  .tw-svc{padding:1.15rem 0!important}
  .area-thumb.tw-dest-thumb{height:auto!important;aspect-ratio:16/9!important}
  .area-body{padding:1rem 1.1rem 1.2rem!important}
  .area-grid{gap:20px!important}
  .fg{margin-bottom:.7rem!important}
  .tw-fee-table th,.tw-fee-table td{padding:.55rem .4rem!important}
  .tw-fees{padding:1.15rem!important}
  .tw-fees-grid{gap:1rem!important}
  .tw-nothink{padding:1.25rem!important}
  .tw-nothink-list{gap:.9rem!important}
  .tw-fora{padding:1.4rem!important;gap:1.25rem!important}
  .tw-why-statement{padding:1.5rem!important}
}

/* ════════ Key facts bar (the "lede") ════════ */
.tw-keyfacts{background:#fff;border-bottom:1px solid var(--hair);padding:18px 0}
.tw-kf-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:12px 32px}
.tw-kf-list li{display:flex;align-items:center;gap:10px;font-size:1rem;color:#2F3B40;line-height:1.35}
.tw-kf-list strong{color:var(--ink)}
.tw-kf-ic{flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:var(--gold,#C9A15A);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:800}
@media (max-width:900px){.tw-kf-list{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;justify-items:start}.tw-kf-list li{font-size:.95rem}}
@media (max-width:420px){.tw-kf-list{grid-template-columns:1fr}}
/* ════════ How it works ════════ */
.tw-how{background:var(--cream);padding:clamp(40px,4.5vw,64px) 0}
.tw-how-head{text-align:center;margin-bottom:clamp(24px,3vw,40px)}
.tw-how-head h2{margin:.35rem 0 0;font-size:clamp(1.9rem,3.4vw,2.6rem)}
.tw-how-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.5vw,28px)}
.tw-how-steps li{background:#fff;border:1px solid var(--hair);border-top:3px solid var(--ocean);padding:clamp(1.25rem,2.5vw,1.75rem);position:relative}
.tw-how-n{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--ocean);color:#fff;font-weight:800;font-size:1.1rem;margin-bottom:.75rem}
.tw-how-steps h3{font-size:clamp(1.25rem,2vw,1.45rem);margin:0 0 .35rem}
.tw-how-steps p{margin:0;font-size:1.02rem;line-height:1.6;color:#3E4C52}
.tw-how-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 22px;margin-top:clamp(24px,3vw,36px)}
.tw-how-alt{color:var(--ocean);font-weight:700;text-decoration:underline;text-underline-offset:3px;min-height:24px;display:inline-flex;align-items:center}
@media (max-width:760px){.tw-how-steps{grid-template-columns:1fr}}
/* Fora perk list uses check marks */
.tw-fora-steps .tw-step span{font-size:1rem}

/* ════════ Signature Destinations ════════ */
.tw-sig{margin-bottom:var(--tw-gap,40px)}
.tw-sig-title{font-size:clamp(1.6rem,2.8vw,2.1rem);margin:0 0 clamp(18px,2.4vw,26px);text-align:center}
.tw-sig-title span{display:block;font-family:var(--sans,Nunito),sans-serif;font-size:1rem;font-weight:600;color:#4E5E64;margin-top:.35rem;letter-spacing:0}
.tw-sig-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,24px)}
.tw-sig-card{background:#fff;border:1px solid var(--hair);display:flex;flex-direction:column;overflow:hidden}
.tw-sig-img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.tw-sig-body{padding:1.1rem 1.25rem 1.3rem;display:flex;flex-direction:column;gap:.35rem;flex:1}
.tw-sig-badge{align-self:flex-start;background:#FFF4DE;color:#7A5A12;font-size:.8rem;font-weight:800;letter-spacing:.04em;padding:.25rem .6rem;border-radius:999px}
.tw-sig-body h4{font-size:clamp(1.4rem,2.2vw,1.65rem);margin:.35rem 0 0}
.tw-sig-places{margin:0;color:var(--ocean);font-weight:700;font-size:.98rem}
.tw-sig-body p{margin:0;font-size:1rem;line-height:1.55;color:#2F3B40}
.tw-sig-good{color:#4E5E64!important;font-style:italic}
.tw-sig-cta{margin-top:auto;padding-top:.6rem;color:var(--crimson,#A4122B);font-weight:800;text-decoration:none;min-height:24px;display:inline-block}
.tw-sig-cta:hover{text-decoration:underline}
.tw-region-title{font-size:clamp(1.3rem,2.2vw,1.6rem);text-align:center;margin:0 0 clamp(16px,2vw,24px);color:#4E5E64}
@media (max-width:980px){.tw-sig-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.tw-sig-grid{grid-template-columns:1fr}}

/* ════════ Close to Home (U.S. getaways) ════════ */
.tw-near{margin-top:var(--tw-gap,40px)}
.tw-near-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.8vw,20px)}
.tw-near-card{background:#fff;border:1px solid var(--hair);display:flex;flex-direction:column;overflow:hidden}
.tw-near-card img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.tw-near-body{padding:.9rem 1rem 1.05rem;display:flex;flex-direction:column;gap:.3rem;flex:1}
.tw-near-body h4{font-size:clamp(1.2rem,1.8vw,1.35rem);margin:.3rem 0 0}
.tw-near-body p{margin:0;font-size:.98rem;line-height:1.5;color:#2F3B40}
@media (max-width:980px){.tw-near-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.tw-near-grid{grid-template-columns:1fr 1fr;gap:12px}.tw-near-body{padding:.7rem .75rem .85rem}.tw-near-body h4{font-size:1.1rem}.tw-near-body p{font-size:.92rem!important;line-height:1.45}.tw-near-card .tw-sig-badge{font-size:.72rem!important;padding:.2rem .5rem}}
@media (max-width:340px){.tw-near-grid{grid-template-columns:1fr}}
.tw-near-more{background:var(--ink);border-color:var(--ink);justify-content:center}
.tw-near-more .tw-near-body{justify-content:center;gap:.6rem;padding:1.4rem 1.25rem}
.tw-near-more h4{color:#fff;font-size:clamp(1.35rem,2vw,1.55rem)}
.tw-near-more p{color:rgba(255,255,255,.88)!important}
.tw-near-btn{align-self:flex-start;margin-top:.4rem}
.tw-near-more a:focus-visible{outline-color:#F0C277!important}
/* Planning fees: its own section just before the contact form */
.tw-fees-sec{background:var(--cream)!important}
.tw-fees-sec .tw-fees{margin-top:0!important;max-width:1000px;margin-left:auto;margin-right:auto}

/* Homepage backgrounds after the Destinations/Why swap */
main > #why{background:#fff!important}
main > #occasions{background:var(--cream)!important}
main > #groups{background:#fff!important}
main > #quiz{background:var(--cream)!important}
main > #reviews{background:#fff!important}
main > #about{background:var(--cream)!important}
main > #fees{background:#fff!important}
main > #fees + #contact{background:var(--cream)!important}

/* Heading levels fixed for screen readers; visual styles unchanged */
.fcol .fcol-h{font-family:var(--sans,Nunito),sans-serif!important;font-size:0.875rem!important;font-weight:800;letter-spacing:0.16em;text-transform:uppercase;color:var(--sand);margin:0 0 1.1rem;line-height:1.3}
.tw-svc h3{font-family:var(--serif);font-weight:400;font-size:1.4rem;margin:0 0 .5rem;color:var(--navy)}
.step h3{font-size:1.1rem;color:var(--navy);margin-bottom:0.5rem}
.buy-panel h3{font-size:1.45rem;color:var(--white);margin-bottom:0.4rem}
.vet-card h3{font-size:1rem;color:var(--navy);margin-bottom:0.5rem}

/* ════════ Homepage slim-down ════════ */
/* Reviews: compact "share your trip" strip until 3+ reviews are published */
#reviews.tw-reviews-compact{padding:clamp(32px,3.5vw,44px) 0!important}
#reviews.tw-reviews-compact .section-head,#reviews.tw-reviews-compact #tw-review-grid{display:none!important}
#reviews.tw-reviews-compact .tw-share{margin-top:0}
/* Optional trip details */
.tw-more{border:1px solid var(--hair);margin:.25rem 0 1rem;background:#fff}
.tw-more summary{cursor:pointer;padding:.85rem 1rem;font-weight:800;color:var(--ocean);min-height:44px;display:flex;align-items:center;list-style:none}
.tw-more summary::-webkit-details-marker{display:none}
.tw-more summary::before{content:"+";display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:2px solid var(--ocean);margin-right:.6rem;font-weight:800;line-height:1}
.tw-more[open] summary::before{content:"\2212"}
.tw-more-body{padding:0 1rem .5rem}
/* Meet Troy strip */
.tw-meet{background:#fff;padding:clamp(32px,3.5vw,48px) 0;border-bottom:1px solid var(--hair)}
.tw-meet-inner{display:flex;align-items:center;gap:clamp(18px,3vw,36px);max-width:900px}
.tw-meet-img{width:clamp(104px,12vw,160px);height:clamp(104px,12vw,160px);border-radius:50%;object-fit:cover;object-position:center 30%;flex:0 0 auto;border:4px solid var(--cream)}
.tw-meet-copy h2{font-size:clamp(1.6rem,2.6vw,2.1rem);margin:0 0 .4rem}
.tw-meet-copy p{margin:0 0 .6rem;font-size:1.08rem;line-height:1.65;color:#2F3B40}
.tw-meet-link{color:var(--ocean);font-weight:800;text-decoration:underline;text-underline-offset:3px;min-height:24px;display:inline-block}
@media (max-width:600px){.tw-meet-inner{flex-direction:column;text-align:center}}
.tw-dest-more{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-top:var(--tw-gap,40px)}
.tw-dest-more span{color:#4E5E64;font-size:.98rem}
.tw-destpage .tw-region-title{margin-top:var(--tw-gap,40px)}
.tw-destpage .tw-page-hero{padding-top:150px}

/* Share-your-trip form: aligned fields */
.tw-share-form .form-row{align-items:start}
.tw-share-form .form-row > .fg{display:flex;flex-direction:column}
.tw-share-form .tw-rating legend{text-transform:uppercase;letter-spacing:1.5px;font-size:15px!important;margin-bottom:5.6px;padding:0}
.tw-share-form .tw-files{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px}
.tw-share-form .tw-files .fg{margin-bottom:.5rem}
.tw-share-form input[type=file]{min-height:47px;padding:.55rem .6rem;border:1px solid #B9C3C7;background:var(--cream);box-sizing:border-box}
.tw-field-hint{display:block;margin-top:.35rem;font-size:.85rem;color:#4E5E64}
@media (max-width:760px){.tw-share-form .tw-files{grid-template-columns:1fr}}
#share{scroll-margin-top:100px}

/* ════════ Forms on phones ════════ */
/* 16px text in every field so iPhones don't zoom in when tapping */
input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{font-size:16px!important}
@media (max-width:600px){
  /* more room for the fields */
  .container{padding-left:20px!important;padding-right:20px!important}
  .contact-form{padding:22px 16px!important}
  .tw-share-form,.contact-form form,.tw-news-form{width:100%}
  /* labels: shorter tracking so they don't wrap awkwardly */
  .fg label,.tw-share-form label,.tw-share-form .tw-rating legend{letter-spacing:.06em!important;font-size:.85rem!important;line-height:1.35}
  .fg{margin-bottom:.85rem!important}
  .fg input,.fg select,.fg textarea,.tw-share-form input[type=text],.tw-share-form input[type=email],.tw-share-form input[type=url],.tw-share-form textarea{min-height:48px;width:100%!important;box-sizing:border-box}
  /* optional details panel: fields line up with the rest of the form */
  .tw-more{margin-left:0;margin-right:0}
  .tw-more summary{font-size:.95rem;padding:.7rem .85rem}
  .tw-more-body{padding:0 .85rem .35rem}
  /* rating: two neat columns */
  .tw-share-form .tw-rating{display:grid;grid-template-columns:1fr 1fr;column-gap:12px}
  .tw-share-form .tw-rating legend{grid-column:1 / -1}
  .tw-share-form .tw-rating label{margin:0!important;min-height:44px}
  /* text-message consent: compact */
  .sms-consent{padding:12px 14px!important}
  .sms-consent p{font-size:.85rem!important;line-height:1.5!important;margin:0 0 .5rem!important}
  .sms-check span{font-size:.92rem!important;line-height:1.4}
  /* buttons full width */
  .contact-form button[type=submit],.tw-share-form button[type=submit]{width:100%}
}
@media (max-width:360px){ .tw-share-form .tw-rating{grid-template-columns:1fr} }
/* Optional details: a simple toggle line, fields aligned with the rest of the form */
.tw-more{border:0!important;background:transparent!important;margin:.25rem 0 .85rem!important}
.tw-more summary{padding:.6rem 0!important;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.tw-more[open] summary{margin-bottom:.85rem;border-bottom-color:transparent}
.tw-more-body{padding:0!important}
/* Language switch in the top menu */
.nav-links a.tw-lang{font-weight:700;opacity:.9}

/* Book-a-call */
.tw-callbox{display:flex;flex-direction:column;gap:.45rem;align-items:flex-start;background:#fff;border:1px solid var(--hair);border-left:3px solid var(--ocean);padding:1rem 1.15rem;margin:1rem 0 1.25rem}
.tw-callbox strong{color:var(--ink);font-size:1.05rem}
.tw-callbox span{color:#3E4C52;font-size:1rem;line-height:1.55}
.tw-callbox .btn{margin-top:.25rem}
.tw-plan-alt a.tw-call{color:#F0C277;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.tw-how-cta .btn-outline-dark{background:#fff}
.tw-plan-alt + .tw-plan-alt{margin-top:-.75rem}

/* Call-to-action box inside blog posts */
.tw-inline-cta{background:var(--cream);border-left:3px solid var(--crimson,#A4122B);padding:1.1rem 1.25rem;margin:1.75rem 0}
.tw-inline-cta p{margin:0 0 .85rem!important;font-size:1.05rem!important;color:#2F3B40}
.tw-inline-cta-btns{display:flex;flex-wrap:wrap;gap:10px 14px}
.tw-inline-cta .btn{text-decoration:none!important}
.tw-inline-cta .btn-crimson{color:#fff!important}
.tw-inline-cta .btn-outline-dark{background:#fff;color:var(--ink)!important}
@media (max-width:480px){.tw-inline-cta-btns .btn{width:100%;text-align:center}}

/* ════════ Contact section on phones and tablets: form first, contact details last ════════ */
@media (max-width:1024px){
  .contact-wrap{display:flex!important;flex-direction:column;gap:0!important}
  .contact-copy{display:contents}
  .contact-copy > .label{order:1}
  .contact-copy > h2{order:2}
  .contact-copy > p{order:3;margin-bottom:1.5rem}
  .contact-wrap > .contact-form{order:4;margin-bottom:2rem}
  .contact-copy > .tw-callbox{order:5;margin-top:0}
  .contact-copy > .tw-note{order:6;margin:0 0 1.5rem}
  .contact-copy > .tracks{order:7}
  .contact-copy > .contact-details{order:8}
  .contact-copy > .tw-follow{order:9}
  .contact-copy > .notice{order:10}
}
/* Featured trip post (Oct 2026) */
.tw-post-sub{font-size:1.1rem!important;color:rgba(255,255,255,.92)!important;margin-top:.4rem}
.tw-post-note{background:#FAF7F2;border-left:4px solid #007587;padding:.9rem 1.1rem;font-size:1rem!important}
.tw-post-fig{margin:2rem 0}
.tw-post-fig img{display:block;width:100%;height:auto;border-radius:6px}
.tw-post-fig-tall img{max-width:480px;margin:0 auto}
.tw-post-fig figcaption{margin-top:.6rem;font-size:.95rem;color:#4E5E64;text-align:center}
.tw-post-quote{margin:1.5rem 0;padding:1.2rem 1.4rem;border-left:4px solid #F0C277;background:#FAF7F2}
.tw-post-quote p{font-family:'Forum',serif;font-size:1.35rem!important;line-height:1.5!important;color:#1E2D32!important;margin:0}
.tw-post-quote footer{margin-top:.7rem;font-size:.95rem;font-weight:700;color:#4E5E64}
.tw-sig-trip{display:inline-block;margin:.2rem 0 .6rem;font-weight:700;color:#007587;text-decoration:underline;text-underline-offset:2px;min-height:24px;line-height:24px}
.tw-post-lede{font-size:1.25rem!important;line-height:1.75!important}
.tw-post-toc{background:#FAF7F2;border:1px solid var(--hair,#E3DED5);border-radius:8px;padding:1.1rem 1.4rem;margin:1.75rem 0}
.tw-post-toc h2{font-size:1.3rem!important;margin:0 0 .6rem!important}
.tw-post-toc ul{margin:0;padding-left:1.1rem}
.tw-post-toc li{margin:.35rem 0}
.tw-post-toc a{display:inline-block;min-height:24px}
.tw-post-body h3{font-size:1.35rem;margin:1.8rem 0 .5rem}
.tw-post-pair{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:2rem 0}
.tw-post-pair .tw-post-fig{margin:0}
.tw-post-pair img{aspect-ratio:3/4;object-fit:cover}
@media (max-width:480px){.tw-post-pair{gap:.6rem}.tw-post-pair figcaption{font-size:.85rem}}
.tw-post-gallery{margin:1rem 0 2rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr))}
.tw-gallery-hint{font-size:.95rem!important;color:#4E5E64!important;margin:0}
.tw-faq h3{font-size:1.15rem;margin:1.3rem 0 .3rem}
.tw-post-body h2[id],.tw-post-body h3{scroll-margin-top:90px}
/* Featured trip band (homepage) */
.tw-ftrip{background:var(--cream,#FAF7F2)}
.tw-ftrip-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
.tw-ftrip-img{display:block;overflow:hidden;border-top:3px solid #F0C277}
.tw-ftrip-img img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform .6s ease}
.tw-ftrip-img:hover img{transform:scale(1.03)}
.tw-ftrip-body h2{font-size:clamp(1.8rem,3.4vw,2.6rem);margin:.4rem 0 .5rem}
.tw-ftrip-body .tw-ftrip-meta{font-weight:700;color:#007587;margin:0 0 .9rem;font-size:1rem}
.tw-ftrip-body p{font-size:1.08rem;line-height:1.7;color:#2F3B40}
.tw-ftrip-btns{display:flex;flex-wrap:wrap;gap:12px 14px;margin-top:1.4rem}
@media (max-width:820px){.tw-ftrip-grid{grid-template-columns:1fr}}

/* homepage "Share your trip" card links to /review */
.tw-share.tw-share-cta{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
.tw-share.tw-share-cta .tw-share-intro{display:flex;align-items:center;justify-content:space-between;gap:1.5rem 2.5rem;flex-wrap:wrap;width:100%}
.tw-share.tw-share-cta .tw-share-intro p{max-width:560px;margin:0}
.tw-share.tw-share-cta .tw-share-intro .btn{margin-top:0}

/* social icons: keep rows tidy on phones (6 icons incl. LinkedIn) */
.social-row,.tw-follow{align-items:center}
.sb{display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 auto}
@media (max-width:600px){
  .tw-follow{gap:.55rem}
  .tw-follow>span{flex-basis:100%;margin:0 0 .15rem}
  .social-row{gap:.55rem}
}
@media (max-width:360px){
  .social-row,.tw-follow{gap:.4rem}
  .sb{width:40px!important;height:40px!important}
  .sb svg{width:18px;height:18px}
}

/* ════════ Dominican Republic landing page ════════ */
.tw-dr-hero-ctas{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}
.tw-dr-hero-ctas .btn{min-height:44px;display:inline-flex;align-items:center}
.tw-dr-btn-ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.75)}
.tw-dr-btn-ghost:hover,.tw-dr-btn-ghost:focus-visible{background:#fff;color:var(--ink)}
.tw-dr-facts{list-style:none;margin:2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.22);max-width:900px}
.tw-dr-facts li{background:rgba(14,48,58,.55);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.2rem}
.tw-dr-facts strong{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#F0C277}
.tw-dr-facts span{color:#fff;font-size:1rem}
.tw-dr-band{background:var(--cream)}
.tw-dr-split{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
.tw-dr-split h2{margin:.4rem 0 .9rem}
.tw-dr-split p{margin-bottom:1.4rem}
.tw-dr-checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.9rem}
.tw-dr-checks li{position:relative;padding-left:2rem;line-height:1.55;color:var(--text)}
.tw-dr-checks li::before{content:"";position:absolute;left:0;top:.2em;width:1.2rem;height:1.2rem;border-radius:50%;background:var(--ocean) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3' d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center/70% no-repeat}
.tw-dr-more{max-width:860px;margin:1.75rem auto 0;color:var(--muted);line-height:1.8}
.tw-dr-more a{color:var(--ocean);font-weight:700}
.tw-drpage .tw-sig-trip{display:inline-flex;min-height:44px;align-items:center}
@media (max-width:900px){.tw-dr-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.tw-dr-split{grid-template-columns:1fr}}
@media (max-width:420px){.tw-dr-facts{grid-template-columns:1fr}}

/* Review photo uploader (photos go straight to Cloudinary as they're picked) */
.tw-photos-label{display:block;font-weight:700;font-size:.82rem;margin-bottom:.5rem;color:var(--ink)}
.tw-opt{font-weight:400;opacity:.8}
.tw-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;border:0!important;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;left:0;top:0}
.tw-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.6rem;margin-bottom:.6rem}
.tw-photo-grid:empty{display:none}
.tw-ph-tile{position:relative;aspect-ratio:1;border-radius:4px;overflow:hidden;background:#E8EEF0;border:1px solid #B9C3C7}
.tw-ph-tile img{width:100%;height:100%;object-fit:cover;display:block}
.tw-ph-tile .tw-ph-name{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:.4rem;font-size:.7rem;text-align:center;color:var(--ink);word-break:break-all}
.tw-ph-bar{position:absolute;left:0;right:0;bottom:0;height:6px;background:rgba(0,0,0,.25)}
.tw-ph-bar i{display:block;height:100%;width:0;background:#00C4DE;transition:width .2s}
.tw-ph-state{position:absolute;left:6px;bottom:10px;font-size:.7rem;font-weight:800;background:rgba(255,255,255,.92);color:var(--ink);padding:2px 6px;border-radius:10px}
.tw-ph-tile.done .tw-ph-bar{display:none}
.tw-ph-tile.done .tw-ph-state{background:#1E7B4A;color:#fff}
.tw-ph-tile.fail{border:2px solid #B3261E}
.tw-ph-tile.fail .tw-ph-state{background:#B3261E;color:#fff}
.tw-ph-retry{position:absolute;inset:0;width:100%;border:0;background:rgba(179,38,30,.15);color:#B3261E;font-weight:800;font-size:.8rem;cursor:pointer}
.tw-ph-x{position:absolute;top:4px;right:4px;width:28px;height:28px;border-radius:50%;border:0;background:rgba(0,0,0,.6);color:#fff;font-size:16px;line-height:28px;cursor:pointer;padding:0}
.tw-ph-x:focus-visible,.tw-ph-retry:focus-visible{outline:3px solid var(--sand);outline-offset:1px}
.tw-photo-add{display:inline-flex!important;align-items:center;gap:.4rem;padding:.65rem 1rem;border:2px dashed #8FA3AA;border-radius:4px;background:#fff;font-weight:700!important;font-size:.95rem!important;cursor:pointer;color:var(--ink)}
.tw-photo-add span{font-size:1.2rem;line-height:1}
.tw-photo-add[hidden]{display:none!important}
#rv-photo-pick:focus-visible + .tw-photo-add{outline:3px solid var(--sand);outline-offset:2px}
.tw-photo-add{text-transform:none!important;letter-spacing:normal!important}

/* Corporate post: at-a-glance stats and comparison table */
.tw-glance{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin:1.75rem 0}
.tw-glance-item{background:#F3F8F9;border-top:3px solid #007587;padding:1rem .9rem;display:flex;flex-direction:column;gap:.3rem}
.tw-glance-num{font-family:'Forum',Georgia,serif;font-size:1.7rem;line-height:1.1;color:#0B2A3A}
.tw-glance-lbl{font-size:.88rem;line-height:1.35;color:#3A4A52}
@media (max-width:700px){.tw-glance{grid-template-columns:1fr 1fr}}
.tw-compare-wrap{overflow-x:auto;margin:1rem 0 1.75rem}
.tw-compare{width:100%;border-collapse:collapse;font-size:.95rem;min-width:520px}
.tw-compare th,.tw-compare td{padding:.7rem .8rem;text-align:left;vertical-align:top;border-bottom:1px solid #DCE4E7}
.tw-compare thead th{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:#3A4A52}
.tw-compare thead th:last-child{color:#fff;background:#007587}
.tw-compare tbody td:last-child{background:#F0F8F9;font-weight:600;color:#0B2A3A}
.tw-compare tbody th{font-weight:700;color:#0B2A3A;white-space:nowrap}

.tw-hubmap svg{width:100%;height:auto;display:block}

/* Uniform text in posts that opt in */
.tw-uniform .tw-post-body p,.tw-uniform .tw-post-body li{font-size:1.12rem!important;line-height:1.8!important;margin:0 0 1.1rem}
.tw-uniform .tw-post-body ul{margin:0 0 1.2rem}
.tw-uniform .tw-post-body li{margin:0 0 .45rem}
.tw-uniform .tw-faq h3{font-size:1.35rem!important;margin:1.6rem 0 .4rem}
.tw-uniform .tw-faq p{margin:0 0 .6rem}
.tw-uniform .tw-post-fig figcaption{font-size:.95rem}

.tw-credit{display:block;font-size:.8rem;color:#5b6870;margin-top:.15rem}
/* v70: compact text-message consent, form lead line, offer line, mobile action bar */
.sms-consent.sms-compact{padding:.85rem 1rem}
.sms-consent.sms-compact .sms-check{margin-top:0;margin-bottom:.5rem}
p.sms-fine{font-size:.8125rem!important;line-height:1.55;margin:.35rem 0 .4rem!important;color:var(--muted)}
.sms-terms summary{cursor:pointer;font-size:.8125rem;font-weight:700;color:var(--ocean);text-decoration:underline;text-underline-offset:2px}
.sms-terms[open] summary{margin-bottom:.5rem}
.sms-terms p{font-size:.8125rem!important;line-height:1.55}
.tw-form-lead{margin:-.35rem 0 1.1rem;color:#2F3B40;font-size:1rem;line-height:1.55}
.tw-offer-line{text-align:center;max-width:46rem;margin:-.5rem auto 1.75rem;font-size:1.05rem;color:#2F3B40}
.tw-mbar{display:none}
@media (max-width:760px){
  .tw-mbar{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:900;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:#0B2A3A;box-shadow:0 -4px 16px rgba(0,0,0,.18)}
  .tw-mbar a{display:flex;align-items:center;justify-content:center;gap:6px;min-height:46px;border-radius:8px;font-weight:700;font-size:.95rem;text-decoration:none;color:#fff;border:1.5px solid rgba(255,255,255,.45)}
  .tw-mbar a.tw-mbar-main{background:#A4122B;border-color:#A4122B}
  .tw-mbar a:focus-visible{outline:3px solid #F0C277;outline-offset:2px}
  .tw-mbar svg{width:18px;height:18px;flex-shrink:0}
  body.has-mbar{padding-bottom:72px}
  body.has-mbar .tw-chat-btn,body.has-mbar .wa-float{bottom:84px!important}
}
@media (max-width:760px){body.has-mbar .tw-float{display:none!important}}
/* v71: header phone (wide desktops only; the footer and DR page carry it on smaller screens) */
.nav-phone-li{display:none}
@media (min-width:1360px){
  #nav .inner{max-width:1330px}
  #nav .nav-links a{padding:0 0.62rem}
  #nav .nav-links a:not(.nav-cta)::after{left:0.62rem;right:0.62rem}
  .nav-phone-li{display:list-item;list-style:none}
  #nav a.nav-phone{display:inline-flex;align-items:center;gap:6px;color:#F0C277;font-weight:700;white-space:nowrap;text-decoration:none}
  #nav a.nav-phone:focus-visible{outline:3px solid #F0C277;outline-offset:3px}
  #nav a.nav-phone svg{width:16px;height:16px}
}
/* v74: compact header phone, 761-1359px */
.nav-phone-mini{display:none}
@media (min-width:761px) and (max-width:1359px){
  #nav a.nav-phone-mini{display:inline-flex;align-items:center;gap:6px;margin-left:auto;color:#F0C277;font-weight:700;white-space:nowrap;text-decoration:none;min-height:44px;padding:0 .4rem;border-radius:8px}
  #nav a.nav-phone-mini svg{width:18px;height:18px;flex-shrink:0}
  #nav a.nav-phone-mini:focus-visible{outline:3px solid #F0C277;outline-offset:2px}
}
/* nav links visible (1101-1359): icon-only round button so the menu still fits */
@media (min-width:1101px) and (max-width:1359px){
  #nav a.nav-phone-mini{order:3;margin-left:.25rem;width:44px;justify-content:center;padding:0;border:1.5px solid rgba(240,194,119,.7);border-radius:50%}
  #nav a.nav-phone-mini .npm-num{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
@media (min-width:1101px) and (max-width:1359px){
  #nav .inner{max-width:none;padding:0 1.25rem;gap:.75rem}
  #nav .nav-links a{padding:0 .5rem}
  #nav .nav-links a:not(.nav-cta)::after{left:.5rem;right:.5rem}
  #nav .nav-links .nav-cta{margin-left:.35rem;padding:0 1rem}
}
@media (min-width:1101px) and (max-width:1199px){
  #nav .inner{padding:0 1rem;gap:.5rem}
  #nav .nav-links a{padding:0 .4rem;font-size:.95rem}
  #nav .nav-links a:not(.nav-cta)::after{left:.4rem;right:.4rem}
  #nav .nav-links .nav-cta{padding:0 .85rem}
  .nav-logo-svg{height:46px}
}
@media (min-width:1101px) and (max-width:1359px){
  #nav .inner{justify-content:flex-start}
  #nav .nav-links{margin-left:auto}
  #nav a.nav-phone-mini{margin-left:.6rem}
}
/* v75: round phone button in the header on phones too (bottom call bar stays) */
@media (max-width:760px){
  #nav a.nav-phone-mini{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;margin-right:.5rem;width:44px;height:44px;padding:0;color:#F0C277;border:1.5px solid rgba(240,194,119,.7);border-radius:50%;text-decoration:none;flex-shrink:0}
  #nav a.nav-phone-mini svg{width:18px;height:18px}
  #nav a.nav-phone-mini .npm-num{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  #nav a.nav-phone-mini:focus-visible{outline:3px solid #F0C277;outline-offset:2px}
}
@media (max-width:420px){ .nav-logo-svg{height:44px} #nav a.nav-phone-mini{width:40px;height:40px;margin-right:.35rem} }
@media (max-width:350px){ .nav-logo-svg{height:36px} #nav .inner{padding:0 .75rem} }
@media (max-width:760px){ #nav .inner{gap:.5rem} }
@media (max-width:420px){ #nav .nav-logo-svg{height:44px;width:auto} }
@media (max-width:350px){ #nav .nav-logo-svg{height:36px;width:auto} }

/* v86: shorter mobile homepage, reviews up top */
.tw-m-more{display:none}
@media (max-width:700px){
  #occasions,.tw-photo-band,.tw-ftrip,#why{display:none}
  #occasions:target,#why:target{display:block}
  #destinations .tw-sig-card:nth-child(n+4){display:none}
  #reviews .tw-review-grid .tw-review:nth-child(n+3){display:none}
  #reviews .tw-review-photo{aspect-ratio:auto;height:220px;object-fit:cover}
  .tw-m-more{display:block;padding:2rem 0}
  .tw-m-more h2{font-size:1.4rem;margin:0 0 .75rem}
  .tw-m-more ul{list-style:none;margin:0;padding:0;border-top:1px solid rgba(11,42,58,.15)}
  .tw-m-more li{border-bottom:1px solid rgba(11,42,58,.15)}
  .tw-m-more a{display:flex;justify-content:space-between;align-items:center;min-height:48px;padding:.6rem .25rem;font-weight:700;text-decoration:none}
  .tw-m-more a::after{content:"\2192";margin-left:1rem}
}
