@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,500;9..144,600&display=swap');

:root { --ink:#063a4b; --muted:#5c7c86; --paper:#f4fbfc; --cream:#e5f4f5; --lime:#bdeee6; --coral:#ff7a59; --line:#d5e8e9; --white:#fff; --ocean:#006d8f; --aqua:#11b7c8; --serif:'Fraunces', Georgia, serif; --sans:'DM Sans', sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:15px; }
a { color:inherit; text-decoration:none; }
button, input, select { font:inherit; }
button { border:0; cursor:pointer; }
.site-header { display:flex; align-items:center; justify-content:space-between; max-width:1240px; margin:auto; padding:24px 28px; }
.brand, .footer-brand { display:flex; align-items:center; gap:9px; font-weight:700; font-size:20px; letter-spacing:-.04em; }
.brand-mark { position:relative; display:block; width:34px; height:34px; overflow:hidden; border-radius:50% 50% 50% 8px; background:linear-gradient(145deg, var(--aqua), var(--ocean)); transform:rotate(-8deg); box-shadow:0 5px 13px rgba(0,109,143,.2); }
.brand-mark:after { content:''; position:absolute; right:-6px; bottom:-8px; width:24px; height:24px; border:2px solid #ffe27a; border-radius:50%; }
.brand-sun { position:absolute; top:6px; left:7px; width:8px; height:8px; border-radius:50%; background:#ffe27a; }
.brand-wave { position:absolute; left:4px; width:29px; height:9px; border:2px solid white; border-left:0; border-right:0; border-bottom:0; border-radius:50%; transform:rotate(-4deg); }
.brand-wave-one { bottom:8px; }.brand-wave-two { bottom:4px; opacity:.55; }
.brand-dot { color:var(--coral); }
.brand-location { color:var(--ocean); font-size:.62em; font-weight:700; letter-spacing:.01em; text-transform:uppercase; }
.main-nav { display:flex; gap:34px; margin-left:90px; color:#49615c; font-size:14px; font-weight:600; }
.main-nav a:first-child { color:var(--ink); }
.saved-count { display:inline-grid; place-items:center; width:18px; height:18px; margin-left:3px; background:var(--lime); border-radius:50%; color:var(--ink); font-size:11px; }
.header-action { background:transparent; color:var(--ink); font-weight:600; font-size:14px; }
.header-action span { display:inline-block; margin-left:7px; color:var(--coral); font-size:18px; }
.hero { position:relative; max-width:1240px; min-height:590px; margin:0 auto; padding:70px 8% 72px; overflow:hidden; border-radius:0 0 22px 22px; background:linear-gradient(105deg, rgba(0,35,52,.76) 0%, rgba(0,51,68,.42) 48%, rgba(0,64,82,.06) 100%), url('https://images.pexels.com/photos/5570378/pexels-photo-5570378.jpeg?auto=compress&fit=crop&w=1920&q=85') center/cover; color:white; }
.hero:before { content:''; position:absolute; inset:auto -15% -115px; height:225px; background:radial-gradient(ellipse at center, rgba(98,231,239,.24), transparent 66%); pointer-events:none; }
.hero:after { content:''; position:absolute; inset:auto -10% -40% 45%; height:440px; border-radius:50%; background:rgba(217,243,106,.2); filter:blur(2px); }
.eyebrow { display:flex; align-items:center; gap:9px; color:var(--lime); font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.eyebrow:before { content:''; width:25px; height:2px; background:var(--coral); }
h1, h2, h3, p { margin-top:0; }
h1 { max-width:650px; margin:22px 0 20px; font-family:var(--serif); font-size:clamp(50px, 7vw, 94px); font-weight:500; line-height:.94; letter-spacing:-.06em; }
.hero-copy { max-width:440px; color:#e1f8fa; line-height:1.65; }
.search-card { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr 1fr auto; align-items:end; gap:0; max-width:1040px; margin:56px auto 0; padding:22px; border-radius:8px; background:var(--white); color:var(--ink); box-shadow:0 16px 50px rgba(0,0,0,.18); }
.field { padding:0 20px; border-right:1px solid var(--line); }
.field:first-child { padding-left:0; }
.field label, .form-field label { display:block; margin-bottom:8px; color:var(--muted); font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.field input, .field select, .form-field input, .form-field select { width:100%; border:0; outline:0; background:transparent; color:var(--ink); font-weight:600; }
.primary-btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:0 24px; border-radius:24px; background:var(--coral); color:white; font-weight:700; box-shadow:0 7px 16px rgba(255,122,89,.24); transition:transform .2s, background .2s; }
.primary-btn:hover { background:#e8684b; transform:translateY(-2px); }
.search-card .primary-btn { margin-left:20px; }
.home-section { max-width:1184px; margin:auto; padding:90px 28px 30px; }
.hiking-home { padding-top:64px; }
.section-head { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:28px; }
.section-head h2 { max-width:550px; margin-bottom:0; font-family:var(--serif); font-size:42px; font-weight:500; line-height:1; letter-spacing:-.05em; }
.section-head p { max-width:290px; margin-bottom:2px; color:var(--muted); line-height:1.5; }
.activity-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
.activity-card { overflow:hidden; border-radius:6px; background:white; box-shadow:0 4px 18px rgba(16,45,43,.05); }
.card-image { position:relative; height:235px; background:center/cover; }
.card-save { position:absolute; top:14px; right:14px; display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:white; color:var(--ink); font-size:18px; }
.card-body { padding:18px 18px 20px; }
.card-meta { display:flex; justify-content:space-between; margin-bottom:11px; color:var(--muted); font-size:12px; font-weight:600; }
.card-body h3 { margin-bottom:10px; font-family:var(--serif); font-size:23px; line-height:1.08; font-weight:500; letter-spacing:-.03em; }
.card-bottom { display:flex; align-items:center; justify-content:space-between; padding-top:14px; border-top:1px solid var(--line); }
.price { font-weight:700; }
.price small { color:var(--muted); font-size:11px; font-weight:400; }
.arrow-link { color:var(--coral); font-size:13px; font-weight:700; }
.value-band { display:grid; grid-template-columns:1fr 1fr 1fr; gap:1px; max-width:1184px; margin:80px auto 90px; padding:0 28px; }
.value-item { padding:27px 25px; background:var(--cream); }
.value-item:first-child { border-radius:6px 0 0 6px; }.value-item:last-child { border-radius:0 6px 6px 0; }
.value-item strong { display:block; margin-bottom:6px; font-family:var(--serif); font-size:22px; font-weight:500; }.value-item span { color:var(--muted); font-size:13px; line-height:1.4; }
.page-shell { max-width:1184px; margin:auto; padding:42px 28px 100px; }
.breadcrumb { margin-bottom:22px; color:var(--muted); font-size:13px; }.breadcrumb a { color:var(--ink); font-weight:600; }
.page-title { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:35px; }.page-title h1 { margin:0; color:var(--ink); font-size:clamp(46px, 7vw, 76px); }.page-title p { max-width:300px; margin-bottom:6px; color:var(--muted); line-height:1.5; }
.filters { display:flex; gap:10px; margin-bottom:28px; overflow:auto; }.filter { padding:11px 16px; border:1px solid var(--line); border-radius:30px; background:transparent; color:var(--muted); white-space:nowrap; font-size:13px; font-weight:600; }.filter.active, .filter:hover { border-color:var(--ink); background:var(--ink); color:white; }
.results-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:22px; }
.detail-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:52px; align-items:start; }.detail-photo { min-height:530px; border-radius:6px; background:center/cover; }.detail-copy h1 { max-width:580px; margin:20px 0; color:var(--ink); font-size:clamp(44px, 6vw, 72px); }.rating { color:var(--coral); font-weight:700; }.detail-description { max-width:480px; color:var(--muted); line-height:1.7; }.detail-list { display:flex; gap:20px; margin:26px 0; padding:19px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.detail-list div { color:var(--muted); font-size:12px; }.detail-list strong { display:block; margin-top:6px; color:var(--ink); font-size:14px; }.booking-box { margin-top:27px; padding:22px; border-radius:6px; background:var(--cream); }.booking-box .price { margin-bottom:16px; font-size:25px; }.booking-box .primary-btn { width:100%; }
.trail-note { max-width:480px; margin:0; color:var(--muted); font-size:13px; line-height:1.6; }.trail-note strong { color:var(--ink); }
.checkout-layout { display:grid; grid-template-columns:1.1fr .9fr; gap:60px; align-items:start; }.checkout-layout h1 { margin:16px 0 35px; color:var(--ink); font-size:64px; }.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }.form-field.full { grid-column:1/-1; }.form-field input, .form-field select { padding:14px 0; border-bottom:1px solid var(--line); }.summary { padding:24px; border-radius:6px; background:var(--cream); }.summary h3 { margin-bottom:22px; font-family:var(--serif); font-size:27px; font-weight:500; }.summary-img { height:170px; margin-bottom:18px; border-radius:4px; background:center/cover; }.summary-row { display:flex; justify-content:space-between; margin-top:13px; color:var(--muted); font-size:13px; }.summary-total { display:flex; justify-content:space-between; margin-top:22px; padding-top:18px; border-top:1px solid #d2d8d1; font-size:18px; font-weight:700; }.checkout-submit { width:100%; margin-top:26px; }
.success { max-width:780px; margin:50px auto 120px; padding:80px 30px; text-align:center; }.success-mark { display:grid; place-items:center; width:74px; height:74px; margin:0 auto 24px; border-radius:50%; background:var(--lime); font-size:35px; }.success h1 { margin:0 auto 18px; color:var(--ink); font-size:68px; }.success p { max-width:450px; margin:0 auto 30px; color:var(--muted); line-height:1.65; }.email-note { margin-top:24px; color:var(--muted); font-size:12px; }
.site-footer { display:flex; align-items:center; justify-content:space-between; max-width:1184px; margin:auto; padding:32px 28px 38px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }.footer-brand { color:var(--ink); font-size:16px; }.footer-brand .brand-mark { width:24px; height:24px; border-radius:7px 7px 7px 2px; }.footer-brand .brand-sun { top:5px; left:5px; width:6px; height:6px; }.footer-brand .brand-wave { left:3px; width:21px; height:7px; border-width:1px; }.footer-brand .brand-wave-one { bottom:6px; }.footer-brand .brand-wave-two { bottom:3px; }.footer-note { color:var(--coral); font-weight:600; }
.about-page > h1 { max-width:800px; margin:16px 0 22px; color:var(--ink); font-size:clamp(48px,7vw,78px); }.about-lead { max-width:680px; color:var(--muted); font-size:19px; line-height:1.7; }.about-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:46px; }.about-grid section { min-height:220px; padding:28px; border-radius:12px; background:#ffffffc9; box-shadow:0 10px 28px #063a4b0d; }.about-grid h2,.about-cta h2 { font:500 31px/1.05 var(--serif); letter-spacing:-.04em; }.about-grid p,.about-cta p { color:var(--muted); line-height:1.7; }.about-cta { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-top:28px; padding:34px; border-radius:12px; background:var(--cream); }.about-cta h2 { margin:9px 0 10px; }.about-cta p { margin:0; }
.about-story { max-width:800px; margin-top:36px; padding:30px; border-left:5px solid var(--coral); border-radius:0 12px 12px 0; background:#ffffffb8; }.about-story h2 { margin:0 0 14px; font:500 34px/1 var(--serif); letter-spacing:-.04em; }.about-story p { margin:0 0 14px; color:var(--muted); line-height:1.72; }.about-story p:last-child { margin-bottom:0; }
.explore-about { max-width:850px; margin:4px 0 42px; padding:28px 30px; border-left:5px solid var(--coral); border-radius:0 12px 12px 0; background:#ffffffb8; }.explore-about .eyebrow { color:var(--ocean); }.explore-about h2 { max-width:710px; margin:12px 0; font:500 clamp(29px,4vw,44px)/1.05 var(--serif); letter-spacing:-.04em; }.explore-about p { max-width:640px; margin:0; color:var(--muted); line-height:1.65; }
.home-about { display:grid; grid-template-columns:1.25fr .75fr; gap:28px; align-items:stretch; margin-top:74px; margin-bottom:52px; padding:42px; border-radius:16px; background:linear-gradient(135deg,#e7fbfa,#d6eef8); }.about-home-copy h2 { margin:12px 0 16px; font:500 clamp(38px,4vw,55px)/.98 var(--serif); letter-spacing:-.05em; }.about-home-copy p { max-width:590px; color:var(--muted); line-height:1.7; }.about-home-copy .primary-btn { margin-top:8px; }.about-home-facts { display:grid; align-content:center; gap:6px; padding:25px; border-radius:12px; background:#ffffffb8; }.about-home-facts strong { margin-top:12px; font:500 23px var(--serif); }.about-home-facts strong:first-child { margin-top:0; }.about-home-facts span { color:var(--muted); font-size:13px; }
@media (max-width:760px) { .site-header { padding:18px 20px; }.main-nav { display:none; }.header-action { font-size:12px; }.hero { min-height:680px; padding:52px 24px; border-radius:0; }.hero h1 { font-size:58px; }.search-card { grid-template-columns:1fr; gap:18px; margin-top:42px; padding:18px; }.field, .field:first-child { padding:0 0 15px; border-right:0; border-bottom:1px solid var(--line); }.search-card .primary-btn { margin:0; }.home-section, .page-shell { padding-right:20px; padding-left:20px; }.section-head, .page-title { display:block; }.section-head h2 { margin-bottom:15px; font-size:36px; }.activity-grid, .results-grid { grid-template-columns:1fr; }.activity-card .card-image { height:250px; }.value-band { grid-template-columns:1fr; padding:0 20px; margin:50px auto 65px; }.value-item:first-child { border-radius:6px 6px 0 0; }.value-item:last-child { border-radius:0 0 6px 6px; }.detail-grid, .checkout-layout { grid-template-columns:1fr; gap:30px; }.detail-photo { min-height:340px; }.detail-copy h1, .checkout-layout h1, .success h1 { font-size:52px; }.form-grid { grid-template-columns:1fr; }.form-field.full { grid-column:auto; }.site-footer { display:block; padding:25px 20px; }.site-footer p { margin:14px 0; } }
@media (max-width:760px) { .about-grid { grid-template-columns:1fr; margin-top:30px; }.about-grid section { min-height:0; }.about-cta { display:block; padding:26px; }.about-cta .primary-btn { margin-top:12px; } }
@media (max-width:760px) { .about-story { margin-top:28px; padding:24px; } }
@media (max-width:760px) { .explore-about { margin-bottom:30px; padding:24px; } }
@media (max-width:760px) { .home-about { grid-template-columns:1fr; margin-top:48px; padding:28px; }.about-home-facts { padding:22px; } }

/* Island colors continue behind every page. */
body { min-height:100vh; background:radial-gradient(ellipse at 16% 0%, rgba(113,238,239,.92) 0%, transparent 31%), radial-gradient(ellipse at 88% 44%, rgba(255,218,184,.58) 0%, transparent 27%), linear-gradient(145deg, #58cbdc 0%, #a5e7ee 38%, #c8efff 68%, #55b9d8 100%); background-attachment:fixed; }
.detail-copy > .eyebrow, .checkout-layout .eyebrow, .success .eyebrow { color:var(--ocean); }
.photo-open { position:absolute; inset:0; width:100%; height:100%; background:transparent; cursor:zoom-in; }
.card-save { z-index:1; }
button.detail-photo, button.summary-img { display:block; width:100%; cursor:zoom-in; }
[data-photo]:focus-visible { outline:3px solid var(--ocean); outline-offset:-4px; }
.photo-is-open { overflow:hidden; }
.photo-viewer { width:min(1100px, 96vw); max-width:96vw; max-height:94dvh; padding:56px 16px 16px; border:0; border-radius:16px; background:#062d3b; color:white; box-shadow:0 24px 80px #0006; }
.photo-viewer::backdrop { background:rgba(2,20,30,.85); }
.photo-viewer figure { margin:0; }
.photo-viewer img { display:block; width:100%; height:auto; max-height:calc(94dvh - 110px); object-fit:contain; }
.photo-viewer figcaption { padding:14px 8px 0; text-align:center; font-weight:600; }
.photo-close { position:absolute; top:8px; right:12px; width:40px; height:40px; border-radius:50%; background:white; color:#063a4b; font-size:28px; }
.photo-close:focus-visible { outline:3px solid #ffb68e; outline-offset:3px; }

.adventure-intro { max-width:820px; margin-bottom:32px; }.adventure-intro h1 { max-width:800px; font-size:clamp(44px,6vw,76px); }.adventure-intro p { max-width:650px; line-height:1.7; color:var(--muted); }.adventure-page .eyebrow { color:var(--ocean); }
.adventure-overview { display:grid; grid-template-columns:1.25fr 1fr; gap:28px; align-items:start; }.adventure-cover { position:relative; width:100%; height:390px; border-radius:14px; background:center/cover; cursor:zoom-in; }.adventure-cover span { position:absolute; bottom:18px; right:18px; padding:10px 16px; border-radius:20px; background:white; color:var(--ink); font-size:12px; font-weight:600; }
.trip-facts { display:flex; justify-content:space-between; gap:12px; padding:22px 4px; }.trip-facts small,.trip-facts strong { display:block; }.trip-facts small { color:var(--muted); margin-bottom:7px; }.trip-facts strong { font-size:13px; }
.vehicle-prices { padding:28px; background:white; border-radius:14px; box-shadow:0 10px 32px #063a4b0d; }.vehicle-prices h2 { font:500 36px/1.06 var(--serif); margin:16px 0; letter-spacing:-.03em; }.vehicle-prices p { color:var(--muted); font-size:12px; }.vehicle-prices table { width:100%; border-collapse:collapse; margin:20px 0; }.vehicle-prices th,.vehicle-prices td { padding:12px 0; border-bottom:1px solid var(--line); text-align:left; }.vehicle-prices thead th { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.06em; }.vehicle-prices td,.vehicle-prices thead th:last-child { text-align:right; }.vehicle-prices td { font-weight:700; color:var(--ocean); }.vehicle-prices tbody th { font-weight:500; }.vehicle-prices .primary-btn { width:100%; }
.excursion-section { padding-top:64px; }.excursion-section .section-head .eyebrow { margin-bottom:14px; }.stop-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }.stop-card { overflow:hidden; background:white; border-radius:12px; }.stop-card button { position:relative; display:block; width:100%; padding:0; background:var(--cream); cursor:zoom-in; }.stop-card img { width:100%; height:190px; display:block; object-fit:cover; }.stop-card button span { position:absolute; top:12px; left:12px; display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:white; color:var(--ink); font-size:12px; font-weight:700; }.stop-card > div { padding:18px; }.stop-card h3 { font:500 23px/1.1 var(--serif); margin-bottom:8px; }.stop-card p { margin:0; line-height:1.5; color:var(--muted); font-size:13px; }.tour-inclusions { display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:40px; padding:28px; border-radius:14px; background:#ffffffb8; }.tour-inclusions h2 { font:500 25px var(--serif); }.tour-inclusions p { color:var(--muted); line-height:1.7; margin:0; }
@media(max-width:760px) { .adventure-overview,.tour-inclusions { grid-template-columns:1fr; }.adventure-cover { height:280px; }.stop-grid { grid-template-columns:1fr 1fr; gap:14px; }.stop-card img { height:150px; }.stop-card h3 { font-size:20px; }.vehicle-prices { padding:22px; }.trip-facts { flex-wrap:wrap; }.excursion-section { padding-top:42px; } }
@media(max-width:430px) { .stop-grid { grid-template-columns:1fr; }.stop-card img { height:210px; } }

.intro-film { max-width:1184px; margin:0 auto; padding:64px 28px 0; }.intro-film .eyebrow { color:var(--ocean); margin-bottom:14px; }.intro-film video { display:block; width:100%; aspect-ratio:16/9; border-radius:14px; background:#063a4b; box-shadow:0 14px 38px #063a4b20; }.intro-film .music-credit { margin:12px 0 0; color:var(--muted); font-size:11px; line-height:1.6; }.music-credit a { text-decoration:underline; }@media(max-width:760px) { .intro-film { padding:40px 20px 0; } }

.intro-booking-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:28px;align-items:center}.intro-booking-cta{padding:26px;background:#e4f4ef;border-radius:16px}.intro-booking-cta h3{font-family:Georgia,serif;font-size:32px;line-height:1.15;margin:4px 0 16px}.intro-booking-cta p{color:var(--muted);line-height:1.6}.intro-booking-cta .primary-btn{white-space:normal;text-align:center}.intro-booking-cta small{display:block;color:var(--muted);margin-top:14px}@media(max-width:900px){.intro-booking-layout{grid-template-columns:1fr}.intro-booking-cta h3 br{display:none}}

.rocka-feature{display:grid;grid-template-columns:1.5fr 1fr;gap:24px;align-items:center}.rocka-prices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:28px 0}.rocka-prices h2{font-size:26px}.rocka-prices table{width:100%}@media(max-width:760px){.rocka-feature,.rocka-prices{grid-template-columns:1fr}}

.arikok-banner{margin:0 0 24px;width:100%;max-width:380px}.arikok-banner img{display:block;width:100%;height:210px;object-fit:cover;object-position:center 85%;border-radius:16px}.arikok-banner figcaption{color:var(--muted);font-size:11px;line-height:1.5;margin-top:10px}.arikok-banner a{text-decoration:underline}

/* Booking request feedback */
.inquiry-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.inquiry-status { padding:14px 16px; border-radius:8px; background:#fff; color:var(--ink); line-height:1.5; }
.inquiry-status.is-error { border:1px solid #b52b27; color:#88211e; }
.primary-btn:disabled { cursor:wait; opacity:.65; transform:none; }
