/* ==========================================================================
   Jetski Safari - restored stylesheet
   Design tokens recovered from the original archived style/style.css
   (955px wrap, 630 + 320 two column, #005500 headings, #eee panel bars,
   #ddd hairlines, Arial body / Verdana headings). Rebuilt responsive.
   ========================================================================== */

:root{
  --js-green:#005500;
  --js-green-bright:#009900;
  --js-orange:#e67300;
  --js-orange-light:#ff9800;
  --js-red:#cc0000;
  --js-navy:#003366;
  --js-ink:#222;
  --js-body:#333;
  --js-muted:#666;
  --js-rule:#ddd;
  --js-panel:#eee;
  --js-panel-soft:#f5f5f5;
  --js-white:#fff;
  --js-nav-ink:#555;
  --js-nav-hover-bg:#dadada;

  --js-wrap:960px;
  --js-aside:320px;
  --js-gap:24px;
  --js-radius:4px;
  --js-shadow:0 1px 3px rgba(0,0,0,.08);

  --js-font:Arial, Helvetica, sans-serif;
  --js-font-head:Verdana, Geneva, Arial, sans-serif;
}

/* ---------- reset / base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  background:#f2f3f6;
  color:var(--js-body);
  font-family:var(--js-font);
  font-size:15px;
  line-height:1.62;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--js-navy);text-decoration:none;}
a:hover,a:focus{color:var(--js-red);text-decoration:underline;}
h1,h2,h3,h4,h5,h6{font-family:var(--js-font-head);color:var(--js-ink);line-height:1.25;margin:0 0 .5em;}
p{margin:0 0 1em;}
ul,ol{margin:0 0 1em;padding-left:1.4em;}
hr{border:0;border-top:1px solid var(--js-rule);margin:1.75em 0;}
table{border-collapse:collapse;}

/* accessibility */
.screen-reader-text{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:1000;
  background:var(--js-green);color:#fff;padding:10px 18px;font-weight:bold;
}
.skip-link:focus{left:8px;top:8px;color:#fff;text-decoration:none;}
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:3px solid var(--js-orange);outline-offset:2px;
}

/* ---------- shell ---------- */
.js-wrap{
  max-width:var(--js-wrap);
  margin:0 auto;
  background:var(--js-white);
  padding:10px;
  box-shadow:var(--js-shadow);
}
@media(min-width:1000px){ .js-wrap{margin:16px auto;} }

