:root { --ink:#123f49; --forest:#086277; --forest-deep:#033746; --lagoon:#19b8b2; --seafoam:#dff6ef; --sky:#8edee8; --lime:#ffd45f; --sand:#fff3d9; --orange:#ff705e; --white:#fffdf7; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--sand); color:var(--ink); font-family:Arial,Helvetica,sans-serif; }
a { color:inherit; text-decoration:none; }

.nav-shell { align-items:center; backdrop-filter:blur(12px); background:rgba(3,55,70,.88); border-bottom:1px solid rgba(255,255,255,.22); color:var(--white); display:flex; height:88px; justify-content:space-between; padding:0 clamp(22px,5vw,78px); position:absolute; top:0; width:100%; z-index:10; }
.brand { align-items:center; display:inline-flex; gap:12px; line-height:1; }
.brand-logo { display:block; filter:drop-shadow(0 5px 14px rgba(0,0,0,.28)); height:72px; object-fit:contain; object-position:left center; width:225px; }
.footer-logo { height:96px; width:285px; }
.nav-shell nav { align-items:center; display:flex; font-size:13px; gap:34px; }
.nav-book { border:1px solid var(--lime); border-radius:100px; color:var(--lime); padding:13px 21px; }

.hero { background:linear-gradient(90deg,rgba(3,55,70,.97) 0%,rgba(4,78,94,.84) 38%,rgba(4,78,94,.14) 76%),url('assets/taue-uga-hero.png') center/cover no-repeat; color:var(--white); min-height:880px; overflow:hidden; padding:225px clamp(24px,8vw,130px) 100px; position:relative; }
.hero-noise { background-image:radial-gradient(rgba(255,255,255,.15) .6px,transparent .6px); background-size:7px 7px; inset:0; opacity:.14; position:absolute; }
.hero-orbit { border:1px solid rgba(255,212,95,.34); border-radius:50%; position:absolute; }
.hero-orbit-one { height:640px; right:-70px; top:145px; width:640px; }
.hero-orbit-two { height:420px; right:40px; top:255px; width:420px; }
.hero-orbit:after { background:var(--orange); border-radius:50%; box-shadow:0 0 25px var(--orange); content:""; height:12px; left:8%; position:absolute; top:19%; width:12px; }
.hero-content { max-width:850px; position:relative; z-index:2; }
.eyebrow,.section-kicker { color:var(--orange); font-size:11px; font-weight:800; letter-spacing:.24em; text-transform:uppercase; }
.hero h1 { font:400 clamp(62px,8.5vw,126px)/.88 Georgia,serif; letter-spacing:-.06em; margin:27px 0 34px; }
.hero h1 em { color:var(--lime); font-weight:400; }
.hero-copy { color:rgba(255,255,255,.76); font-size:clamp(17px,2vw,22px); line-height:1.6; max-width:610px; }
.hero-actions { align-items:center; display:flex; flex-wrap:wrap; gap:32px; margin-top:46px; }
.primary-button { align-items:center; background:var(--lime); border-radius:100px; color:var(--forest-deep); display:inline-flex; font-size:14px; font-weight:800; gap:32px; padding:18px 24px; }
.primary-button span,.final-cta a span { font-size:20px; }
.text-link { border-bottom:1px solid rgba(255,255,255,.4); font-size:13px; padding:9px 0; }
.text-link span { color:var(--lime); margin-left:12px; }
.hero-card { bottom:72px; display:flex; flex-direction:column; gap:5px; position:absolute; right:clamp(24px,8vw,130px); z-index:2; }
.hero-card .rating { color:var(--lime); font-size:13px; letter-spacing:.18em; }
.hero-card strong { font-family:Georgia,serif; font-size:24px; font-weight:400; }
.hero-card span:last-child { color:rgba(255,255,255,.6); font-size:12px; }
.hero-word { bottom:-116px; color:rgba(255,255,255,.035); font:900 370px/1 Arial,sans-serif; letter-spacing:-.08em; margin:0; position:absolute; right:-10px; }

.intro { background:linear-gradient(135deg,var(--sand) 0%,var(--seafoam) 100%); display:grid; gap:10vw; grid-template-columns:1.25fr .75fr; padding:130px clamp(24px,8vw,130px) 92px; }
.intro h2,.story h2,.booking h2 { font:400 clamp(42px,5vw,72px)/1.04 Georgia,serif; letter-spacing:-.045em; margin:20px 0; }
.intro-copy { color:#536158; font-size:16px; line-height:1.75; padding-top:25px; }
.social-proof { align-items:center; border-top:1px solid rgba(8,98,119,.24); display:flex; gap:18px; margin-top:34px; padding-top:24px; }
.social-proof strong { color:var(--forest); font:400 42px Georgia,serif; }
.social-proof span { font-size:11px; letter-spacing:.1em; line-height:1.4; max-width:140px; text-transform:uppercase; }

.steps { background:var(--white); border-bottom:1px solid rgba(8,98,119,.24); border-top:1px solid rgba(8,98,119,.24); display:grid; grid-template-columns:repeat(3,1fr); margin:0 clamp(24px,8vw,130px) 130px; }
.steps article { min-height:285px; padding:32px 38px; }
.steps article + article { border-left:1px solid rgba(8,98,119,.24); }
.steps article > span { color:var(--orange); font-size:11px; font-weight:800; }
.steps h3 { font:400 30px Georgia,serif; margin:72px 0 16px; }
.steps p { color:#68736b; font-size:13px; line-height:1.65; margin:0; }

.tour-gallery { background:var(--forest-deep); color:var(--white); display:grid; gap:18px; grid-template-columns:1.05fr .95fr .95fr; grid-template-rows:auto 410px; padding:110px clamp(24px,8vw,130px) 120px; }
.gallery-heading { align-self:end; padding:0 45px 28px 0; }
.gallery-heading h2 { font:400 clamp(40px,4.6vw,68px)/1.02 Georgia,serif; letter-spacing:-.045em; margin:18px 0 24px; }
.gallery-heading > p:last-child { color:rgba(255,255,255,.66); font-size:15px; line-height:1.7; max-width:480px; }
.gallery-photo { background:#021f28; margin:0; overflow:hidden; position:relative; }
.gallery-photo img { filter:contrast(1.04) saturate(1.06); height:100%; object-fit:cover; transition:transform .7s ease; width:100%; }
.gallery-photo:hover img { transform:scale(1.025); }
.gallery-photo figcaption { background:linear-gradient(transparent,rgba(1,22,28,.88)); bottom:0; font:italic 16px Georgia,serif; left:0; padding:58px 22px 20px; position:absolute; right:0; }
.gallery-photo-main { grid-row:1 / span 2; min-height:670px; }
.gallery-photo-main img { object-position:center 43%; }
.gallery-photo-close { grid-column:2; grid-row:2; }
.gallery-photo-close img { object-position:center 38%; }
.gallery-photo-group { grid-column:3; grid-row:2; }
.gallery-photo-group img { object-position:45% center; }

.story { background:linear-gradient(135deg,var(--forest-deep),var(--forest)); color:var(--white); display:grid; grid-template-columns:1fr 1fr; min-height:760px; }
.story-art { background:var(--forest-deep); overflow:hidden; position:relative; }
.story-art:after { background:linear-gradient(180deg,rgba(3,55,70,.02),rgba(3,55,70,.5)); content:""; inset:0; position:absolute; }
.story-art img { filter:contrast(1.05) saturate(1.06); height:100%; object-fit:cover; object-position:center; width:100%; }
.story-art > span { bottom:30px; color:rgba(255,255,255,.1); font:800 130px Arial,sans-serif; left:50%; position:absolute; transform:translateX(-50%); }
.story-copy { padding:118px clamp(40px,8vw,125px); }
.section-kicker.light { color:var(--lime); }
.story-copy > p:not(.section-kicker) { color:rgba(255,255,255,.66); font-size:16px; line-height:1.75; }
.story ul { list-style:none; margin:42px 0 0; padding:0; }
.story li { border-top:1px solid rgba(255,255,255,.17); font-size:13px; padding:17px 0 17px 26px; position:relative; }
.story li:before { color:var(--lime); content:"+"; left:0; position:absolute; }

.booking { background:linear-gradient(180deg,var(--white),var(--sand)); display:grid; gap:8vw; grid-template-columns:.8fr 1.2fr; padding:130px clamp(24px,8vw,130px); }
.booking-heading > p:not(.section-kicker) { color:#677169; line-height:1.7; max-width:440px; }
.contact-stack { border-top:1px solid rgba(8,98,119,.25); margin-top:42px; }
.contact-stack a { border-bottom:1px solid rgba(8,98,119,.25); display:flex; flex-direction:column; gap:6px; padding:17px 0; }
.contact-stack span { color:#727c74; font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.contact-stack strong { font:400 18px Georgia,serif; }
.booking-form { background:var(--white); border-top:6px solid var(--lagoon); box-shadow:0 35px 90px rgba(3,55,70,.14); padding:clamp(28px,5vw,60px); }
.form-label { color:var(--orange); font-size:10px; font-weight:800; letter-spacing:.2em; margin:0 0 30px; text-transform:uppercase; }
.field-grid { display:grid; gap:24px; grid-template-columns:1fr 1fr; }
.booking-form label { color:#344138; display:block; font-size:11px; font-weight:800; letter-spacing:.05em; margin-bottom:23px; text-transform:uppercase; }
.booking-form input,.booking-form select,.booking-form textarea { background:transparent; border:0; border-bottom:1px solid #c5c9c4; border-radius:0; color:var(--ink); display:block; font:400 15px Arial,sans-serif; margin-top:9px; outline:0; padding:12px 0; text-transform:none; width:100%; }
.booking-form textarea { border:1px solid #c5c9c4; padding:14px; resize:vertical; }
.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus { border-color:var(--lagoon); }
.optional { color:#939b95; float:right; font-weight:400; }
.submit-button { align-items:center; background:var(--forest); border:0; border-radius:100px; color:var(--white); cursor:pointer; display:flex; font-size:13px; font-weight:800; justify-content:space-between; margin-top:8px; padding:17px 22px; width:100%; }
.submit-button span { color:var(--lime); font-size:20px; }
.form-note { color:#7e877f; font-size:10px; line-height:1.5; margin:15px 0 0; text-align:center; }
.success-card h3 { font:400 42px Georgia,serif; margin:20px 0; }
.success-card > p:not(.form-label) { color:#647069; line-height:1.7; }
.success-icon { align-items:center; background:var(--lime); border-radius:50%; display:flex; font-size:28px; height:58px; justify-content:center; width:58px; }
.dark-button { margin-top:25px; }
.reset-button { background:transparent; border:0; cursor:pointer; font-weight:700; margin-top:18px; text-decoration:underline; }
.form-success[hidden],.booking-form[hidden] { display:none; }

.final-cta { align-items:center; background:linear-gradient(90deg,var(--lagoon),var(--sky)); color:var(--forest-deep); display:flex; justify-content:space-between; padding:58px clamp(24px,8vw,130px); }
.final-cta p { font:italic 400 clamp(30px,4vw,58px) Georgia,serif; margin:0; }
.final-cta a { align-items:center; background:var(--forest); border-radius:100px; color:var(--white); display:flex; font-size:13px; font-weight:800; gap:35px; padding:18px 24px; }
footer { align-items:center; background:var(--forest-deep); color:var(--white); display:flex; justify-content:space-between; padding:55px clamp(24px,8vw,130px); }
footer > p { color:rgba(255,255,255,.55); font-size:12px; }
footer > div { display:flex; font-size:12px; gap:25px; }

@media (max-width:850px) {
  .nav-shell { height:72px; }
  .nav-shell nav a:not(.nav-book) { display:none; }
  .nav-book { padding:11px 15px; }
  .hero { min-height:780px; padding-top:180px; }
  .hero-card { bottom:45px; left:24px; right:auto; }
  .hero-word { bottom:-45px; font-size:180px; }
  .intro,.story,.booking { grid-template-columns:1fr; }
  .intro { gap:24px; padding-bottom:60px; padding-top:90px; }
  .steps { grid-template-columns:1fr; margin-bottom:90px; }
  .steps article { min-height:220px; }
  .steps article + article { border-left:0; border-top:1px solid rgba(8,98,119,.24); }
  .steps h3 { margin-top:42px; }
  .tour-gallery { grid-template-columns:1fr 1fr; grid-template-rows:auto 560px 330px; padding-bottom:90px; padding-top:90px; }
  .gallery-heading { grid-column:1 / -1; padding-right:0; }
  .gallery-photo-main { grid-column:1 / -1; grid-row:2; min-height:0; }
  .gallery-photo-close { grid-column:1; grid-row:3; }
  .gallery-photo-group { grid-column:2; grid-row:3; }
  .story-art { min-height:520px; }
  .booking { padding-bottom:90px; padding-top:90px; }
  .contact-stack { margin-bottom:30px; }
  .final-cta,footer { align-items:flex-start; flex-direction:column; gap:30px; }
  footer > div { width:100%; }
}

@media (max-width:560px) {
  .brand-logo { height:57px; width:166px; }
  .footer-logo { height:86px; width:245px; }
  .hero h1 { font-size:58px; }
  .hero-actions { align-items:flex-start; flex-direction:column; }
  .field-grid { gap:0; grid-template-columns:1fr; }
  .story-copy { padding:80px 26px; }
  .tour-gallery { display:block; }
  .gallery-heading { margin-bottom:42px; }
  .gallery-photo { height:430px; margin-bottom:16px; }
  .gallery-photo-main { min-height:0; }
  .gallery-photo-group { height:270px; }
  .story-art { min-height:430px; }
  .story-art > span { font-size:90px; }
  .booking-form { padding:30px 22px; }
  .final-cta a { justify-content:space-between; width:100%; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
