@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,500;1,500&display=swap');

:root { --ink:#183537; --coral:#e66f55; --sand:#f4eee5; --cream:#fbf8f2; --white:#fff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:'DM Sans',Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
button,input,textarea { font:inherit; }
.section { max-width:1240px; margin:0 auto; padding:110px 50px; }
.site-header { height:86px; padding:0 5vw; display:flex; align-items:center; justify-content:space-between; position:absolute; top:0; width:100%; z-index:10; color:white; border-bottom:1px solid rgba(255,255,255,.25); }
.brand { display:flex; align-items:center; gap:11px; letter-spacing:.18em; }
.brand-mark { width:38px; height:38px; border:1px solid currentColor; border-radius:50%; display:grid; place-items:center; font-family:'Playfair Display'; font-size:23px; font-style:italic; }
.brand strong { display:block; font-size:14px; line-height:1; }
.brand small { display:block; font-size:8px; margin-top:5px; }
.nav { display:flex; align-items:center; gap:32px; font-size:13px; }
.nav a:not(.nav-cta) { opacity:.9; }
.nav a:hover { opacity:1; }
.nav-cta { border:1px solid rgba(255,255,255,.7); padding:12px 19px; }
.menu-button { display:none; border:0; background:none; padding:8px; }
.menu-button span { width:24px; height:1px; background:white; display:block; margin:6px; }
.hero { height:min(850px,100vh); min-height:700px; position:relative; color:white; background:#506a67 url('/images/hero-travel.jpg') center/cover no-repeat; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,35,37,.76) 0%,rgba(10,35,37,.31) 58%,rgba(10,35,37,.08)),linear-gradient(0deg,rgba(10,35,37,.48),transparent 40%); }
.hero-content { position:absolute; top:50%; left:8vw; transform:translateY(-46%); max-width:720px; }
.eyebrow { font-size:11px; font-weight:600; letter-spacing:.25em; color:#587170; margin:0 0 25px; }
.eyebrow.light { color:#e7e9e2; }
h1,h2 { font-family:'Playfair Display',Georgia,serif; font-weight:500; margin:0; line-height:.99; letter-spacing:-.035em; }
h1 { font-size:clamp(60px,7.2vw,105px); }
h1 em,h2 em { font-weight:500; color:var(--coral); }
.hero-copy { font-size:17px; max-width:540px; line-height:1.7; margin:30px 0 34px; color:#f4f2eb; }
.cruise-specialty { margin:-17px 0 32px; color:#fff; font-size:15px; font-weight:600; letter-spacing:.02em; }
.hero-actions { display:flex; align-items:center; gap:30px; }
.button { min-height:52px; padding:0 24px; display:inline-flex; align-items:center; justify-content:center; gap:38px; border:0; cursor:pointer; font-size:13px; font-weight:600; letter-spacing:.03em; }
.button.coral { background:var(--coral); color:white; }
.button.coral:hover { background:#d9624a; }
.text-link { font-size:13px; font-weight:600; padding-bottom:6px; border-bottom:1px solid currentColor; display:inline-flex; gap:10px; }
.light-link { color:white; }
.hero-trust { position:absolute; bottom:0; right:0; padding:26px 5vw 26px 34px; display:flex; align-items:center; gap:25px; background:rgba(14,50,51,.76); backdrop-filter:blur(8px); font-size:11px; letter-spacing:.08em; }
.hero-trust strong { font-family:'Playfair Display'; font-size:22px; display:block; letter-spacing:0; }
.hero-trust i { width:1px; height:28px; background:rgba(255,255,255,.35); }
.intro { display:grid; grid-template-columns:1fr 1fr; gap:12%; align-items:end; }
h2 { font-size:clamp(45px,5vw,72px); }
.intro-copy { padding-bottom:6px; max-width:510px; }
.intro-copy p { font-family:'Playfair Display'; font-size:21px; line-height:1.65; margin:0 0 28px; color:#3f5657; }
.dark-link { color:var(--coral); }
.destinations { padding-top:45px; }
.section-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:45px; gap:50px; }
.section-heading > p { max-width:375px; line-height:1.7; color:#5e7170; margin:0 0 5px; }
.destination-grid { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:18px; }
.destination-card { height:495px; position:relative; overflow:hidden; color:white; background:#5c7773 center/cover no-repeat; transition:transform .3s; }
.destination-card:hover { transform:translateY(-5px); }
.destination-card.amalfi { background-image:url('/images/amalfi.jpg'); }
.destination-card.island { background-image:url('/images/tropical.jpg'); }
.destination-card.safari { background-image:linear-gradient(120deg,#c59662,#526c67); }
.destination-card.safari::before { content:'AFRICA'; position:absolute; inset:0; display:grid; place-items:center; font-family:'Playfair Display'; font-size:50px; letter-spacing:.2em; color:rgba(255,255,255,.2); }
.card-overlay { position:absolute; inset:0; background:linear-gradient(0deg,rgba(9,34,35,.85),transparent 58%); }
.trip-type { position:absolute; top:24px; left:25px; font-size:9px; letter-spacing:.25em; }
.destination-card > div:nth-of-type(2) { position:absolute; bottom:28px; left:28px; }
.destination-card h3 { font-family:'Playfair Display'; font-size:31px; font-weight:500; margin:0 0 6px; }
.destination-card p { font-size:11px; margin:0; color:#eef0eb; }
.destination-card > a { position:absolute; right:24px; bottom:25px; border:1px solid rgba(255,255,255,.6); border-radius:50%; width:42px; height:42px; display:grid; place-items:center; }
.cruise-collection { margin-top:85px; padding-top:65px; border-top:1px solid #d5d8d1; }
.cruise-heading { display:grid; grid-template-columns:.75fr 1fr 1fr; gap:45px; align-items:start; margin-bottom:35px; }
.cruise-heading .eyebrow { margin-top:10px; }
.cruise-heading h3 { margin:0; font-family:'Playfair Display'; font-size:clamp(32px,3.3vw,48px); font-weight:500; line-height:1.08; }
.cruise-heading h3 em { color:var(--coral); font-weight:500; }
.cruise-heading > p:last-child { margin:7px 0 0; color:#5e7170; font-size:13px; line-height:1.75; }
.cruise-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #bcc5c0; border-left:1px solid #bcc5c0; }
.cruise-card { min-height:340px; border-right:1px solid #bcc5c0; border-bottom:1px solid #bcc5c0; display:flex; flex-direction:column; position:relative; background:rgba(255,255,255,.25); transition:background .25s,transform .25s; overflow:hidden; }
.cruise-card:hover { background:white; transform:translateY(-3px); }
.ship-image { height:155px; position:relative; overflow:hidden; background:#d8e0dc; }
.ship-image::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(15,45,47,.28),transparent 60%); }
.ship-image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .45s; }
.cruise-card:hover .ship-image img { transform:scale(1.04); }
.ship-image span { position:absolute; z-index:1; left:15px; top:14px; width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:rgba(24,53,55,.84); color:white; font-family:'Playfair Display'; font-size:11px; }
.cruise-card-body { min-height:185px; padding:20px 22px 24px; position:relative; }
.cruise-card small { display:block; min-height:24px; margin-bottom:8px; color:var(--coral); font-size:7px; font-weight:600; letter-spacing:.12em; line-height:1.5; }
.cruise-card h4 { margin:0 28px 8px 0; font-family:'Playfair Display'; font-size:23px; line-height:1.12; font-weight:500; }
.cruise-card p { margin:0; color:#6a7b79; font-size:10px; line-height:1.55; }
.cruise-card b { position:absolute; right:22px; bottom:22px; color:var(--coral); font-weight:400; }
.outline { background:transparent; border:1px solid #a8b3ae; margin:38px auto 0; width:max-content; }
.services { background:var(--ink); color:white; }
.services-inner { display:grid; grid-template-columns:.9fr 1.1fr; gap:12%; }
.services-title { position:sticky; top:80px; align-self:start; }
.services-title h2 { font-size:clamp(43px,4.7vw,68px); line-height:1.08; }
.services-title h2 em { display:block; }
.service-list article { padding:30px 0; border-top:1px solid rgba(255,255,255,.2); display:grid; grid-template-columns:60px 1fr; }
.service-list article:last-child { border-bottom:1px solid rgba(255,255,255,.2); }
.service-list span { font-family:'Playfair Display'; color:var(--coral); font-size:17px; }
.service-list h3 { margin:0 0 8px; font-family:'Playfair Display'; font-weight:500; font-size:27px; }
.service-list p { margin:0; color:#bfc9c5; font-size:13px; line-height:1.6; }
.centered { text-align:center; display:block; }
.process .section-heading { margin-bottom:65px; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); }
.steps article { text-align:center; padding:0 6%; border-right:1px solid #d5d8d1; }
.steps article:last-child { border:0; }
.steps span { width:47px; height:47px; border:1px solid var(--coral); color:var(--coral); border-radius:50%; display:grid; place-items:center; margin:0 auto 25px; font-family:'Playfair Display'; }
.steps h3 { font-family:'Playfair Display'; font-weight:500; font-size:23px; margin:0 0 12px; }
.steps p { font-size:13px; line-height:1.75; color:#607170; max-width:280px; margin:auto; }
.testimonial { background:var(--sand); padding:105px 20%; text-align:center; position:relative; overflow:hidden; }
.quote-mark { position:absolute; font-family:'Playfair Display'; font-size:260px; color:rgba(230,111,85,.1); left:9%; top:-30px; }
.stars { color:var(--coral); letter-spacing:8px; margin-bottom:30px; font-size:12px; }
blockquote { font-family:'Playfair Display'; font-size:clamp(25px,3vw,41px); line-height:1.45; margin:0 auto 30px; max-width:950px; }
.testimonial p { font-size:10px; letter-spacing:.14em; }
.testimonial p span { display:block; color:#71807d; letter-spacing:0; margin-top:7px; font-size:11px; }
.inquiry { max-width:none; background:#30595a; color:white; display:grid; grid-template-columns:.8fr 1.2fr; gap:10%; padding-left:max(6vw,50px); padding-right:max(6vw,50px); }
.inquiry-intro h2 { font-size:clamp(48px,5vw,72px); }
.inquiry-intro > p:not(.eyebrow) { line-height:1.7; color:#cbd6d2; max-width:430px; margin:30px 0; }
.contact-details { display:flex; flex-direction:column; gap:10px; font-size:13px; }
.contact-details address { margin-top:8px; color:#cbd6d2; font-style:normal; line-height:1.6; }
.inquiry-form { background:white; color:var(--ink); padding:35px 40px; box-shadow:0 20px 50px rgba(0,0,0,.13); }
.inquiry-form label { display:block; margin-bottom:22px; }
.inquiry-form label span { display:block; font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; margin-bottom:8px; }
.inquiry-form input,.inquiry-form textarea { width:100%; border:0; border-bottom:1px solid #ccd2ce; padding:8px 0 11px; outline:none; background:white; border-radius:0; }
.inquiry-form input:focus,.inquiry-form textarea:focus { border-color:var(--coral); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:25px; }
.inquiry-form .button { width:100%; }
.inquiry-form small { display:block; text-align:center; color:#89918e; font-size:9px; margin-top:12px; }
.hidden-field { display:none; }
.success-message { background:white; color:var(--ink); display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; padding:50px; }
.success-message span { width:55px; height:55px; background:var(--coral); color:white; border-radius:50%; display:grid; place-items:center; font-size:24px; }
.success-message h3 { font-family:'Playfair Display'; font-size:32px; margin:25px 0 10px; }
.success-message p { max-width:420px; color:#607170; line-height:1.7; }
footer { background:#102e30; color:white; padding:65px 6vw 25px; text-align:center; }
.footer-brand { justify-content:center; width:max-content; margin:auto; }
footer > p { font-family:'Playfair Display'; color:#aebdba; font-style:italic; margin:25px 0 30px; }
.footer-links { display:flex; justify-content:center; gap:32px; font-size:11px; margin-bottom:55px; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.15); padding-top:20px; display:flex; justify-content:space-between; font-size:9px; color:#78908e; }

@media (max-width:900px) {
  .section { padding:85px 25px; }
  .menu-button { display:block; z-index:2; }
  .nav { display:none; position:absolute; top:0; right:0; width:min(340px,100%); padding:90px 30px 35px; background:var(--ink); flex-direction:column; align-items:stretch; gap:0; }
  .nav.open { display:flex; }
  .nav a { padding:16px 5px; border-bottom:1px solid rgba(255,255,255,.12); }
  .nav-cta { margin-top:15px; text-align:center; }
  .hero-content { left:25px; right:25px; }
  .hero-trust { left:0; right:0; justify-content:center; }
  .intro,.services-inner,.inquiry { grid-template-columns:1fr; gap:55px; }
  .destination-grid { grid-template-columns:1fr 1fr; }
  .destination-card:first-child { grid-column:span 2; }
  .cruise-heading { grid-template-columns:1fr 1fr; }
  .cruise-heading .eyebrow { grid-column:span 2; margin-bottom:-15px; }
  .cruise-grid { grid-template-columns:repeat(2,1fr); }
  .services-title { position:static; }
  .testimonial { padding:85px 8%; }
}

@media (max-width:600px) {
  .site-header { height:72px; }
  .hero { min-height:730px; }
  .hero-content { top:44%; }
  h1 { font-size:54px; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:20px; }
  .hero-trust { padding:18px 15px; gap:12px; }
  .hero-trust span { font-size:8px; }
  .hero-trust strong { font-size:16px; }
  .section-heading { display:block; }
  .section-heading > p { margin-top:22px; }
  .destination-grid { grid-template-columns:1fr; }
  .destination-card,.destination-card:first-child { grid-column:auto; height:410px; }
  .cruise-collection { margin-top:60px; padding-top:50px; }
  .cruise-heading { grid-template-columns:1fr; gap:18px; }
  .cruise-heading .eyebrow { grid-column:auto; margin-bottom:0; }
  .cruise-grid { grid-template-columns:1fr; }
  .cruise-card { min-height:340px; }
  .steps { grid-template-columns:1fr; gap:45px; }
  .steps article { border-right:0; }
  .form-row { grid-template-columns:1fr; gap:0; }
  .inquiry { padding-left:25px; padding-right:25px; }
  .inquiry-form { padding:30px 24px; }
  .footer-bottom { flex-direction:column; gap:8px; }
}
