.destination-hero { position:relative; isolation:isolate; min-height:clamp(430px,58vw,650px); margin:18px 0 72px; overflow:hidden; border-radius:28px; background:#073c69; color:#fff; box-shadow:0 24px 70px rgba(5,49,80,.2); }
.destination-hero > img { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; }
.destination-hero-scrim { position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(2,33,55,.9) 0%,rgba(2,42,65,.72) 46%,rgba(1,32,50,.08) 82%); }
.destination-hero-copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; min-height:inherit; width:min(690px,72%); padding:clamp(36px,6vw,78px); }
.destination-hero .eyebrow { margin:0 0 12px; color:#a9f3ec; }
.destination-hero h1 { max-width:650px; margin:0; color:#fff; font-size:clamp(2.65rem,6vw,5.3rem); line-height:.97; letter-spacing:-.055em; }
.destination-hero-copy > p:not(.eyebrow) { max-width:620px; margin:24px 0 30px; color:#eefcff; font-size:clamp(1rem,1.5vw,1.22rem); line-height:1.62; }
.destination-hero-cta { min-height:48px; padding-inline:24px; }
.destination-hero-note { margin-top:22px; color:#d9f8f4; font-size:.83rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.destination-photo-credit { position:absolute; right:16px; bottom:10px; margin:0; color:rgba(255,255,255,.78); font-size:.68rem; }
.destination-photo-credit a { color:inherit; }
.destination-editorial,.destination-guide,.destination-local-guide,.destination-availability,.destination-routes,.destination-solo,.destination-searches { margin:88px 0; }
.destination-editorial-intro,.destination-guide-intro,.destination-availability-head { max-width:790px; margin-bottom:34px; }
.destination-editorial-intro h2,.destination-guide-intro h2,.destination-availability-head h2,.destination-routes > .destination-section-head h2,.destination-solo-copy h2,.destination-searches > .destination-section-head h2 { margin:.25rem 0 .8rem; color:#073c69; font-size:clamp(2rem,4vw,3.25rem); line-height:1.08; letter-spacing:-.035em; }
.destination-editorial-intro > p:last-child,.destination-guide-intro > p:last-child,.destination-availability-head > p:last-child,.destination-section-head p,.destination-solo-copy > p:last-of-type { color:#4b667a; font-size:1.05rem; line-height:1.7; }
.destination-editorial-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.destination-editorial-card { min-height:270px; padding:28px; border:1px solid #dce9ee; border-radius:22px; background:#fff; }
.destination-editorial-card > span { color:#00a7ad; font-size:.8rem; font-weight:900; letter-spacing:.12em; }
.destination-editorial-card h3 { margin:42px 0 12px; color:#073c69; font-size:1.3rem; line-height:1.25; }
.destination-editorial-card p { margin:0; color:#4b667a; line-height:1.65; }
.destination-guide-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.destination-guide-card { position:relative; overflow:hidden; border:1px solid #dce9ee; border-radius:22px; background:#fff; box-shadow:0 12px 34px rgba(5,49,80,.08); }
.destination-guide-image { aspect-ratio:16/10; overflow:hidden; background:#dce9ee; }
.destination-guide-image img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.destination-guide-copy { padding:24px 24px 42px; }
.destination-guide-copy .eyebrow { margin:0 0 10px; }
.destination-guide-copy h3 { margin:0 0 12px; color:#073c69; font-size:1.32rem; line-height:1.25; }
.destination-guide-copy > p:not(.eyebrow) { min-height:112px; margin:0 0 18px; color:#4b667a; line-height:1.62; }
.destination-guide-copy strong { display:inline-flex; padding:8px 11px; border-radius:999px; background:#e7f8f5; color:#057778; font-size:.8rem; line-height:1.35; }
.destination-guide-credit { position:absolute; left:24px; bottom:14px; color:#6c8190; font-size:.62rem; }
.destination-local-guide { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(230px,.8fr) auto; align-items:center; gap:clamp(24px,4vw,52px); padding:clamp(30px,4.8vw,56px); border:1px solid #cfe4e5; border-radius:26px; background:linear-gradient(135deg,#edf9f8 0%,#f8fbfb 60%,#fff 100%); box-shadow:0 18px 46px rgba(5,49,80,.08); }
.destination-local-guide-copy h2 { margin:.3rem 0 .85rem; color:#073c69; font-size:clamp(1.8rem,3.4vw,2.8rem); line-height:1.1; letter-spacing:-.035em; }
.destination-local-guide-copy > p:last-child { margin:0; color:#4b667a; font-size:1rem; line-height:1.7; }
.destination-local-guide ul { display:grid; gap:11px; margin:0; padding:0; list-style:none; }
.destination-local-guide li { position:relative; padding-left:23px; color:#244f65; font-size:.9rem; font-weight:750; line-height:1.45; }
.destination-local-guide li::before { content:""; position:absolute; top:.45em; left:0; width:10px; height:10px; border:3px solid #fff; border-radius:50%; background:#00a7ad; box-shadow:0 0 0 1px #8ed5d1; }
.destination-local-guide .button { min-height:48px; white-space:nowrap; }
.destination-availability { padding:54px 0; border-top:1px solid #cfe1e7; border-bottom:1px solid #cfe1e7; }
.destination-availability-head h2 { font-size:clamp(2rem,3.5vw,2.9rem); }
.destination-availability-body { display:grid; grid-template-columns:minmax(250px,310px) minmax(0,1fr); gap:clamp(34px,6vw,76px); align-items:stretch; }
.destination-availability-key { display:grid; border-radius:22px; overflow:hidden; background:#073c69; color:#fff; box-shadow:0 16px 38px rgba(5,49,80,.13); }
.destination-availability-key > div { display:flex; flex-direction:column; justify-content:center; min-height:145px; padding:28px; }
.destination-availability-key > div + div { border-top:1px solid rgba(255,255,255,.17); }
.destination-availability-key span { color:#a9dcd9; font-size:.76rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.destination-availability-key strong { margin-top:10px; color:#fff; font-size:clamp(1.7rem,3vw,2.5rem); line-height:1.05; font-variant-numeric:tabular-nums; }
.destination-availability-groups { display:grid; }
.destination-availability-row { display:grid; grid-template-columns:minmax(190px,230px) minmax(0,1fr); gap:22px; align-items:center; padding:20px 0; border-top:1px solid #d9e6ea; }
.destination-availability-row:last-child { border-bottom:1px solid #d9e6ea; }
.destination-availability-row > div { display:flex; align-items:center; gap:9px; }
.destination-availability-row h3 { margin:0; color:#073c69; font-size:.92rem; line-height:1.35; }
.destination-availability-row > div span { flex:0 0 auto; display:grid; place-items:center; min-width:30px; height:26px; padding:0 7px; border-radius:999px; background:#e5f7f4; color:#087d7f; font-size:.72rem; font-weight:850; }
.destination-availability-row ul { display:flex; flex-wrap:wrap; gap:7px; list-style:none; margin:0; padding:0; }
.destination-availability-row li { padding:7px 10px; border-radius:999px; background:#f0f6f8; color:#31566d; font-size:.78rem; font-weight:750; line-height:1.3; }
.destination-section-head { display:flex; align-items:end; justify-content:space-between; gap:28px; margin-bottom:26px; }
.destination-section-head > div { max-width:800px; }
.destination-section-head p { margin:0; }
.destination-count { flex:0 0 auto; display:grid; place-items:center; min-width:74px; min-height:74px; padding:12px; border-radius:999px; background:#e5f8f5; color:#007e86; font-size:1.4rem; font-weight:900; font-variant-numeric:tabular-nums; }
.destination-routes { scroll-margin-top:100px; }
.destination-routes .cruise-grid { margin-top:0; }
.destination-routes .cruise-card > .cruise-actions { padding:0 20px 20px; }
@media (min-width:981px) { .destination-routes .cruise-card { height:auto; } }
.destination-searches { padding:clamp(24px,4vw,42px); border-radius:24px; background:#edf9f8; }
.destination-solo { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(36px,6vw,80px); align-items:center; padding:clamp(32px,6vw,72px); border-radius:28px; background:#062f51; color:#fff; }
.destination-solo h2 { color:#fff; }
.destination-solo .eyebrow { color:#85e6dc; }
.destination-solo-copy > p:last-of-type { color:#d5e7ef; }
.destination-solo-copy .button { margin-top:22px; }
.destination-steps { display:grid; gap:12px; }
.destination-step { display:grid; grid-template-columns:44px 1fr; gap:16px; padding:20px; border:1px solid rgba(255,255,255,.15); border-radius:18px; background:rgba(255,255,255,.06); }
.destination-step > span { display:grid; place-items:center; width:44px; height:44px; border-radius:50%; background:#0ba7a7; color:#fff; font-weight:900; }
.destination-step h3 { margin:1px 0 5px; color:#fff; font-size:1rem; }
.destination-step p { margin:0; color:#cfe1ea; font-size:.91rem; line-height:1.55; }
@media (hover:hover) { .destination-editorial-card { transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease; } .destination-editorial-card:hover { transform:translateY(-4px); border-color:#afdfe0; box-shadow:0 18px 40px rgba(5,49,80,.1); } .destination-guide-card:hover .destination-guide-image img { transform:scale(1.035); } .destination-local-guide .button { transition:transform .2s ease,box-shadow .2s ease; } .destination-local-guide .button:hover { transform:translateY(-2px); box-shadow:0 12px 26px rgba(5,49,80,.13); } }
@media (prefers-reduced-motion:reduce) { .destination-editorial-card,.destination-guide-image img { transition:none; } }
@media (max-width:900px) { .destination-editorial-grid,.destination-guide-grid { grid-template-columns:1fr; } .destination-editorial-card { min-height:0; } .destination-editorial-card h3 { margin-top:24px; } .destination-guide-copy > p:not(.eyebrow) { min-height:0; } .destination-local-guide { grid-template-columns:1fr; } .destination-local-guide .button { width:fit-content; } .destination-availability-body { grid-template-columns:1fr; } .destination-availability-key { grid-template-columns:repeat(2,minmax(0,1fr)); } .destination-availability-key > div { min-height:120px; } .destination-availability-key > div + div { border-top:0; border-left:1px solid rgba(255,255,255,.17); } .destination-solo { grid-template-columns:1fr; } }
@media (max-width:760px) {
  .destination-hero { min-height:600px; margin:12px 0 56px; border-radius:20px; }
  .destination-hero > img { object-position:58% center; }
  .destination-hero-scrim { background:linear-gradient(0deg,rgba(2,32,52,.96) 0%,rgba(2,42,65,.74) 61%,rgba(2,32,52,.16) 100%); }
  .destination-hero-copy { justify-content:flex-end; width:100%; padding:28px 22px 42px; }
  .destination-hero h1 { font-size:clamp(2.65rem,13vw,4rem); }
  .destination-hero-copy > p:not(.eyebrow) { margin:18px 0 24px; font-size:1rem; }
  .destination-hero-cta { width:100%; justify-content:center; }
  .destination-hero-note { font-size:.7rem; line-height:1.5; }
  .destination-photo-credit { right:10px; bottom:6px; font-size:.57rem; }
  .destination-editorial,.destination-guide,.destination-local-guide,.destination-availability,.destination-routes,.destination-solo,.destination-searches { margin:56px 0; }
  .destination-local-guide { gap:22px; padding:26px 20px; border-radius:20px; }
  .destination-local-guide-copy h2 { font-size:2rem; }
  .destination-local-guide .button { width:100%; justify-content:center; white-space:normal; }
  .destination-editorial-intro h2,.destination-guide-intro h2,.destination-availability-head h2,.destination-routes > .destination-section-head h2,.destination-solo-copy h2,.destination-searches > .destination-section-head h2 { font-size:2rem; }
  .destination-editorial-grid { gap:10px; }
  .destination-editorial-card { padding:22px; border-radius:18px; }
  .destination-guide-grid { gap:12px; }
  .destination-guide-card { border-radius:18px; }
  .destination-guide-copy { padding:20px 20px 40px; }
  .destination-guide-credit { left:20px; }
  .destination-availability { padding:36px 0; }
  .destination-availability-head { margin-bottom:24px; }
  .destination-availability-key { grid-template-columns:1fr; border-radius:18px; }
  .destination-availability-key > div { min-height:105px; padding:20px; }
  .destination-availability-key > div + div { border-top:1px solid rgba(255,255,255,.17); border-left:0; }
  .destination-availability-row { grid-template-columns:1fr; gap:12px; padding:18px 0; }
  .destination-section-head { align-items:start; gap:12px; }
  .destination-count { min-width:58px; min-height:58px; font-size:1rem; }
  .destination-routes .cruise-card > .cruise-actions { padding:0 16px 16px; }
  .destination-solo { padding:28px 18px; border-radius:20px; }
  .destination-step { grid-template-columns:40px 1fr; padding:16px; }
  .destination-step > span { width:40px; height:40px; }
}
