:root{
  --forest:#073b2d;
  --leaf:#12a474;
  --sun:#f6c64d;
  --coral:#f46f45;
  --sea:#0c7da5;
  --ink:#10241f;
  --mist:#f4fbf5;
  --paper:#fffdf6;
  --shadow:0 18px 55px rgba(3,38,29,.18);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  background:
    linear-gradient(135deg,rgba(18,164,116,.08) 25%,transparent 25%) 0 0/28px 28px,
    linear-gradient(135deg,transparent 75%,rgba(12,125,165,.08) 75%) 0 0/28px 28px,
    var(--mist);
  color:var(--ink);
}
a{text-decoration:none;color:inherit}
img{max-width:100%}

.hero{
  min-height:92vh;
  color:#fff;
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  background:
    linear-gradient(90deg,rgba(4,25,20,.88),rgba(4,25,20,.58),rgba(4,25,20,.14)),
    linear-gradient(180deg,rgba(4,25,20,.08),rgba(4,25,20,.74)),
    url("assets/visitor-reggae-falls.webp") center 42%/cover;
}
.hero:before{
  content:"";
  position:absolute;
  inset:-16%;
  background:
    radial-gradient(circle at 12% 18%,rgba(246,198,77,.42) 0 7%,transparent 16%),
    radial-gradient(circle at 82% 20%,rgba(12,125,165,.35) 0 8%,transparent 18%),
    radial-gradient(circle at 72% 82%,rgba(244,111,69,.38) 0 9%,transparent 20%);
  mix-blend-mode:screen;
  pointer-events:none;
}
.hero:after{
  content:"";
  position:absolute;
  inset:0;
  background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px);
  background-size:54px 54px;
  mask-image:linear-gradient(90deg,#000,transparent 72%);
  pointer-events:none;
}

.nav,.heroContent,.heroTrail{position:relative;z-index:1}
.nav{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  gap:14px;
  padding:20px 7% 10px;
}
.logo{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-weight:900;
  font-size:1.22rem;
  background:rgba(255,255,255,.94);
  color:var(--forest);
  border:1px solid rgba(255,255,255,.58);
  padding:8px 18px 8px 8px;
  border-radius:8px;
  box-shadow:0 16px 36px rgba(0,0,0,.24);
  backdrop-filter:blur(14px);
}
.logo img{
  width:58px;
  height:58px;
  object-fit:cover;
  border-radius:50%;
  background:#fff;
  border:2px solid rgba(246,198,77,.9);
  box-shadow:0 6px 16px rgba(0,0,0,.24);
}
.logo span{white-space:nowrap}
.links{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
  padding:8px;
  max-width:min(1040px,100%);
  background:rgba(4,25,20,.42);
  border:1px solid rgba(255,255,255,.22);
  border-radius:8px;
  box-shadow:0 14px 34px rgba(0,0,0,.2);
  backdrop-filter:blur(16px);
}
.links a,.menuBtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  background:rgba(255,255,255,.92);
  color:#fff;
  border:1px solid rgba(255,255,255,.38);
  padding:10px 15px;
  border-radius:8px;
  font-weight:800;
  color:var(--forest);
  box-shadow:0 8px 20px rgba(0,0,0,.12);
  transition:transform .18s ease,background .18s ease,box-shadow .18s ease;
}
.links a:hover,.menuBtn:hover{
  background:var(--sun);
  transform:translateY(-1px);
  box-shadow:0 12px 26px rgba(0,0,0,.18);
}
.menuBtn{
  width:52px;
  height:46px;
  justify-content:center;
  align-items:center;
  font-size:1.2rem;
  line-height:1;
}
.menuBtn{display:none;cursor:pointer}

.heroContent{
  width:min(760px,86%);
  margin:8vh 7% 5vh;
}
.eyebrow{
  margin:0 0 10px;
  text-transform:uppercase;
  font-size:.86rem;
  font-weight:900;
  letter-spacing:0;
  color:var(--sun);
}
.eyebrow.dark{color:var(--sea)}
h1,h2,h3,p{letter-spacing:0}
.hero h1{
  font-size:5rem;
  line-height:.98;
  margin:0 0 18px;
  max-width:930px;
  text-shadow:0 12px 34px rgba(0,0,0,.36);
}
.lead{
  font-size:1.2rem;
  line-height:1.65;
  max-width:680px;
  margin:0;
}
.subBrand{
  margin:0 0 14px;
  font-size:1.28rem;
  line-height:1.4;
  font-weight:900;
  color:var(--sun);
  text-shadow:0 8px 24px rgba(0,0,0,.36);
}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:13px 20px;
  border-radius:8px;
  background:#fff;
  color:var(--forest);
  font-weight:900;
  border:1px solid rgba(255,255,255,.42);
  box-shadow:0 14px 30px rgba(0,0,0,.2);
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(0,0,0,.24)}
.btn.primary{background:var(--sun)}
.btn.ghost{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.36);backdrop-filter:blur(10px)}

