@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@400;500;600&display=swap');
:root {
  --site-width:1320px;
  --gutter:clamp(24px,5vw,72px);
  font-family:'DM Sans',Arial,sans-serif;
  color:#102b3d;
  background:#f7f8f5;
  scroll-behavior:smooth
}
* {
  box-sizing:border-box
}
body {
  margin:0
}
a {
  color:inherit
}
img {
  display:block;
  width:100%;
  object-fit:cover
}
.serif {
  font-family:'Playfair Display',Georgia,serif;
  font-weight:400
}
.shell {
  max-width:var(--site-width);
  margin:auto;
  padding:0 var(--gutter)
}
.top {
  background:#0b2639;
  color:#f9f8f4;
  position:relative;
  z-index:2
}
.nav {
  min-height:84px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  border-bottom:1px solid #ffffff33
}
.brand {
  text-decoration:none;
  font-family:'Playfair Display',Georgia,serif;
  font-size:1.55rem;
  letter-spacing:-.035em;
  white-space:nowrap
}
.brand b {
  font-weight:400;
  color:#77d1ce
}
.navlinks {
  display:flex;
  align-items:center;
  gap:clamp(16px,2.6vw,39px);
  font-size:.89rem;
  font-weight:600
}
.navlinks a {
  text-decoration:none
}
.navlinks a:hover,.navlinks a:focus-visible {
  color:#7dd9d4
}
.navlinks .navcta {
  border:1px solid #8ad0ce;
  padding:12px 19px;
  border-radius:2px
}
.hero {
  background:#0b2639;
  color:#fff;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  min-height:600px
}
.heroText {
  padding:clamp(56px,6vw,86px) clamp(26px,3.2vw,52px) clamp(56px,6vw,86px) max(var(--gutter),calc((100vw - var(--site-width))/2 + 72px));
  align-self:center;
  min-width:0;
  width:100%
}
.eyebrow {
  font-size:.74rem;
  letter-spacing:.19em;
  text-transform:uppercase;
  font-weight:700;
  color:#67cbc9
}
h1 {
  font-size:clamp(2.9rem,4.5vw,4.65rem);
  line-height:1.08;
  letter-spacing:-.045em;
  margin:23px 0 23px;
  max-width:620px
}
.heroText p {
  font-size:1.08rem;
  line-height:1.75;
  color:#dbe7e9;
  max-width:570px;
  margin:0 0 38px
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:17px;
  background:#e7a877;
  color:#0b2639;
  padding:16px 22px;
  text-decoration:none;
  font-weight:700;
  font-size:.9rem;
  min-height:54px;
  transition:background .2s,transform .2s
}
.button:hover {
  background:#f4c39c;
  transform:translateY(-2px)
}
.button span {
  font-size:1.25rem;
  line-height:0
}
.heroVisual {
  min-height:550px;
  position:relative;
  overflow:hidden;
  background:#2b6472
}
.heroVisual img {
  height:100%;
  position:absolute;
  inset:0
}
.heroVisual:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#0b263933,transparent 35%),linear-gradient(0deg,#08283c86,transparent 33%)
}
.heroCaption {
  position:absolute;
  bottom:38px;
  right:clamp(22px,5vw,74px);
  z-index:1;
  color:#fff;
  text-align:right;
  font-size:.75rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  font-weight:700
}
.intro {
  padding-top:82px;
  padding-bottom:88px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
  gap:clamp(36px,5vw,80px);
  align-items:start
}
.sectionLabel {
  font-size:.75rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#167981;
  font-weight:700
}
.intro h2,.sectionHead h2,.partner h2 {
  font-size:clamp(1.95rem,2.8vw,3rem);
  letter-spacing:-.035em;
  line-height:1.18;
  margin:17px 0 0
}
.introCopy {
  font-size:1.03rem;
  line-height:1.72;
  color:#3d5561;
  padding-top:33px
}
.introCopy p {
  margin:0 0 20px
}
.smallRule {
  height:1px;
  background:#b5c9ca;
  margin-top:30px
}
.introNote {
  display:flex;
  gap:26px;
  align-items:center;
  margin-top:22px;
  font-size:.84rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#1c5963
}
.introNote:before {
  content:'';
  width:42px;
  height:1px;
  background:#1c5963
}
.journeys {
  background:#e9f0ee;
  padding:85px 0 94px
}
.sectionHead {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  align-items:start;
  gap:clamp(36px,5vw,80px);
  margin-bottom:38px
}
.sectionHead h2 {
  max-width:650px
}
.sectionHead p {
  max-width:430px;
  line-height:1.7;
  color:#49616a;
  margin:33px 0 0
}
.cards {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px
}
.card {
  background:#fff;
  display:flex;
  flex-direction:column;
  min-width:0
}
.card img {
  height:255px;
  background:#b4d3d1
}
.cardBody {
  padding:30px 30px 36px;
  flex:1;
  display:flex;
  flex-direction:column
}
.cardMeta {
  font-size:.73rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#157b83;
  font-weight:700
}
.card h3 {
  font-family:'Playfair Display',Georgia,serif;
  font-size:clamp(1.7rem,2.1vw,2.15rem);
  font-weight:400;
  letter-spacing:-.04em;
  line-height:1.14;
  margin:18px 0
}
.card p {
  line-height:1.7;
  color:#455d65;
  margin:0 0 20px
}
.route {
  border-top:1px solid #dce5e3;
  margin-top:auto;
  padding-top:21px;
  font-size:.87rem;
  font-weight:700;
  line-height:1.6;
  color:#113d51
}
.cardsNote {
  color:#52686d;
  font-size:.86rem;
  line-height:1.6;
  margin:23px 0 0
}
.place {
  background:#0b2639;
  color:#fff;
  display:grid;
  grid-template-columns:1fr 1fr
}
.placeImage {
  height:560px;
  background:#4c8991
}
.placeImage img {
  height:100%
}
.placeText {
  padding:clamp(60px,6vw,90px) var(--gutter);
  align-self:center
}
.placeText h2 {
  font-size:clamp(1.95rem,2.9vw,3.05rem);
  letter-spacing:-.035em;
  line-height:1.18;
  margin:18px 0 25px
}
.placeText p {
  line-height:1.78;
  color:#d3e4e7;
  font-size:1.05rem;
  max-width:570px
}
.places {
  border-top:1px solid #61818a;
  margin-top:38px;
  padding-top:23px;
  color:#8ad4d3;
  font-size:.8rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  line-height:2;
  font-weight:700
}
.partner {
  padding-top:88px;
  padding-bottom:92px
}
.partnerHeader {
  max-width:760px
}
.partnerHeader p {
  color:#475e68;
  line-height:1.75;
  font-size:1.05rem;
  margin:24px 0 0
}
.steps {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
  margin-top:55px
}
.step {
  border-top:1px solid #a7bcc0;
  padding-top:23px
}
.stepNum {
  font-family:'Playfair Display',Georgia,serif;
  color:#16858c;
  font-size:1.8rem
}
.step h3 {
  font-size:1.16rem;
  margin:25px 0 12px
}
.step p {
  line-height:1.7;
  color:#4a6069;
  margin:0
}
.contact {
  background:#e5a978
}
.contactInner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(32px,6vw,90px);
  padding-top:56px;
  padding-bottom:58px
}
.contactCopy {
  max-width:760px
}
.contact h2 {
  font-size:clamp(1.95rem,2.8vw,3rem);
  letter-spacing:-.035em;
  line-height:1.18;
  margin:0 0 12px
}
.contact p {
  margin:0;
  line-height:1.6;
  max-width:620px
}
.contact .button {
  background:#0b2639;
  color:#fff;
  flex:none
}
.contact .button:hover {
  background:#17465b
}
.footer {
  background:#0b2639;
  color:#c8d8db;
  padding:38px 0;
  font-size:.82rem
}
.footerInner {
  line-height:1.6
}
.footer strong {
  display:block;
  font-family:'Playfair Display',Georgia,serif;
  font-size:1.28rem;
  font-weight:400;
  color:#fff;
  margin-bottom:5px
}
.footerDisclaimer {
  margin-top:10px;
  max-width:780px
}
.photoCredits {
  margin-top:28px;
  color:#aec3c8;
  line-height:1.6
}
.photoCredits a {
  text-underline-offset:2px
}
@media(max-width:980px) {
  .hero {
    grid-template-columns:1fr
  }
  .heroText {
    padding:68px var(--gutter);
    max-width:780px
  }
  .heroVisual {
    min-height:420px
  }
  .cards {
    grid-template-columns:1fr 1fr
  }
  .card:last-child {
    grid-column:span 2;
    display:grid;
    grid-template-columns:1fr 1fr
  }
  .card:last-child img {
    height:100%
  }
  .placeImage {
    height:auto
  }
  .place {
    min-height:520px
  }
}
@media(max-width:700px) {
  .nav {
    min-height:72px
  }
  .brand {
    font-size:1.27rem
  }
  .navlinks a:not(.navcta) {
    display:none
  }
  .navlinks .navcta {
    padding:10px 12px;
    font-size:.78rem
  }
  .heroText {
    padding-top:54px;
    padding-bottom:60px
  }
  h1 {
    font-size:clamp(2.75rem,10vw,3.7rem)
  }
  .heroVisual {
    min-height:390px
  }
  .intro {
    grid-template-columns:1fr;
    padding-top:68px;
    padding-bottom:68px;
    gap:18px
  }
  .introCopy {
    padding-top:0
  }
  .journeys {
    padding:68px 0 76px
  }
  .sectionHead {
    display:block
  }
  .sectionHead p {
    margin-top:18px
  }
  .cards {
    grid-template-columns:1fr
  }
  .card:last-child {
    grid-column:auto;
    display:flex
  }
  .card:last-child img,.card img {
    height:250px
  }
  .place {
    grid-template-columns:1fr
  }
  .placeImage {
    height:330px
  }
  .placeText {
    padding:60px var(--gutter)
  }
  .partner {
    padding-top:70px;
    padding-bottom:70px
  }
  .steps {
    grid-template-columns:1fr;
    gap:34px;
    margin-top:44px
  }
  .contactInner {
    display:block;
    padding-top:52px;
    padding-bottom:55px
  }
  .contact .button {
    margin-top:27px
  }
}
@media(prefers-reduced-motion:reduce) {
  :root {
    scroll-behavior:auto
  }
  .button {
    transition:none
  }
}