/* ---------- header / banner ---------- */
.js-siteheader{margin:0 0 2px;}
.js-banner-link{display:block;}
.js-banner{width:100%;height:auto;}
.js-banner-fallback{
  display:flex;flex-direction:column;justify-content:center;
  min-height:120px;padding:22px 24px;color:#fff;
  background:linear-gradient(115deg,#00405c 0%,#0a6f8f 45%,#12a3a0 100%);
}
.js-banner-fallback .js-bf-title{
  font-family:var(--js-font-head);font-size:clamp(22px,4.4vw,38px);
  font-weight:bold;letter-spacing:-.5px;margin:0;color:#fff;
}
.js-banner-fallback .js-bf-tag{margin:.3em 0 0;font-size:clamp(12px,2vw,15px);opacity:.92;}

/* ---------- navigation (QuickMenu reconstruction) ---------- */
.js-nav{
  position:relative;
  background:var(--js-panel-soft);
  border:1px solid var(--js-rule);
  border-radius:var(--js-radius);
  margin:0 0 10px;
}
.js-nav-toggle{
  display:none;width:100%;padding:12px 14px;border:0;background:transparent;
  font:bold 13px/1.2 var(--js-font);color:var(--js-nav-ink);
  text-align:left;cursor:pointer;letter-spacing:.06em;text-transform:uppercase;
}
.js-nav-toggle .js-burger{float:right;font-size:16px;line-height:1;}
.js-menu{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;}
.js-menu > li{position:relative;display:flex;align-items:stretch;}
.js-menu > li > a{
  display:block;padding:9px 14px;
  font-size:11px;font-weight:bold;letter-spacing:.07em;text-transform:uppercase;
  color:var(--js-nav-ink);
}
/* The caret the script adds to every item that has a submenu. It sits beside
   the label rather than under it, and carries the same states as the label. */
.js-submenu-toggle{
  appearance:none;-webkit-appearance:none;
  background:none;border:0;margin:0;padding:9px 10px 9px 0;
  display:flex;align-items:center;
  font:inherit;font-size:10px;line-height:1;
  color:var(--js-nav-ink);cursor:pointer;
}
.js-menu > li > a + .js-submenu-toggle{margin-left:-8px;}
.js-submenu-toggle:hover,
.js-submenu-toggle:focus-visible,
.js-menu > li.js-open > .js-submenu-toggle{
  background:var(--js-nav-hover-bg);color:var(--js-red);
}
.js-menu > li.js-open > a,
.js-menu > li:hover > .js-submenu-toggle{background:var(--js-nav-hover-bg);}
.js-menu > li + li::before{
  content:"";position:absolute;left:0;top:9px;bottom:9px;
  border-left:1px solid #aaa;
}
.js-menu > li > a:hover,
.js-menu > li > a:focus,
.js-menu > li.js-open > a,
.js-menu > li.current-menu-item > a,
.js-menu > li.current-menu-ancestor > a{
  background:var(--js-nav-hover-bg);color:var(--js-red);text-decoration:none;
}
.js-menu .sub-menu{
  list-style:none;margin:0;padding:5px;
  position:absolute;left:0;top:100%;min-width:230px;z-index:60;
  background:#f7f7f7;border:1px solid var(--js-nav-hover-bg);
  border-radius:0 var(--js-radius) var(--js-radius) var(--js-radius);
  box-shadow:0 6px 18px rgba(0,0,0,.14);
  display:none;
}
.js-menu li.js-open > .sub-menu{display:block;}
@media(hover:hover){ .js-menu > li:hover > .sub-menu{display:block;} }
.js-menu .sub-menu a{
  display:block;padding:6px 10px;font-size:12px;color:#444;text-transform:none;letter-spacing:0;
  border-radius:3px;
}
.js-menu .sub-menu a:hover,.js-menu .sub-menu a:focus{
  background:var(--js-nav-hover-bg);color:var(--js-red);text-decoration:none;
}
.js-menu .js-group-title{
  display:block;padding:4px 10px;margin:2px 0;
  font:bold 11px/1.4 var(--js-font);color:#444;
  border-bottom:1px solid #bfbfbf;
}

@media(max-width:860px){
  .js-nav-toggle{display:block;}
  .js-menu{display:none;flex-direction:column;border-top:1px solid var(--js-rule);}
  .js-nav.js-nav-open .js-menu{display:flex;}
  .js-menu > li + li::before{display:none;}
  /* Back to block here: the submenu is in normal flow on mobile, and the
     caret is absolutely positioned, so the desktop flex row would put the
     open submenu alongside the label instead of under it. */
  .js-menu > li{display:block;position:relative;border-top:1px solid #e6e6e6;}
  .js-menu > li > a{padding:13px 52px 13px 14px;font-size:12px;}
  .js-menu > li > a + .js-submenu-toggle{margin-left:0;}
  .js-menu .sub-menu{
    position:static;display:none;min-width:0;border:0;box-shadow:none;
    background:#fff;padding:0 0 6px 12px;
  }
  .js-menu li.js-open > .sub-menu{display:block;}
  .js-menu .sub-menu a{padding:10px 12px;font-size:13px;}
  .js-submenu-toggle{
    position:absolute;right:0;top:0;width:52px;height:44px;
    border:0;background:transparent;color:var(--js-nav-ink);
    font-size:15px;cursor:pointer;line-height:44px;
  }
}

/* ---------- page grid ---------- */
.js-page{display:flex;flex-wrap:wrap;gap:var(--js-gap);align-items:flex-start;padding:6px 0;}
.js-main{flex:1 1 560px;min-width:0;}
.js-aside{flex:0 0 var(--js-aside);max-width:100%;}
@media(max-width:900px){
  .js-page{gap:20px;}
  .js-aside{flex:1 1 100%;}
}

/* ---------- hero ---------- */
.js-hero{margin:0 0 14px;position:relative;background:#e8eef0;border-radius:var(--js-radius);overflow:hidden;}
.js-hero img{width:100%;aspect-ratio:630/235;object-fit:cover;}
.js-credit{position:absolute;right:0;bottom:0;margin:0;padding:3px 8px;font-size:11px;line-height:1.4;color:#fff;background:rgba(0,0,0,.55);border-top-left-radius:var(--js-radius);}
.js-credit a{color:#fff;text-decoration:underline;}
.js-credit a:hover,.js-credit a:focus-visible{color:#ffd9a0;}
.js-slideshow{position:relative;}
.js-slideshow .js-slide{
  position:absolute;inset:0;opacity:0;transition:opacity .9s ease;
  width:100%;height:100%;object-fit:cover;
}
.js-slideshow .js-slide.is-active{opacity:1;position:relative;}
.js-slide-dots{
  position:absolute;right:10px;bottom:10px;display:flex;gap:6px;z-index:3;margin:0;padding:0;list-style:none;
}
.js-slide-dots button{
  width:11px;height:11px;padding:0;border-radius:50%;cursor:pointer;
  border:1px solid rgba(255,255,255,.85);background:rgba(0,0,0,.32);
}
.js-slide-dots button[aria-current="true"]{background:#fff;}

/* ---------- content ---------- */
.js-content{padding:0;}
.js-heading{
  font-family:var(--js-font-head);
  font-size:clamp(19px,2.6vw,24px);
  font-weight:bold;color:var(--js-green);text-align:center;
  margin:0 0 .6em;
}
.js-subheading{text-align:center;font-weight:bold;color:var(--js-muted);margin:-.4em 0 1.2em;}
.js-content h2{font-size:clamp(17px,2.2vw,21px);color:var(--js-green);}
.js-content h3{font-size:clamp(15px,1.9vw,17px);color:var(--js-ink);}
.js-quote{
  text-align:center;font-style:italic;font-weight:bold;color:var(--js-green-bright);
  font-size:clamp(15px,2.1vw,18px);
  margin:1.2em auto;padding:.8em 1em;max-width:34em;
  border-top:1px solid var(--js-rule);border-bottom:1px solid var(--js-rule);
}
.js-callout{
  background:var(--js-panel-soft);border:1px solid var(--js-rule);
  border-left:4px solid var(--js-green);
  padding:14px 16px;margin:0 0 1.3em;border-radius:var(--js-radius);
}
.js-content img{margin:0 0 1em;border:1px solid var(--js-rule);padding:1px;background:#fff;border-radius:2px;}
.js-content figure{margin:0 0 1.3em;}
.js-figure{text-align:center;}
.js-figure img{margin-left:auto;margin-right:auto;}
.js-widget-body a+a img,.js-widget-body img+img{margin-top:6px;}
.js-content figcaption{font-size:12px;color:var(--js-muted);text-align:center;margin-top:.4em;}
.js-note{font-size:13px;color:var(--js-muted);}

/* tables */
/* position:relative so the visually hidden labels inside the table are
   contained and clipped here. Without it they resolve against the initial
   containing block, escape the scroller and widen the page on small screens. */
.js-table-scroll{position:relative;overflow-x:auto;margin:0 0 1.3em;-webkit-overflow-scrolling:touch;}
.js-table{width:100%;min-width:420px;border:1px solid var(--js-rule);font-size:14px;}
.js-table th,.js-table td{border:1px solid var(--js-rule);padding:9px 11px;text-align:left;vertical-align:top;}
.js-table thead th{background:var(--js-panel);font-family:var(--js-font);font-size:13px;}
.js-table tbody tr:nth-child(even){background:#fafafa;}
.js-price{color:var(--js-green-bright);font-weight:bold;}

/* buttons */
.js-btn{
  display:inline-block;padding:11px 22px;border-radius:var(--js-radius);
  background:var(--js-green);color:#fff;font-weight:bold;font-size:14px;
  border:1px solid var(--js-green);cursor:pointer;line-height:1.3;
}
.js-btn:hover,.js-btn:focus{background:#046504;color:#fff;text-decoration:none;}
.js-btn-alt{background:var(--js-orange);border-color:var(--js-orange);color:#fff;}
.js-btn-alt:hover,.js-btn-alt:focus{background:#cf6600;color:#fff;}
.js-btn-row{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 1.3em;}

/* ---------- feature boxes (ul.home-left / ul.home-right) ---------- */
.js-features{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;margin:26px 0 10px;padding:0;list-style:none;
}
@media(max-width:640px){ .js-features{grid-template-columns:1fr;} }
.js-feature{
  border:1px solid var(--js-rule);border-radius:var(--js-radius);
  background:#fff;display:flex;flex-direction:column;overflow:hidden;
  margin:0;list-style:none;
}
.js-feature-title{
  font-family:var(--js-font);font-size:13px;font-weight:bold;
  background:var(--js-panel);border-bottom:1px solid var(--js-rule);
  padding:6px 10px;margin:0;color:var(--js-ink);line-height:1.5;
}
.js-feature-body{display:flex;gap:10px;padding:10px;flex:1 1 auto;border-bottom:1px solid var(--js-rule);}
.js-feature-icon{flex:0 0 60px;}
.js-feature-icon img{width:60px;height:60px;border:1px solid var(--js-rule);padding:1px;background:#fff;border-radius:3px;}
.js-feature-entry{font-size:13.5px;line-height:1.5;}
.js-feature-entry h3{font-family:var(--js-font);font-size:14px;font-weight:bold;margin:0 0 .35em;}
.js-feature-more{background:var(--js-panel);padding:5px 10px;font-size:13px;margin:0;}

/* advertising strip */
.js-adstrip{
  margin:20px 0 6px;padding:16px;text-align:center;
  border:1px dashed var(--js-rule);border-radius:var(--js-radius);background:var(--js-panel-soft);
}
.js-adstrip a{font-weight:bold;}

/* ---------- sidebar ---------- */
.js-widget{border:1px solid var(--js-rule);border-radius:var(--js-radius);margin:0 0 12px;overflow:hidden;background:#fff;}
.js-widget-title{
  font-family:var(--js-font);font-size:13px;font-weight:bold;line-height:1.5;
  background:var(--js-panel);border-bottom:1px solid var(--js-rule);
  padding:5px 10px;margin:0;color:var(--js-ink);
}
.js-widget-body{padding:5px;}
.js-widget-body > :last-child{margin-bottom:0;}
.js-widget-body img{width:100%;border:0;padding:0;margin:0;border-radius:2px;}
.js-widget-body ul{list-style:none;margin:0;padding:0;font-size:13.5px;}
.js-widget-body li{padding:5px 5px;border-bottom:1px solid #f0f0f0;}
.js-widget-body li:last-child{border-bottom:0;}
.js-contact-block{font-size:13.5px;padding:9px;}
.js-contact-block strong{color:var(--js-green);}
.js-contact-block a{word-break:break-word;}

/* ---------- gallery ---------- */
.js-gallery{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
  gap:10px;margin:0 0 1.5em;padding:0;list-style:none;
}
.js-gallery li{margin:0;}
.js-gallery a{display:block;border:1px solid var(--js-rule);padding:2px;background:#fff;border-radius:3px;}
.js-gallery a:hover,.js-gallery a:focus{border-color:var(--js-orange);}
.js-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border:0;padding:0;margin:0;border-radius:2px;}
.js-gallery figcaption{font-size:12px;color:var(--js-muted);padding:5px 3px 2px;text-align:center;}

/* lightbox */
.js-lightbox{
  position:fixed;inset:0;z-index:9999;display:none;
  background:rgba(0,0,0,.9);padding:20px;
  align-items:center;justify-content:center;flex-direction:column;
}
.js-lightbox.is-open{display:flex;}
.js-lightbox img{max-width:100%;max-height:78vh;border:0;margin:0;padding:0;border-radius:3px;}
.js-lightbox-cap{color:#fff;margin-top:12px;font-size:14px;text-align:center;}
.js-lightbox button{
  position:absolute;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.4);
  width:46px;height:46px;border-radius:50%;font-size:20px;cursor:pointer;line-height:1;
}
.js-lb-close{top:16px;right:16px;}
.js-lb-prev{left:14px;top:50%;transform:translateY(-50%);}
.js-lb-next{right:14px;top:50%;transform:translateY(-50%);}
.js-lightbox button:hover{background:rgba(255,255,255,.3);}

/* ---------- forms ---------- */
.js-form{margin:0 0 1.5em;}
.js-field{margin:0 0 14px;}
.js-field label{display:block;font-weight:bold;font-size:13.5px;margin:0 0 5px;color:var(--js-ink);}
.js-field .js-req{color:var(--js-red);}
.js-field input[type=text],.js-field input[type=email],.js-field input[type=tel],
.js-field input[type=number],.js-field input[type=date],.js-field select,.js-field textarea{
  width:100%;padding:10px 11px;font:inherit;font-size:15px;color:var(--js-body);
  border:1px solid #c4c4c4;border-radius:var(--js-radius);background:#fff;
}
.js-field textarea{min-height:130px;resize:vertical;}
/* display:block because this is a <span> inside the tour table's row header as
   well as a <p> under a field. As an inline span it ran straight on from the
   tour name with no break. */
.js-field-hint{display:block;font-weight:normal;font-size:12.5px;color:var(--js-muted);margin:5px 0 0;}
.js-field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
@media(max-width:560px){ .js-field-row{grid-template-columns:1fr;} }
.js-honey{position:absolute!important;left:-9999px;height:1px;width:1px;overflow:hidden;}
.js-notice{padding:12px 14px;border-radius:var(--js-radius);margin:0 0 1.2em;font-size:14px;border:1px solid;}
.js-notice-ok{background:#eefaee;border-color:#b8dfb8;color:#1d5e1d;}
.js-notice-err{background:#fdeeee;border-color:#e6b8b8;color:#8a1f1f;}
.js-notice ul{margin:.5em 0 0;padding-left:1.2em;}

/* booking estimator */
.js-estimate{
  margin:1.4em 0;padding:14px;border:1px solid var(--js-rule);
  border-radius:var(--js-radius);background:var(--js-panel-soft);
}
.js-estimate-total{font-size:19px;font-weight:bold;color:var(--js-green-bright);}

/* ---------- posts / archive ---------- */
.js-postlist{list-style:none;margin:0;padding:0;}
.js-postcard{border:1px solid var(--js-rule);border-radius:var(--js-radius);padding:14px;margin:0 0 14px;background:#fff;}
.js-postcard h2{font-size:18px;margin:0 0 .35em;}
.js-postmeta{font-size:12.5px;color:var(--js-muted);margin:0 0 .7em;}
.js-postcard .js-thumb{margin:0 0 12px;}
.js-postcard .js-thumb img{width:100%;border:0;padding:0;margin:0;border-radius:3px;}
.js-pagination{display:flex;gap:8px;flex-wrap:wrap;margin:1.5em 0;}
.js-pagination .page-numbers{
  padding:8px 13px;border:1px solid var(--js-rule);border-radius:var(--js-radius);
  background:#fff;font-size:14px;
}
.js-pagination .page-numbers.current{background:var(--js-green);color:#fff;border-color:var(--js-green);}

/* breadcrumbs */
.js-crumbs{font-size:12.5px;color:var(--js-muted);margin:0 0 12px;}
.js-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;}
.js-crumbs li::after{content:"/";margin-left:6px;color:#bbb;}
.js-crumbs li:last-child::after{content:"";}

/* ---------- footer ---------- */
.js-footer{
  background:var(--js-panel);padding:20px 0;margin:14px 0 0;
  border-top:1px solid var(--js-rule);border-bottom:5px solid #000;
  font-size:12.5px;color:var(--js-muted);
}
.js-footer-inner{
  max-width:var(--js-wrap);margin:0 auto;padding:0 10px;
  display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;
}
.js-footer-nav{margin:0 0 10px;}
.js-footer-nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;padding:0;font-size:12.5px;}
.js-footer p{margin:0;}
@media(max-width:560px){ .js-footer-inner{flex-direction:column;text-align:center;} }

/* ---------- misc ---------- */
.js-linklist{list-style:none;padding:0;margin:0 0 1.4em;}
.js-linklist li{padding:9px 0;border-bottom:1px solid var(--js-rule);font-size:14.5px;}
.js-linklist li:last-child{border-bottom:0;}
.js-linklist .js-linkmeta{color:var(--js-muted);font-size:13px;}
.js-map{position:relative;width:100%;aspect-ratio:16/9;margin:0 0 1.3em;border:1px solid var(--js-rule);border-radius:var(--js-radius);overflow:hidden;background:#eef1f2;}
.js-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.js-attrib{font-size:11.5px;color:#8c8c8c;margin-top:.4em;}

@media print{
  .js-nav,.js-aside,.js-adstrip,.js-hero{display:none;}
  .js-wrap{box-shadow:none;max-width:none;}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
}

.js-widget-body:empty{display:none;}