.heroTrail{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:1px;
  width:min(1000px,86%);
  margin:0 7% 28px;
  border-radius:8px;
  overflow:hidden;
  box-shadow:0 18px 40px rgba(0,0,0,.22);
}
.heroTrail span{
  padding:16px 12px;
  background:rgba(7,59,45,.74);
  border-top:3px solid var(--sun);
  font-weight:900;
  text-align:center;
  backdrop-filter:blur(10px);
}

.tourHero{
  min-height:0;
  justify-content:flex-start;
}
.tourHero .heroContent{
  margin:6vh 7% 7vh;
}
.breadcrumb{
  display:inline-flex;
  margin-bottom:18px;
  padding:9px 12px;
  border-radius:8px;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.28);
  color:#fff;
  font-weight:900;
  backdrop-filter:blur(10px);
}

.section{padding:76px 7%}
.trustStrip{
  width:min(1180px,86%);
  margin:-30px auto 18px;
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  overflow:hidden;
  border-radius:8px;
  box-shadow:var(--shadow);
  border:1px solid rgba(7,59,45,.1);
  background:#fff;
}
.trustStrip div{
  min-height:118px;
  padding:20px;
  background:linear-gradient(160deg,#fffdf6,#e8fff5);
}
.trustStrip b{
  display:block;
  margin-bottom:8px;
  color:var(--forest);
  font-size:1rem;
}
.trustStrip span{
  display:block;
  color:#48675d;
  line-height:1.45;
  font-weight:700;
  font-size:.94rem;
}
.intro{
  width:min(1180px,86%);
  margin:0 auto;
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:24px;
  align-items:stretch;
}
.introCopy,.statGrid div,.essentialsGrid article,.bookInner,.contactCard{
  background:rgba(255,253,246,.94);
  border:1px solid rgba(7,59,45,.1);
  border-radius:8px;
  box-shadow:var(--shadow);
}
.introCopy{padding:30px}
.intro h2,.section h2{
  font-size:2.75rem;
  line-height:1.05;
  margin:0 0 14px;
}
.intro p,.section p{
  font-size:1.04rem;
  line-height:1.6;
}
.statGrid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
.statGrid div{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:145px;
  padding:20px;
  background:linear-gradient(160deg,#fffdf6,#e8fff5);
}
.statGrid b{font-size:2.2rem;color:var(--forest)}
.statGrid span{font-weight:800;color:#3d6357}
.statGrid div:nth-child(1){
  background:
    linear-gradient(rgba(255,253,246,.72),rgba(232,255,245,.88)),
    url("assets/blue-river-falls.webp") center/cover;
}
.statGrid div:nth-child(2){
  background:
    linear-gradient(rgba(255,253,246,.7),rgba(232,255,245,.9)),
    url("assets/lyssons-beach-sunny.jpg") center/cover;
}
.statGrid div:nth-child(3){
  background:
    linear-gradient(rgba(255,253,246,.72),rgba(232,255,245,.9)),
    url("assets/st-thomas-mountaintop.webp") center/cover;
}

.sectionHeader{
  display:grid;
  grid-template-columns:minmax(260px,560px) minmax(260px,1fr);
  gap:36px;
  align-items:end;
  margin-bottom:24px;
}
.sectionHeader h2{margin:0}
.sectionHeader p:last-child{margin:0;color:#48675d}

.whySection{
  background:
    linear-gradient(135deg,rgba(255,253,246,.96),rgba(232,255,245,.95)),
    url("assets/morant-point-coast-view.jpg") center/cover;
}
.whyGrid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.whyGrid article{
  min-height:250px;
  padding:24px;
  border-radius:8px;
  background:#fff;
  border:1px solid rgba(7,59,45,.09);
  box-shadow:var(--shadow);
}
.whyGrid h3{
  margin:0 0 10px;
  color:var(--forest);
  font-size:1.28rem;
}
.whyGrid p{
  margin:0;
  color:#48675d;
}

.tourPages{
  background:
    linear-gradient(180deg,rgba(244,251,245,.96),rgba(255,253,246,.96)),
    url("assets/st-thomas-mountaintop.webp") center/cover;
}
.tourPageGrid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.tourPageCard{
  display:block;
  overflow:hidden;
  border-radius:8px;
  background:#fff;
  border:1px solid rgba(7,59,45,.09);
  box-shadow:var(--shadow);
  transition:transform .22s ease,box-shadow .22s ease;
}
.tourPageCard:hover{
  transform:translateY(-5px);
  box-shadow:0 24px 60px rgba(3,38,29,.24);
}
.tourPageCard img{
  display:block;
  width:100%;
  height:210px;
  object-fit:cover;
}
.tourPageCard .tag{margin:18px 18px 8px}
.tourPageCard h3{
  margin:0 18px 8px;
  color:var(--forest);
  font-size:1.24rem;
}
.tourPageCard p{
  margin:0;
  padding:0 18px 18px;
  color:#48675d;
  font-size:.98rem;
}

.tourDetail{
  background:var(--paper);
}
.tourDetailGrid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:18px;
  align-items:start;
}
.tourDetailPanel,.tourInfoCard,.relatedLinks a{
  border-radius:8px;
  background:#fff;
  border:1px solid rgba(7,59,45,.09);
  box-shadow:var(--shadow);
}
.tourDetailPanel{
  padding:26px;
}
.tourDetailPanel h2,.tourInfoCard h2{
  margin:0 0 12px;
  color:var(--forest);
}
.tourDetailPanel h3{
  margin:22px 0 8px;
  color:var(--forest);
}
.tourDetailPanel p,.tourDetailPanel li,.tourInfoCard p,.relatedLinks p{
  color:#48675d;
  line-height:1.65;
}
.tourDetailPanel ul,.tourDetailPanel ol{
  padding-left:20px;
}
.tourInfoStack{
  display:grid;
  gap:18px;
}
.tourInfoCard{
  overflow:hidden;
}
.tourInfoCard img{
  display:block;
  width:100%;
  height:245px;
  object-fit:cover;
}
.tourInfoCard div{
  padding:22px;
}
.relatedLinks{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin-top:22px;
}
.relatedLinks a{
  display:block;
  padding:18px;
}
.relatedLinks h3{
  margin:0 0 6px;
  color:var(--forest);
  font-size:1.06rem;
}
.relatedLinks p{
  margin:0;
  font-size:.94rem;
}

.filters{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}
.filter{
  border:1px solid rgba(7,59,45,.14);
  border-radius:8px;
  padding:12px 16px;
  background:#fff;
  color:var(--forest);
  font-weight:900;
  box-shadow:0 8px 20px rgba(0,128,91,.12);
  cursor:pointer;
}
.filter.active{background:var(--forest);color:#fff;border-color:var(--forest)}

.cards{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
.card{
  background:#fff;
  border-radius:8px;
  overflow:hidden;
  box-shadow:var(--shadow);
  border:1px solid rgba(7,59,45,.09);
  transition:transform .22s ease,box-shadow .22s ease;
}
.card:hover{transform:translateY(-5px);box-shadow:0 24px 60px rgba(3,38,29,.24)}
.card.feature{grid-column:span 2}
.card img{
  width:100%;
  height:215px;
  object-fit:cover;
  display:block;
}
.card:nth-child(4) img{object-position:center top}
.card:nth-child(5) img,.card:nth-child(7) img,.card:nth-child(9) img{object-position:center}
.card.feature img{height:300px}
.card div{padding:18px}
.tag{
  display:inline-flex;
  margin-bottom:10px;
  padding:6px 8px;
  background:#e4f8ef;
  color:#07563f;
  border-radius:6px;
  font-size:.78rem;
  font-weight:900;
  text-transform:uppercase;
}
.card h3{font-size:1.25rem;margin:0 0 8px;color:var(--forest)}
.card p{font-size:.98rem;margin:0;color:#48675d}

.routeSection{
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:36px;
  color:#fff;
  background:
    linear-gradient(90deg,rgba(7,59,45,.96),rgba(7,59,45,.82)),
    url("assets/st-thomas-mountaintop.webp") center/cover;
}
.routeSection h2{color:#fff}
.routeCopy p:last-child{color:#d9fff1}
.route{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:10px;
  margin:0;
  padding:0;
  list-style:none;
  counter-reset:route;
}
.route li{
  counter-increment:route;
  min-height:210px;
  padding:18px;
  border-radius:8px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.24);
  backdrop-filter:blur(10px);
}
.route li:before{
  content:counter(route);
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  margin-bottom:22px;
  border-radius:50%;
  background:var(--sun);
  color:var(--forest);
  font-weight:900;
}
.route b{display:block;margin-bottom:8px}
.route span{display:block;color:#e8fff6;line-height:1.5;font-size:.94rem}

.gallerySection{
  background:
    linear-gradient(180deg,rgba(244,251,245,.95),rgba(255,253,246,.96)),
    url("assets/hidden-river-pool.webp") center/cover fixed;
}
.photoMosaic{
  display:grid;
  grid-template-columns:1.2fr .82fr .98fr .98fr;
  grid-auto-rows:220px;
  gap:14px;
}
.photoMosaic figure{
  margin:0;
  position:relative;
  overflow:hidden;
  border-radius:8px;
  box-shadow:var(--shadow);
  background:#d8eadf;
}
.photoMosaic figure:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(4,25,20,.72));
}
.photoMosaic img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .28s ease;
}
.photoMosaic figure:hover img{transform:scale(1.04)}
.photoMosaic figcaption{
  position:absolute;
  left:14px;
  right:14px;
  bottom:12px;
  z-index:1;
  color:#fff;
  font-weight:900;
  text-shadow:0 2px 10px rgba(0,0,0,.45);
}
.photoMosaic .wide{grid-column:span 2}
.photoMosaic .tall{grid-row:span 2}

.restaurants{
  background:
    linear-gradient(135deg,rgba(255,253,246,.94),rgba(232,255,245,.96)),
    url("assets/restaurant-terrace.webp") center/cover;
}
.restaurantList{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:18px;
}
.restaurantList article{
  overflow:hidden;
  border-radius:8px;
  background:#fff;
  box-shadow:var(--shadow);
  border:1px solid rgba(7,59,45,.09);
}
.restaurantList img{
  width:100%;
  height:180px;
  object-fit:cover;
  display:block;
}
.restaurantList div{padding:18px}
.restaurantList h3{margin:0 0 8px;color:var(--forest)}
.restaurantList p{margin:0;color:#48675d;font-size:.98rem}

.contactSection{
  background:
    linear-gradient(135deg,rgba(244,251,245,.95),rgba(255,253,246,.95)),
    url("assets/players-utopia-dining.jpeg") center/cover;
}
.contactGrid{
  display:grid;
  grid-template-columns:1.1fr repeat(3,1fr);
  gap:18px;
}
.contactCard{
  overflow:hidden;
}
.contactCard.mainContact{
  padding:24px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:
    linear-gradient(135deg,rgba(7,59,45,.94),rgba(12,125,165,.78)),
    url("assets/natty-owner-phone.jpeg") center/cover;
  color:#fff;
}
.contactCard.mainContact h3{color:#fff}
.contactCard.mainContact .tag{background:rgba(255,255,255,.18);color:#fff}
.contactValue{
  margin:6px 0 20px;
  font-size:2.2rem;
  line-height:1;
  font-weight:900;
}
.contactLinks{display:flex;gap:10px;flex-wrap:wrap}
.contactCard img{
  width:100%;
  height:190px;
  object-fit:cover;
  display:block;
}
.contactCard div:not(.contactLinks){padding:18px}
.contactCard h3{margin:0 0 8px;color:var(--forest)}
.contactCard p{margin:0;color:#48675d;font-size:.98rem}
.textLink{
  display:inline-flex;
  margin-top:12px;
  font-weight:900;
  color:var(--sea);
}
.emailLink{
  color:#fff;
  font-weight:900;
  overflow-wrap:anywhere;
}

.essentials{background:var(--paper)}
.essentialsGrid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}
.essentialsGrid article{
  padding:22px;
  box-shadow:0 12px 38px rgba(3,38,29,.12);
}
.essentialsGrid h3{margin:0 0 10px;color:var(--forest)}
.essentialsGrid p{margin:0;color:#48675d}

.faqSection{
  background:
    linear-gradient(180deg,rgba(244,251,245,.96),rgba(255,253,246,.96)),
    url("assets/reggae-falls-close.jpg") center/cover;
}
.faqGrid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
}
.faqGrid article{
  padding:24px;
  border-radius:8px;
  background:#fff;
  border:1px solid rgba(7,59,45,.09);
  box-shadow:var(--shadow);
}
.faqGrid h3{
  margin:0 0 10px;
  color:var(--forest);
  font-size:1.2rem;
}
.faqGrid p{
  margin:0;
  color:#48675d;
}

.book{
  text-align:center;
  background:
    linear-gradient(135deg,rgba(244,111,69,.92),rgba(246,198,77,.9)),
    url("assets/food-stops.jpg") center/cover;
}
.bookInner{
  width:min(920px,100%);
  margin:auto;
  padding:34px;
  color:var(--forest);
}
.book form{
  display:grid;
  grid-template-columns:1fr 1fr 1.1fr;
  gap:10px;
  margin-top:24px;
}
.bookingContact{
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:18px;
  font-weight:900;
}
.bookingContact span{
  padding:10px 12px;
  border-radius:8px;
  background:rgba(255,255,255,.62);
}
.bookingContact a{color:var(--forest)}
.book input,.book select,.book textarea,.book button{
  min-height:50px;
  padding:14px;
  border:1px solid rgba(7,59,45,.12);
  border-radius:8px;
  font:inherit;
  font-weight:800;
}
.book textarea{
  grid-column:1 / -1;
  min-height:94px;
  resize:vertical;
}
.book button{
  grid-column:1 / -1;
  background:var(--forest);
  color:#fff;
  cursor:pointer;
}
.formNote{min-height:26px;margin:14px 0 0;font-weight:900}

footer{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:28px 7%;
  background:var(--forest);
  color:#fff;
  font-weight:800;
}

@media(max-width:1080px){
  .hero h1{font-size:4rem}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .route{grid-template-columns:repeat(2,1fr)}
  .route li{min-height:170px}
  .trustStrip,.whyGrid,.tourPageGrid,.essentialsGrid,.restaurantList,.contactGrid{grid-template-columns:repeat(2,1fr)}
  .tourDetailGrid{grid-template-columns:1fr}
  .relatedLinks{grid-template-columns:repeat(2,1fr)}
  .photoMosaic{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:760px){
  .nav{
    align-items:center;
    gap:10px;
    padding:16px 7% 8px;
  }
  .logo{
    max-width:100%;
    width:min(360px,100%);
    justify-content:flex-start;
  }
  .logo img{width:50px;height:50px;flex:0 0 auto}
  .logo span{
    white-space:normal;
    line-height:1.05;
    font-size:1.05rem;
  }
  .menuBtn{display:inline-flex}
  .links{
    display:none;
    position:static;
    width:min(360px,100%);
    background:rgba(7,59,45,.92);
    padding:10px;
    border-radius:8px;
    flex-direction:column;
    align-items:stretch;
    box-shadow:0 18px 36px rgba(0,0,0,.28);
  }
  .links.show{display:flex}
  .links a{width:100%}
  .hero{min-height:88vh}
  .heroContent{margin-top:5vh}
  .hero h1{font-size:2.8rem}
  .lead{font-size:1.05rem}
  .heroTrail{grid-template-columns:1fr 1fr;margin-bottom:18px}
  .intro,.sectionHeader,.routeSection{grid-template-columns:1fr}
  .trustStrip,.statGrid,.whyGrid,.tourPageGrid,.essentialsGrid,.faqGrid,.restaurantList,.contactGrid,.book form{grid-template-columns:1fr}
  .relatedLinks{grid-template-columns:1fr}
  .tourInfoCard img{height:220px}
  .trustStrip{margin:-18px auto 16px}
  .section{padding:56px 7%}
  .intro h2,.section h2{font-size:2.15rem}
  .cards{grid-template-columns:1fr}
  .card.feature{grid-column:auto}
  .card.feature img,.card img{height:230px}
  .route{grid-template-columns:1fr}
  .gallerySection{background-attachment:scroll}
  .photoMosaic{
    grid-template-columns:1fr;
    grid-auto-rows:260px;
  }
  .photoMosaic .wide,.photoMosaic .tall{grid-column:auto;grid-row:auto}
  footer{flex-direction:column}
}
