:root { --ink:#12221d; --forest:#173c32; --deep:#0d2922; --sage:#d8e3d9; --mist:#eff3ed; --cream:#f7f4ed; --gold:#d6a85f; --white:#fff; --muted:#64716c; --font-sans:"Manrope",Arial,sans-serif; --font-serif:"Cormorant Garamond",Georgia,serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:88px; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:var(--font-sans), sans-serif; font-size:15px; line-height:1.7; overflow-x:hidden; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
button, input, textarea { font:inherit; }
button, a { -webkit-tap-highlight-color:transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
::selection { background:var(--gold); color:var(--deep); }
.skip-link { position:fixed; z-index:1000; top:10px; left:10px; background:white; padding:10px 16px; transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.container { width:min(1180px, calc(100% - 48px)); margin-inline:auto; }
.section { padding:118px 0; }
.eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 22px; color:#477062; text-transform:uppercase; letter-spacing:.18em; font-size:11px; font-weight:800; }
.eyebrow span { width:30px; height:1px; background:var(--gold); }
.eyebrow.light { color:#d9e3dc; }
h1,h2,h3,p { margin-top:0; }
h2 { font-family:var(--font-serif), serif; font-weight:500; font-size:clamp(46px,5.4vw,76px); line-height:.98; letter-spacing:-.035em; margin-bottom:34px; }
h2 em { color:#4d7769; font-weight:500; }
.site-header { position:fixed; z-index:100; top:0; left:0; right:0; height:82px; display:flex; align-items:center; padding:0 max(24px, calc((100vw - 1320px)/2)); background:rgba(247,244,237,.93); backdrop-filter:blur(18px); border-bottom:1px solid rgba(18,34,29,.09); }
.brand { display:flex; align-items:center; gap:11px; min-width:190px; }
.brand-mark { width:41px; height:41px; display:grid; place-items:center; background:var(--forest); color:white; border-radius:50% 50% 50% 18%; font-family:var(--font-serif); font-size:25px; font-weight:600; }
.brand b { display:block; letter-spacing:.19em; line-height:1.05; font-size:15px; }.brand small { display:block; color:#76817c; letter-spacing:.28em; text-transform:uppercase; font-size:8px; margin-top:5px; }
.nav-links { display:flex; justify-content:center; gap:31px; flex:1; height:100%; }.nav-links a { position:relative; display:flex; align-items:center; font-size:12px; font-weight:700; color:#5a6762; }.nav-links a::after { content:""; position:absolute; left:0; right:100%; bottom:17px; height:2px; background:var(--gold); transition:.25s ease; }.nav-links a.active, .nav-links a:hover { color:var(--ink); }.nav-links a.active::after { right:0; }
.nav-cta { display:flex; align-items:center; gap:14px; background:var(--forest); color:white; padding:11px 11px 11px 20px; font-size:12px; font-weight:800; border-radius:50px; }.nav-cta span { display:grid; place-items:center; width:28px; height:28px; background:rgba(255,255,255,.12); border-radius:50%; }
.menu-button { display:none; border:0; background:none; padding:10px; }.menu-button span { display:block; width:23px; height:2px; margin:5px; background:var(--ink); }
.hero { position:relative; min-height:100svh; padding:170px max(24px, calc((100vw - 1180px)/2)) 110px; display:flex; align-items:center; isolation:isolate; color:white; background:url('../images/hero.jpg') center 45% / cover no-repeat; }
.hero-overlay { position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,rgba(8,31,26,.9) 0%,rgba(10,40,33,.68) 48%,rgba(9,29,25,.22) 78%),linear-gradient(0deg,rgba(5,26,21,.5),transparent 55%); }
.hero-orb { position:absolute; z-index:-1; border:1px solid rgba(255,255,255,.16); border-radius:50%; }.orb-one { width:560px; height:560px; right:-190px; top:110px; }.orb-two { width:360px; height:360px; right:-88px; top:210px; }
.hero-content { max-width:850px; }.hero h1 { font-family:var(--font-serif),serif; font-size:clamp(64px,8vw,116px); font-weight:500; line-height:.84; letter-spacing:-.045em; margin:0 0 34px; }.hero h1 em { color:#e3c185; font-weight:500; }.hero-copy { max-width:650px; color:#dbe5df; font-size:17px; line-height:1.75; }
.hero-actions { display:flex; gap:12px; margin:35px 0 65px; }.button { display:inline-flex; justify-content:center; align-items:center; gap:22px; border:0; border-radius:100px; padding:15px 16px 15px 24px; font-size:12px; font-weight:800; cursor:pointer; transition:transform .25s, box-shadow .25s, background .25s; }.button span { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; }.button:hover { transform:translateY(-3px); }.button-primary { background:#f3e7cd; color:var(--deep); }.button-primary span { background:var(--gold); }.button-ghost { color:white; border:1px solid rgba(255,255,255,.35); }.button-ghost span { background:rgba(255,255,255,.1); }
.hero-trust { display:flex; gap:0; }.hero-trust div { padding:0 32px; border-left:1px solid rgba(255,255,255,.2); }.hero-trust div:first-child { padding-left:0; border:0; }.hero-trust strong,.hero-trust span { display:block; }.hero-trust strong { font-size:12px; }.hero-trust span { color:#aebeb6; font-size:10px; margin-top:4px; }.scroll-cue { position:absolute; right:max(24px,calc((100vw - 1180px)/2)); bottom:38px; display:flex; align-items:center; gap:10px; color:#ced8d2; font-size:9px; text-transform:uppercase; letter-spacing:.2em; }.scroll-cue span { width:1px; height:48px; background:linear-gradient(var(--gold),transparent); }
.about-section { background:var(--cream); }.about-grid { display:grid; grid-template-columns:1fr .94fr; gap:9%; align-items:center; }.about-visual { position:relative; padding:0 40px 45px 0; }.image-frame { height:650px; overflow:hidden; border-radius:2px 110px 2px 2px; }.image-frame img { width:100%; height:100%; object-fit:cover; }.about-visual::before { content:""; position:absolute; z-index:-1; inset:40px 0 0 42px; border:1px solid #cbbd9f; border-radius:0 110px 0 0; }.floating-note { position:absolute; right:-18px; bottom:5px; width:260px; padding:24px 26px; background:var(--forest); color:white; box-shadow:0 18px 45px rgba(13,41,34,.22); }.floating-note b,.floating-note span { display:block; }.floating-note b { font-family:var(--font-serif); font-size:21px; }.floating-note span { color:#b8cbc3; font-size:11px; }
.about-copy .lead { color:#334c44; font-size:18px; line-height:1.75; }.about-copy>p:not(.eyebrow) { color:var(--muted); }.benefit-list { margin:35px 0; border-top:1px solid #dcd8cf; }.benefit-list>div { display:flex; gap:20px; align-items:center; padding:16px 0; border-bottom:1px solid #dcd8cf; }.benefit-list i { color:var(--gold); font:600 16px var(--font-serif); }.benefit-list b,.benefit-list small { display:block; }.benefit-list b { font-size:13px; }.benefit-list small { color:#7a8580; font-size:11px; }.text-link { display:inline-flex; align-items:center; gap:24px; border-bottom:1px solid var(--ink); padding-bottom:5px; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }
.services-section { background:var(--mist); }.section-heading { display:flex; justify-content:space-between; align-items:end; gap:60px; margin-bottom:60px; }.section-heading h2 { margin-bottom:0; }.section-heading>p { width:360px; color:var(--muted); }.service-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #ccd6ce; border-left:1px solid #ccd6ce; }.service-card { position:relative; min-height:335px; padding:38px; border-right:1px solid #ccd6ce; border-bottom:1px solid #ccd6ce; transition:background .3s,color .3s,transform .3s; transition-delay:var(--delay); }.service-card:hover { background:var(--forest); color:white; transform:translateY(-4px); }.service-icon { width:52px; height:52px; display:grid; place-items:center; border:1px solid #c3cec6; border-radius:50%; color:#527466; font-size:20px; }.service-no { position:absolute; top:40px; right:36px; color:#9baaa3; font:600 14px var(--font-serif); }.service-card h3 { margin:70px 0 14px; font:600 27px var(--font-serif); }.service-card p { color:#68756f; font-size:12px; }.service-card:hover p { color:#bfd0c8; }.service-card a { position:absolute; bottom:30px; display:flex; gap:15px; align-items:center; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }
.benefits-band { background:var(--forest); color:white; padding:48px 0; }.benefits-row { display:grid; grid-template-columns:repeat(4,1fr); }.benefits-row>div { display:grid; grid-template-columns:45px auto; grid-template-rows:auto auto; padding:5px 28px; border-left:1px solid rgba(255,255,255,.14); }.benefits-row>div:first-child { border:0; padding-left:0; }.benefits-row span { grid-row:1/3; color:var(--gold); font-size:20px; }.benefits-row b { font:600 19px var(--font-serif); }.benefits-row small { color:#9fb6ad; font-size:10px; }
.destinations-section { background:#f8f6f1; }.destinations-heading { align-items:end; }.destination-grid { display:grid; grid-template-columns:repeat(12,1fr); grid-auto-rows:245px; gap:18px; }.destination-card { position:relative; overflow:hidden; color:white; min-height:245px; }.destination-card img { width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }.destination-card:hover img { transform:scale(1.06); }.card-1,.card-4 { grid-column:span 7; }.card-2,.card-3 { grid-column:span 5; }.card-5,.card-6 { grid-column:span 6; }.destination-shade { position:absolute; inset:0; background:linear-gradient(0deg,rgba(8,29,24,.88),transparent 65%); }.destination-copy { position:absolute; left:27px; bottom:22px; }.destination-copy>span { color:#dfc48f; text-transform:uppercase; letter-spacing:.18em; font-size:9px; }.destination-copy h3 { margin:3px 0 0; font:600 32px var(--font-serif); }.destination-copy p { margin:0; color:#c8d6d0; font-size:9px; letter-spacing:.04em; }.destination-card>a { position:absolute; top:20px; right:20px; width:36px; height:36px; display:grid; place-items:center; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.3); border-radius:50%; backdrop-filter:blur(6px); transition:.25s; }.destination-card:hover>a { background:var(--gold); color:var(--deep); }
.stories-section { background:var(--deep); color:white; overflow:hidden; }.stories-grid { display:grid; grid-template-columns:.72fr 1.28fr; gap:9%; }.stories-intro { position:sticky; top:130px; height:max-content; }.stories-intro h2 em { color:#dcb979; }.stories-intro>p:not(.eyebrow) { color:#9db2a9; max-width:360px; }.quote-mark { color:#25493f; font:600 180px/1 var(--font-serif); height:115px; }.testimonial-list blockquote { position:relative; margin:0; padding:0 0 46px 60px; border-bottom:1px solid rgba(255,255,255,.13); margin-bottom:46px; }.testimonial-list blockquote:last-child { margin-bottom:0; }.testimonial-list blockquote>p { font:500 clamp(24px,2.5vw,34px)/1.42 var(--font-serif); color:#eef4f0; }.quote-index { position:absolute; left:0; top:7px; color:var(--gold); font:600 14px var(--font-serif); }.testimonial-list footer { display:flex; align-items:center; gap:13px; }.testimonial-list footer i { width:39px; height:39px; display:grid; place-items:center; border-radius:50%; background:#315247; color:#e4c689; font:600 17px var(--font-serif); }.testimonial-list footer b,.testimonial-list footer small { display:block; }.testimonial-list footer b { font-size:11px; }.testimonial-list footer small { color:#81988f; font-size:9px; text-transform:uppercase; letter-spacing:.12em; }
.contact-section { background:var(--cream); }.contact-grid { display:grid; grid-template-columns:.86fr 1.14fr; gap:9%; align-items:start; }.contact-copy>p:not(.eyebrow) { color:var(--muted); max-width:500px; }.direct-contact { margin-top:36px; }.direct-contact a { display:grid; grid-template-columns:62px 1fr 30px; align-items:center; border-top:1px solid #d6d3ca; padding:17px 0; }.direct-contact a:last-child { border-bottom:1px solid #d6d3ca; }.direct-contact i { font-style:normal; color:#8b948f; font-size:10px; text-transform:uppercase; }.direct-contact small,.direct-contact b { display:block; }.direct-contact small { color:#929b96; font-size:9px; text-transform:uppercase; letter-spacing:.1em; }.direct-contact b { font:600 18px var(--font-serif); }.direct-contact em { font-style:normal; }
.enquiry-form { background:white; padding:44px; box-shadow:0 20px 60px rgba(22,48,39,.08); }.enquiry-form label { display:block; margin-bottom:23px; }.enquiry-form label>span { display:block; color:#53605b; font-size:9px; text-transform:uppercase; letter-spacing:.15em; font-weight:800; margin-bottom:7px; }.enquiry-form input,.enquiry-form textarea { width:100%; border:0; border-bottom:1px solid #d1d5d0; outline:0; padding:9px 0 12px; background:transparent; color:var(--ink); font-size:13px; transition:border .2s; resize:vertical; }.enquiry-form input:focus,.enquiry-form textarea:focus { border-color:var(--gold); }.enquiry-form input::placeholder,.enquiry-form textarea::placeholder { color:#a3aaa6; }.field-row { display:grid; grid-template-columns:1fr 1fr; gap:28px; }.button-dark { width:100%; background:var(--forest); color:white; }.button-dark span { background:rgba(255,255,255,.12); }.form-feedback { margin:13px 0 0; font-size:10px; color:#87908c; }.form-feedback.success { color:#277257; }.form-feedback.error { color:#b2453b; }
.website-field { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; opacity:0!important; }
.offices { display:grid; grid-template-columns:.7fr repeat(3,1fr); gap:40px; margin-top:90px; padding-top:42px; border-top:1px solid #d8d5cd; }.offices address { font-style:normal; }.offices b,.offices span,.offices a { display:block; }.offices b { font:600 18px var(--font-serif); margin-bottom:10px; }.offices span { color:#6f7a75; font-size:10px; min-height:68px; }.offices a { display:inline-block; margin-top:13px; font-size:9px; font-weight:800; text-transform:uppercase; border-bottom:1px solid #8e9692; }
.footer { background:#091f1a; color:white; padding:75px 0 25px; }.footer-top { display:grid; grid-template-columns:1.7fr .7fr 1fr .8fr; gap:50px; padding-bottom:60px; }.brand-light .brand-mark { background:#d7b476; color:#102c24; }.brand-light small { color:#9ab0a7; }.footer-brand p { max-width:330px; margin-top:22px; color:#789087; font-size:10px; }.footer h3 { margin:0 0 18px; color:#d9e3dd; font-size:9px; text-transform:uppercase; letter-spacing:.16em; }.footer-top>div>a { display:block; color:#8da39a; font-size:10px; margin:8px 0; }.socials { display:flex; gap:8px; }.socials a { width:35px; height:35px; display:grid; place-items:center; border:1px solid #315047; border-radius:50%; color:#d4e2dc; font-size:10px; }.footer-bottom { border-top:1px solid #1d3931; padding-top:22px; display:flex; justify-content:space-between; color:#617a70; font-size:9px; }.footer-bottom a { color:#adc0b8; }.footer-bottom span { margin-left:8px; color:var(--gold); }
.whatsapp-float { position:fixed; z-index:90; right:22px; bottom:20px; display:flex; align-items:center; gap:8px; padding:9px 14px; border-radius:40px; background:#1e8e62; color:white; box-shadow:0 8px 25px rgba(0,0,0,.22); font-size:10px; font-weight:800; }.whatsapp-float span { font-weight:600; }
[data-reveal] { opacity:0; transform:translateY(22px); transition:opacity .7s ease,transform .7s ease; transition-delay:var(--delay,0ms); }[data-reveal].is-visible { opacity:1; transform:none; }
.image-frame { position:relative; }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; } [data-reveal] { opacity:1; transform:none; } }
@media (max-width:980px) { .nav-links { gap:18px; }.nav-links a { font-size:10px; }.nav-cta { display:none; }.about-grid,.contact-grid { grid-template-columns:1fr 1fr; gap:6%; }.service-grid { grid-template-columns:repeat(2,1fr); }.benefits-row { grid-template-columns:repeat(2,1fr); gap:30px 0; }.benefits-row>div:nth-child(3) { border:0; padding-left:0; }.stories-grid { gap:5%; }.offices { grid-template-columns:repeat(3,1fr); }.offices>div { grid-column:1/-1; }.footer-top { grid-template-columns:1.4fr 1fr 1fr; }.footer-top>div:last-child { grid-column:2; } }
@media (max-width:760px) { .container { width:min(100% - 34px,600px); }.section { padding:82px 0; }.site-header { height:70px; padding:0 17px; }.brand { min-width:0; }.brand-mark { width:37px; height:37px; }.brand b { font-size:13px; }.menu-button { display:block; margin-left:auto; }.nav-links { position:absolute; top:70px; left:0; right:0; height:auto; display:none; flex-direction:column; gap:0; padding:14px 20px 24px; background:rgba(247,244,237,.98); border-bottom:1px solid #ddd8cc; }.nav-links.is-open { display:flex; }.nav-links a { padding:11px 4px; font-size:12px; }.nav-links a::after { bottom:7px; right:100%; }.nav-links a.active::after { right:85%; }.hero { min-height:860px; padding:130px 22px 80px; align-items:flex-start; }.hero h1 { font-size:64px; }.hero-copy { font-size:14px; }.hero-actions { flex-direction:column; align-items:flex-start; margin-bottom:48px; }.hero-trust { flex-direction:column; gap:15px; }.hero-trust div,.hero-trust div:first-child { padding:0 0 0 15px; border-left:1px solid rgba(255,255,255,.2); }.scroll-cue { display:none; }.about-grid,.contact-grid,.stories-grid { grid-template-columns:1fr; }.about-grid { gap:70px; }.about-visual { padding-right:20px; }.image-frame { height:480px; border-radius:2px 70px 2px 2px; }.floating-note { right:0; width:230px; }.about-copy h2 { font-size:48px; }.section-heading { display:block; }.section-heading>p { width:auto; margin-top:24px; }.service-grid { grid-template-columns:1fr; }.service-card { min-height:315px; }.benefits-row { grid-template-columns:1fr; gap:0; }.benefits-row>div,.benefits-row>div:first-child,.benefits-row>div:nth-child(3) { padding:20px 0; border:0; border-bottom:1px solid rgba(255,255,255,.12); }.destination-grid { display:flex; overflow:auto; scroll-snap-type:x mandatory; margin-right:-17px; padding-right:17px; }.destination-card { flex:0 0 84%; height:390px; scroll-snap-align:start; }.stories-intro { position:static; }.testimonial-list blockquote { padding-left:40px; }.testimonial-list blockquote>p { font-size:25px; }.contact-grid { gap:55px; }.enquiry-form { padding:28px 22px; }.field-row { grid-template-columns:1fr; gap:0; }.offices { grid-template-columns:1fr; gap:28px; }.offices>div { grid-column:auto; }.offices span { min-height:0; }.footer-top { grid-template-columns:1fr 1fr; }.footer-brand { grid-column:1/-1; }.footer-top>div:last-child { grid-column:auto; }.footer-bottom { gap:15px; }.whatsapp-float span { display:none; } }
@media (max-width:430px) { .hero h1 { font-size:55px; }.hero-actions .button { width:100%; }.footer-top { grid-template-columns:1fr; }.footer-brand,.footer-top>div:last-child { grid-column:auto; }.footer-bottom { flex-direction:column; } }
