:root { --ink:#133128; --forest:#0b2019; --deep:#071510; --mist:#eef3eb; --sage:#bfd1bd; --gold:#d9ae63; --sand:#f5f0e7; --line:rgba(15,50,38,.16); --display:Playfair Display, Georgia, serif; --sans:DM Sans, Arial, sans-serif; --mono:DM Mono, monospace; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; background:var(--mist); color:var(--ink); font-family:var(--sans); overflow-x:hidden; } body.menu-open { overflow:hidden; } button, input, textarea, select { font:inherit; } button { cursor:pointer; } a { color:inherit; } img { display:block; max-width:100%; } .skip-link { position:fixed; z-index:100; left:1rem; top:-5rem; background:#fff; padding:.75rem 1rem; border-radius:.3rem; } .skip-link:focus { top:1rem; }.page-noise { position:fixed; inset:0; pointer-events:none; z-index:20; opacity:.06; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E"); }
.site-header { height:78px; width:min(1360px,calc(100% - 64px)); display:flex; align-items:center; justify-content:space-between; position:absolute; top:0; left:50%; transform:translateX(-50%); z-index:30; color:white; transition:background .3s, box-shadow .3s, top .3s; }.site-header.scrolled { position:fixed; top:12px; height:62px; padding:0 18px; border-radius:12px; background:rgba(6,24,18,.84); backdrop-filter:blur(16px); box-shadow:0 12px 30px rgba(0,0,0,.2); }.brand { text-decoration:none; letter-spacing:.10em; font-family:var(--sans); font-size:clamp(1rem, 5vw, 1rem); font-weight:700; white-space:nowrap; }.brand em { color:var(--gold); font-style:normal; }.brand-mark { color:var(--gold); margin-right:7px; font-size:1.05rem; }.desktop-nav { display:flex; gap:30px; margin-left:100px; }.desktop-nav a, footer > a:last-child { text-decoration:none; font-size:.76rem; color:rgba(255,255,255,.82); transition:color .2s; }.desktop-nav a:hover { color:var(--gold); }.header-cta { text-decoration:none; font-size:.78rem; font-weight:600; padding:11px 0 11px 16px; border-left:1px solid rgba(255,255,255,.34); }.header-cta span { color:var(--gold); margin-left:10px; font-size:1rem; }.menu-toggle { display:none; color:#fff; background:none; border:0; padding:.5rem; }.menu-toggle span { width:21px; height:1px; background:currentColor; display:block; margin:5px; }.menu-toggle b { display:none; }.mobile-menu { position:fixed; inset:0; z-index:25; background:var(--forest); color:white; padding:110px 9vw 2rem; }.mobile-menu nav { display:grid; }.mobile-menu a { display:flex; justify-content:space-between; padding:1.2rem 0; border-bottom:1px solid rgba(255,255,255,.17); font:500 clamp(2rem,8vw,4rem)/1 var(--display); text-decoration:none; }.mobile-menu a span { color:var(--gold); font: .7rem var(--mono); align-self:center; }
.hero { position:relative; min-height:760px; height:100svh; color:#fff; isolation:isolate; overflow:hidden; display:flex; align-items:center; }.hero-image { position:absolute; inset:0; height:100%; width:100%; object-fit:cover; z-index:-4; animation:hero-zoom 18s ease-in-out infinite alternate; }.hero-scrim { position:absolute; inset:0; z-index:-3; background:linear-gradient(90deg,rgba(5,22,17,.82) 0%,rgba(6,27,21,.58) 36%,rgba(7,24,18,.12) 70%),linear-gradient(0deg,rgba(5,24,18,.56),transparent 45%); }.hero-glow { position:absolute; z-index:-2; width:45vw; height:45vw; right:-13vw; top:-9vw; border-radius:50%; background:rgba(239,176,75,.16); filter:blur(20px); }.mist { position:absolute; z-index:-1; width:140%; height:40%; left:-20%; bottom:0; background:radial-gradient(ellipse at 25% 70%,rgba(237,248,239,.20),transparent 31%),radial-gradient(ellipse at 65% 80%,rgba(230,243,234,.17),transparent 33%),radial-gradient(ellipse at 85% 40%,rgba(220,237,226,.12),transparent 20%); filter:blur(14px); pointer-events:none; }.mist-a { animation:mist-drift 20s ease-in-out infinite alternate; }.mist-b { transform:translateX(-12%) translateY(-30%); opacity:.65; animation:mist-drift 31s ease-in-out -7s infinite alternate-reverse; }.hero-content { width:min(610px,calc(100% - 64px)); margin-left:max(32px,calc((100vw - 1260px)/2)); padding-top:80px; }.eyebrow { margin:0; font:500 .67rem/1.5 var(--mono); letter-spacing:.14em; color:rgba(255,255,255,.72); }.eyebrow > span:first-child { display:inline-block; height:1px; width:26px; background:var(--gold); vertical-align:middle; margin:-2px 8px 0 0; }.hero h1, h2 { font:500 clamp(3.35rem,7.1vw,6.7rem)/.9 var(--display); letter-spacing:-.065em; margin:0; }.hero h1 { margin-top:18px; }.hero h1 em, h2 em { color:var(--gold); font-style:italic; }.hero-copy { max-width:470px; color:rgba(255,255,255,.85); font-size:1rem; line-height:1.75; margin:28px 0; }.hero-actions { display:flex; align-items:center; gap:25px; }.button { align-items:center; border:0; display:inline-flex; gap:22px; justify-content:center; padding:15px 20px; text-decoration:none; border-radius:3px; font-size:.76rem; font-weight:700; transition:transform .25s, background .25s; }.button:hover { transform:translateY(-3px); }.button span { font-size:1.15rem; line-height:.5; }.button-light { background:#f8f7f0; color:var(--forest); }.button-gold { color:var(--forest); background:var(--gold); }.text-link { display:inline-flex; gap:12px; align-items:center; font:500 .72rem var(--mono); letter-spacing:.03em; color:var(--ink); text-underline-offset:7px; }.text-link.light { color:#fff; }.text-link span { color:var(--gold); font-size:1rem; }.hero-facts { position:absolute; display:flex; gap:28px; right:max(32px,calc((100vw - 1260px)/2)); bottom:60px; }.hero-facts div { display:grid; gap:4px; min-width:95px; }.hero-facts strong { color:#fff; font:500 1.3rem var(--display); }.hero-facts span { font:.57rem var(--mono); letter-spacing:.08em; color:rgba(255,255,255,.74); text-transform:uppercase; }.scroll-cue { position:absolute; left:max(32px,calc((100vw - 1260px)/2)); bottom:36px; display:flex; align-items:center; gap:12px; font:.59rem var(--mono); color:rgba(255,255,255,.75); letter-spacing:.11em; text-decoration:none; }.scroll-line { background:var(--gold); height:1px; width:36px; animation:pulse-line 2s ease infinite; }
.section { width:min(1260px,calc(100% - 64px)); margin:0 auto; }.intro { padding:32px 0 120px; }.section-kicker { font:.65rem var(--mono); color:#58726a; letter-spacing:.11em; }.section-kicker > span { color:#a97837; margin-right:8px; }.intro-grid { display:grid; grid-template-columns:1.08fr .75fr; justify-content:space-between; gap:10%; padding:28px 0 80px; }.intro h2, .destinations h2, .journey-content h2, .contact h2 { font-size:clamp(2.8rem,5vw,5.15rem); }.intro-copy { max-width:465px; font-size:.96rem; color:#466157; line-height:1.85; padding-top:7px; }.intro-copy p { margin:0 0 18px; }.service-row { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); }.service-row article { min-height:175px; padding:25px 22px 15px 0; border-right:1px solid var(--line); }.service-row article:not(:first-child) { padding-left:22px; }.service-row article:last-child { border-right:0; }.service-icon { color:var(--gold); display:block; font:1.35rem var(--display); margin-bottom:30px; }.service-row h3 { margin:0 0 6px; font:600 .93rem var(--sans); letter-spacing:-.03em; }.service-row p { color:#61796f; font-size:.76rem; line-height:1.55; max-width:145px; margin:0; }
.destinations { padding:95px 0 50px; }.section-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:52px; }.section-heading > p { max-width:300px; color:#567066; line-height:1.75; font-size:.84rem; margin:0 8.5% 6px 0; }.destination-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:18px; }.destination-card { grid-column:span 4; height:465px; overflow:hidden; }.destination-card:nth-child(2), .destination-card:nth-child(5) { grid-column:span 5; }.destination-card:nth-child(3), .destination-card:nth-child(4) { grid-column:span 3; }.destination-card button { width:100%; height:100%; position:relative; padding:0; border:0; text-align:left; color:#fff; overflow:hidden; background:var(--forest); }.destination-card img { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.8,.2,1); }.destination-card button:hover img, .destination-card button:focus-visible img { transform:scale(1.07); }.card-overlay { position:absolute; inset:0; background:linear-gradient(0deg,rgba(5,24,18,.78),transparent 60%); }.card-count,.card-arrow,.card-copy { position:absolute; }.card-count { left:20px; top:20px; font:.58rem var(--mono); letter-spacing:.08em; }.card-arrow { right:19px; top:15px; height:34px; width:34px; border:1px solid rgba(255,255,255,.6); border-radius:50%; display:grid; place-items:center; transition:background .2s,color .2s; }.destination-card button:hover .card-arrow { background:#fff; color:var(--forest); }.card-copy { left:22px; bottom:22px; display:grid; gap:6px; }.card-copy small { font:.56rem var(--mono); letter-spacing:.08em; }.card-copy strong { font:500 clamp(1.8rem,3vw,2.75rem)/.9 var(--display); letter-spacing:-.06em; }.card-copy em { font:.63rem var(--mono); color:#ead5ad; font-style:normal; }
.journeys { min-height:730px; background:var(--forest); color:#f7f4eb; display:grid; grid-template-columns:41% 59%; }.journey-visual { position:relative; overflow:hidden; background:radial-gradient(circle at 65% 47%,#345f54 0,rgba(39,82,69,.5) 16%,transparent 36%),linear-gradient(160deg,#1c4439,#0b1f18 70%); }.journey-visual::before,.journey-visual::after { content:""; position:absolute; border:1px solid rgba(237,243,229,.18); border-radius:50%; }.journey-visual::before { width:80%; aspect-ratio:1; left:-25%; top:19%; }.journey-visual::after { width:60%; aspect-ratio:1; right:-32%; bottom:-6%; }.journey-visual p { position:absolute; bottom:48px; left:clamp(24px,5vw,80px); color:rgba(255,255,255,.62); font:500 clamp(2rem,4vw,4.8rem)/.82 var(--display); letter-spacing:-.08em; }.journey-orb { position:absolute; width:50%; aspect-ratio:1; border-radius:50%; right:15%; top:27%; background:radial-gradient(circle at 33% 28%,#e0c48a, #8c9768 33%,#214b40 70%); box-shadow:0 0 90px rgba(221,176,91,.18); animation:orb-float 9s ease-in-out infinite alternate; }.journey-content { padding:105px clamp(32px,8vw,135px) 75px 8%; }.journey-content .section-kicker { color:#a7c0b2; }.journey-content h2 { margin:25px 0 57px; }.journey-list { border-top:1px solid rgba(255,255,255,.19); }.journey-list button { position:relative; display:grid; grid-template-columns:50px 1fr auto 30px; width:100%; gap:15px; align-items:center; background:none; padding:18px 0; text-align:left; color:#fff; border:0; border-bottom:1px solid rgba(255,255,255,.19); }.journey-list button span { color:var(--gold); font:.6rem var(--mono); }.journey-list b { font:500 1.1rem var(--display); }.journey-list i { font-style:normal; color:#b5c6bb; font-size:.71rem; }.journey-list em { color:var(--gold); font-style:normal; font-size:1rem; transition:transform .2s; }.journey-list button:hover em { transform:translate(3px,-3px); }
.contact { padding:135px 0; }.contact-card { min-height:610px; display:grid; grid-template-columns:.9fr 1.1fr; background:#ebdfca; border-radius:5px; overflow:hidden; }.contact-copy { padding:70px clamp(32px,6vw,88px); color:#17352a; background:linear-gradient(145deg,#d7bd8c,#e9dcc6 47%,#c1d2bb); }.contact-copy .eyebrow { color:#527164; }.contact-copy h2 { margin:20px 0 27px; }.contact-copy > p:not(.eyebrow) { color:#466257; line-height:1.7; max-width:300px; }.contact-meta { display:grid; gap:13px; margin-top:67px; font:.68rem var(--mono); }.contact-meta a { color:#17352a; text-underline-offset:5px; }.contact-meta span { color:#6d857a; }.enquiry-form { padding:65px clamp(30px,6vw,90px); background:#f8f5ed; display:grid; align-content:start; gap:17px; }.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }.enquiry-form label { display:grid; gap:7px; color:#39564a; font:.6rem var(--mono); letter-spacing:.05em; }.enquiry-form input,.enquiry-form select,.enquiry-form textarea { border:0; border-bottom:1px solid #b5c4b6; border-radius:0; background:transparent; padding:10px 0; color:#18382d; outline:none; font:400 .86rem var(--sans); resize:vertical; }.enquiry-form textarea { min-height:86px; }.enquiry-form input:focus,.enquiry-form select:focus,.enquiry-form textarea:focus { border-color:#9b6a2b; box-shadow:0 1px #9b6a2b; }.enquiry-form .button { justify-self:start; margin-top:5px; }.form-note,.form-status { margin:0; color:#70837a; font:.59rem/1.5 var(--mono); }.form-status { color:#996724; min-height:1rem; }.whatsapp-button-wrap {
  display: flex;
  justify-content: center;
  padding-bottom: 32px;
}

.whatsapp-cta-button {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: #25D366;
  color: #fff;
  font: 600 1.05rem var(--sans);
  padding: 16px 32px;
  border-radius: 50px;
  text-decoration: none;
  transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
  box-shadow: 0 4px 14px rgba(37, 211, 102, 0.3);
}

.whatsapp-cta-button:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(37, 211, 102, 0.4);
  background: #22c35e;
}
footer { background:var(--deep); color:#c9d6ca; min-height:105px; padding:0 max(32px,calc((100% - 1260px)/2)); display:flex; justify-content:space-between; align-items:center; gap:20px; font:.6rem var(--mono); } footer .brand { color:#fff; } footer p { margin:0; color:#829b8d; } footer > a:last-child { color:#c9d6ca; }
.destination-dialog { border:0; padding:0; width:min(970px,calc(100vw - 28px)); max-height:min(700px,calc(100vh - 28px)); overflow:auto; color:#17362a; background:#f9f6ee; box-shadow:0 30px 90px rgba(0,0,0,.38); }.destination-dialog::backdrop { background:rgba(4,19,14,.72); backdrop-filter:blur(5px); }.destination-dialog[open] { display:grid; grid-template-columns:.92fr 1fr; animation:dialog-in .28s ease-out; }.dialog-close { position:absolute; z-index:2; right:13px; top:11px; width:37px; height:37px; border:0; border-radius:50%; background:rgba(250,248,240,.92); color:var(--forest); font-size:1.7rem; line-height:1; }.dialog-image-wrap { min-height:100%; background:#184534; }.dialog-image-wrap img { width:100%; height:100%; min-height:530px; object-fit:cover; }.dialog-content { padding:64px clamp(28px,5vw,70px) 43px; display:flex; flex-direction:column; align-items:start; }.dialog-content .eyebrow { color:#60786e; }.dialog-content h2 { font-size:clamp(3rem,5vw,4.65rem); color:#19382c; margin:16px 0 22px; }.dialog-content > p:not(.eyebrow) { color:#526d61; line-height:1.75; font-size:.89rem; }.dialog-details { width:100%; margin:22px 0; padding:18px 0; border-block:1px solid #c9d4c9; display:grid; grid-template-columns:1fr 1fr; gap:20px; }.dialog-details div { display:grid; gap:5px; }.dialog-details span { color:#6b8177; font:.56rem var(--mono); text-transform:uppercase; letter-spacing:.07em; }.dialog-details b { color:#264a3b; font:.76rem var(--sans); }.destination-dialog .button { margin-top:auto; }
.reveal { opacity:0; transform:translateY(22px); transition:opacity .75s ease,transform .75s ease; }.reveal.is-visible { opacity:1; transform:none; } @keyframes hero-zoom { to { transform:scale(1.065); } } @keyframes mist-drift { to { transform:translateX(8%) translateY(-5%); } } @keyframes orb-float { to { transform:translateY(-16px) rotate(9deg); } } @keyframes pulse-line { 50% { width:55px; opacity:.55; } } @keyframes dialog-in { from { opacity:0; transform:translateY(14px) scale(.98); } }
@media (max-width:900px) { .site-header { width:calc(100% - 36px); }.desktop-nav,.header-cta { display:none; }.menu-toggle { display:block; }.hero { min-height:690px; }.hero-content { margin-left:32px; }.hero-facts { right:32px; }.intro-grid { gap:40px; }.section-heading > p { margin-right:0; }.destination-card,.destination-card:nth-child(n) { grid-column:span 6; }.journeys { grid-template-columns:1fr; }.journey-visual { min-height:280px; }.journey-content { padding:80px max(32px,10vw); }.contact-card { grid-template-columns:1fr; }.contact-copy { padding:58px max(30px,8vw); }.contact-meta { margin-top:32px; }.enquiry-form { padding:55px max(30px,8vw); }.destination-dialog[open] { grid-template-columns:1fr; }.dialog-image-wrap { max-height:310px; }.dialog-image-wrap img { min-height:0; height:310px; } }
@media (max-width:620px) { .site-header { width:calc(100% - 28px); }.site-header.scrolled { top:8px; }.hero { min-height:650px; }.hero-content { width:calc(100% - 40px); margin-left:20px; padding-top:85px; }.hero h1 { font-size:clamp(3.25rem,14vw,4.55rem); }.hero-facts { left:20px; right:auto; bottom:52px; }.scroll-cue { display:none; }.section { width:calc(100% - 40px); }.intro { padding:84px 0 78px; }.intro-grid { grid-template-columns:1fr; padding:23px 0 48px; }.service-row { grid-template-columns:1fr 1fr; }.service-row article { min-height:148px; }.service-row article:nth-child(2) { border-right:0; }.service-row article:nth-child(3) { padding-left:0; }.destinations { padding:65px 0 83px; }.section-heading { display:grid; gap:23px; margin-bottom:30px; }.destination-grid { gap:12px; }.destination-card,.destination-card:nth-child(n) { grid-column:span 12; height:330px; }.destination-card:nth-child(3),.destination-card:nth-child(4) { height:260px; }.journey-visual { min-height:220px; }.journey-content { padding:64px 20px; }.journey-list button { grid-template-columns:30px 1fr 22px; }.journey-list i { grid-column:2; grid-row:2; }.journey-list em { grid-column:3; grid-row:1; }.contact { padding:76px 0; }.form-row { grid-template-columns:1fr; gap:17px; }.destination-dialog { width:calc(100vw - 20px); }.dialog-content { padding:40px 25px 28px; }.dialog-image-wrap,.dialog-image-wrap img { height:220px; }.dialog-details { gap:10px; } footer { padding:25px 20px; min-height:145px; align-items:flex-start; flex-direction:column; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } .reveal { opacity:1; transform:none; } }

.whatsapp-float {
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  overflow: hidden;
  background-color: transparent;
}
.whatsapp-icon-circle {
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background-color: #25D366;
}
.whatsapp-text {
  display: none;
}
.whatsapp-float:hover {
  transform: translateY(-5px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}
.brand-logo {
  height: 85px;
  width: auto;
  object-fit: contain;
  margin: -15px 0;
}
.brand {
  display: flex;
  align-items: center;
  gap: 16px;
}
/* Services page responsive grid */
.svc-grid { display:grid; gap:40px; margin-bottom:60px; }
.svc-row { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.svc-img { border-radius:8px; width:100%; aspect-ratio:4/3; object-fit:cover; }
.svc-h3 { font-family:var(--display); font-size:2.2rem; margin:0 0 15px; }
.svc-lead { font-size:1.1rem; color:#466157; margin-bottom:15px; }
.svc-body { color:#61796f; line-height:1.6; margin-bottom:20px; }
.svc-list { color:#61796f; line-height:1.6; padding-left:20px; margin-bottom:0; }
.svc-card { background:#fff; padding:40px; border-radius:8px; border:1px solid var(--line); }
.svc-card-h3 { font-family:var(--display); font-size:1.8rem; margin:0 0 15px; color:var(--gold); }
.svc-card-lead { color:#466157; line-height:1.6; margin-bottom:15px; }
.svc-card-body { color:#61796f; font-size:.9rem; line-height:1.6; margin:0; }
.svc-cards-grid { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.svc-section-h2 { margin:25px 0 50px; }
@media (max-width:768px) {
  .whatsapp-float { bottom:20px; right:20px; }
  .whatsapp-icon-circle { width:52px; height:52px; }
  .brand-logo { height:45px; margin:-5px 0; }
  .brand { gap:8px; max-width:calc(100vw - 80px); }
  .brand-text { font-size:0.75rem; white-space:normal; line-height:1.1; }
  .svc-row { grid-template-columns:1fr; }
  .svc-row > *:first-child { order:2; }
  .svc-cards-grid { grid-template-columns:1fr; }
  .svc-card { padding:28px; }
}

.form-phone-numbers {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-top: 20px;
  font-family: var(--sans);
  color: var(--ink);
  font-size: 0.86rem;
}

.phone-item {
  display: flex;
  align-items: center;
  gap: 8px;
}

.phone-item a {
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s;
}

.phone-item a:hover {
  color: var(--gold);
}

.phone-or {
  color: #70837a;
  font-size: 0.8rem;
}

@media (max-width: 620px) {
  .form-phone-numbers {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
}
