:root{--teal:#47b0b6;--navy:#174b63;--sand:#f4efe6;--ink:#1f2d30;--white:#fff;--shadow:0 18px 50px rgba(18,72,96,.16);--headerh:92px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff;line-height:1.65}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:min(1180px,calc(100% - 40px));margin:auto}.topbar{background:var(--navy);color:#fff;font-size:.86rem}.topbar .container{display:flex;justify-content:space-between;align-items:center;padding:8px 0;gap:20px}.socials{display:flex;align-items:center;gap:14px}
.social-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;color:var(--teal);opacity:1;transition:transform .2s,opacity .2s}
.social-icon svg{width:22px;height:22px;fill:currentColor;display:block}
.social-icon:hover{color:var(--teal);opacity:.78;transform:translateY(-2px)}.site-header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);box-shadow:0 1px 18px rgba(0,0,0,.07)}.nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:92px;gap:24px}.brand{display:flex;align-items:center;justify-self:start;flex:0 0 auto;padding:10px 0}.brand img{width:132px;height:auto;display:block}.menu{display:flex;gap:34px;align-items:center;justify-content:center;justify-self:center}.menu a{font-weight:700;font-size:1.08rem;letter-spacing:.01em}.menu a:hover,.menu a.active{color:var(--teal)}.book-btn,.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--teal);color:#fff;padding:12px 22px;font-weight:700;border:0;cursor:pointer;transition:.2s}.book-btn:hover,.btn:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(71,176,182,.3)}.hamburger{display:none;background:none;border:0;font-size:1.6rem}.hero{min-height:calc(100vh - 112px);position:relative;display:grid;align-items:center;color:#fff;overflow:hidden}.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:1;transform:none}.hero-slide:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,18,22,.28),rgba(8,20,24,.14) 35%,rgba(8,20,24,.20) 100%)}.hero-content{position:relative;z-index:3;display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 112px);padding:120px 0 120px}.centred-hero{max-width:none}.hero-stack{text-align:center;width:min(1100px,100%)}.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-weight:700;font-size:.78rem;color:#b8f2f3}.hero h1{font-family:Arial,Helvetica,sans-serif;font-size:clamp(1.9rem,4vw,3.8rem);line-height:1.05;letter-spacing:.045em;margin:0 0 20px;text-transform:uppercase;text-shadow:0 6px 18px rgba(0,0,0,.35)}.hero p{font-size:clamp(1rem,1.8vw,1.25rem);max-width:650px}.widget-wrap{position:relative;z-index:5;left:auto;bottom:auto;transform:none;width:min(1180px,calc(100% - 40px));margin:0 auto;background:transparent;padding:0;border-radius:0;box-shadow:none;color:var(--ink);backdrop-filter:none}#searchwidget{min-height:74px}.section{padding:90px 0}.section.alt{background:var(--sand)}.section-title{max-width:760px;margin-bottom:40px}.section-title span{color:var(--teal);text-transform:uppercase;letter-spacing:.17em;font-weight:700;font-size:.75rem}.section-title h2,.page-hero h1{font-family:Georgia,serif;color:var(--navy);font-size:clamp(2rem,4vw,3.5rem);line-height:1.08;margin:.25em 0}.grid-3{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;max-width:none;margin:0}.card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:var(--shadow);height:100%}.card-image{height:360px;background-size:cover;background-position:center}.card-body{padding:26px}.card h3{font-family:Georgia,serif;color:var(--navy);font-size:1.55rem;margin:0 0 10px}.text-link{color:var(--teal);font-weight:800}.split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.split-image{min-height:520px;border-radius:26px;background-size:cover;background-position:center;box-shadow:var(--shadow)}.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:28px 0}.feature{padding:16px;border-left:3px solid var(--teal);background:#f7fbfb;border-radius:0 12px 12px 0}.cta{background:linear-gradient(120deg,var(--navy),#236d8a);color:#fff;border-radius:28px;padding:50px;display:flex;justify-content:space-between;align-items:center;gap:30px}.cta h2{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.2rem);margin:0}.page-hero{padding:48px 0 42px;color:#fff;background:linear-gradient(rgba(17,61,82,.34),rgba(17,61,82,.34)),url('../img/hero-cave.png') center 52%/cover}.page-hero h1{color:#fff}.content{max-width:900px}.content h2,.content h3{color:var(--navy);font-family:Georgia,serif}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:30px}.contact-card{padding:32px;background:#fff;border-radius:20px;box-shadow:var(--shadow)}label{display:block;font-weight:700;margin:0 0 6px}input,textarea,select{width:100%;padding:13px 14px;border:1px solid #cfd9da;border-radius:10px;font:inherit;margin-bottom:16px}textarea{min-height:150px}.footer{background:#123f55;color:#dce8e9;padding:60px 0 24px}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}.footer h3{color:#fff}.footer a:hover{color:#8de0e4}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:40px;padding-top:22px;display:flex;justify-content:space-between;gap:20px;font-size:.86rem}

.fade{opacity:0;transform:translateY(24px);transition:.7s}.fade.visible{opacity:1;transform:none}
@media(max-width:850px){.topbar .container{justify-content:center}.topbar .contact-mini{display:none}.hamburger{display:block}.menu{position:absolute;left:0;right:0;top:92px;background:#fff;display:none;flex-direction:column;align-items:stretch;padding:20px 30px;box-shadow:0 15px 25px rgba(0,0,0,.12)}.menu.open{display:flex}.hero{min-height:920px}.hero-content{padding:120px 0 80px;min-height:920px}.brand img{width:54px}.grid-3,.split,.contact-grid,.footer-grid{grid-template-columns:1fr}.split-image{min-height:360px}.cta{display:block}.cta .btn{margin-top:20px}.feature-list{grid-template-columns:1fr}.footer-bottom{flex-direction:column}.section{padding:65px 0}}
@media(max-width:520px){.container{width:min(100% - 26px,1180px)}.hero h1{font-size:2.15rem;letter-spacing:.04em}.hero-content{padding-top:95px;padding-bottom:45px}.widget-wrap{width:calc(100% - 10px);padding:12px;border-radius:16px}.brand{gap:10px;font-size:.95rem}.brand img{width:46px}.card-image{height:220px}.cta{padding:32px 24px}.topbar{font-size:.78rem}}

@media(max-width:850px){.menu a{font-size:1.05rem}}

@media(max-width:850px){
  .brand img{width:130px}
}
@media(max-width:520px){
  .brand img{width:112px}
}

/* Hostfully search widget alignment */
#searchwidget{
  min-height:74px;
  width:100%;
}
#searchwidget form,
#searchwidget .search-widget,
#searchwidget .searchwidget,
#searchwidget > div{
  background:transparent !important;
}
#searchwidget form,
#searchwidget .search-widget form,
#searchwidget .searchwidget form,
#searchwidget > div > div{
  display:flex !important;
  align-items:center !important;
  gap:14px !important;
}
#searchwidget input,
#searchwidget select,
#searchwidget button{
  height:52px !important;
  margin:0 !important;
}
#searchwidget button,
#searchwidget input[type="submit"],
#searchwidget .btn,
#searchwidget .search-button{
  align-self:center !important;
  min-height:52px !important;
}
@media(max-width:850px){
  #searchwidget form,
  #searchwidget .search-widget form,
  #searchwidget .searchwidget form,
  #searchwidget > div > div{
    flex-wrap:wrap !important;
  }
}
@media(max-width:520px){
  .hero h1{font-size:1.75rem;letter-spacing:.03em}
}

.header-socials{margin-left:auto}
.header-socials .social-icon{width:36px;height:36px}
.header-socials .social-icon svg{width:23px;height:23px}
@media(max-width:850px){
  .header-socials{display:none}
}

.header-socials{
  justify-self:end;
  margin-left:0;
  gap:18px;
}
.header-socials .social-icon{
  width:44px;
  height:44px;
}
.header-socials .social-icon svg{
  width:28px;
  height:28px;
}
.topbar .container{
  justify-content:flex-start;
}

@media(max-width:850px){
  .nav{
    display:grid;
    grid-template-columns:1fr auto;
    gap:14px;
  }
  .brand{
    padding:9px 0;
  }
  .brand img{
    width:118px;
  }
  .hamburger{
    justify-self:end;
  }
}
@media(max-width:520px){
  .brand img{
    width:104px;
  }
}

.page-hero h1{
  font-size:clamp(1.65rem,3vw,2.65rem);
  line-height:1.05;
  margin:.12em 0;
  white-space:nowrap;
}
.page-hero .eyebrow{
  margin-bottom:8px;
}
.share-section{
  padding:48px 0;
  background:var(--sand);
}
.share-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding:32px 38px;
  background:#fff;
  border-radius:22px;
  box-shadow:var(--shadow);
}
.share-kicker{
  display:block;
  color:var(--teal);
  text-transform:uppercase;
  letter-spacing:.17em;
  font-size:.74rem;
  font-weight:700;
  margin-bottom:4px;
}
.share-inner h2{
  margin:0;
  color:var(--navy);
  font-family:Georgia,serif;
  font-size:clamp(1.65rem,3vw,2.4rem);
}
.share-links{
  display:flex;
  align-items:center;
  gap:14px;
}
.share-links a{
  width:52px;
  height:52px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--teal);
  border:2px solid var(--teal);
  background:#fff;
  transition:transform .2s,background .2s,color .2s;
}
.share-links a:hover{
  transform:translateY(-3px);
  background:var(--teal);
  color:#fff;
}
.share-links svg{
  width:24px;
  height:24px;
  fill:currentColor;
}
@media(max-width:850px){
  .page-hero{
    padding:38px 0 34px;
  }
  .page-hero h1{
    white-space:normal;
    font-size:2rem;
  }
  .share-inner{
    flex-direction:column;
    text-align:center;
    padding:28px 22px;
  }
}
@media(max-width:520px){
  .page-hero{
    padding:30px 0 28px;
  }
  .page-hero h1{
    font-size:1.7rem;
  }
  .share-links a{
    width:46px;
    height:46px;
  }
}

.services-coast-image{
  background-position:center 56%;
  min-height:560px;
}
@media(max-width:850px){
  .services-coast-image{
    min-height:420px;
    background-position:center 52%;
  }
}

.destinations-heading{
  white-space:nowrap;
}
@media(max-width:650px){
  .destinations-heading{
    white-space:normal;
  }
}

.cta .btn,
.book-btn,
.btn{
  white-space:nowrap;
}

.form-honeypot{
  position:absolute !important;
  left:-10000px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}
.form-note{
  margin:14px 0 0;
  font-size:.84rem;
  color:#5b6f78;
}

.docs-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.docs-card{
  display:block;
  padding:28px;
  background:#fff;
  border-radius:18px;
  box-shadow:var(--shadow);
  border-top:4px solid var(--teal);
  transition:transform .2s ease,box-shadow .2s ease;
}
.docs-card:hover{
  transform:translateY(-4px);
  box-shadow:0 22px 50px rgba(18,72,96,.2);
}
.docs-card h3{
  margin:0 0 10px;
  color:var(--navy);
  font-family:Georgia,serif;
  font-size:1.35rem;
}
.docs-card p{
  margin:0;
  color:#53666e;
}
@media(max-width:850px){
  .docs-grid{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:560px){
  .docs-grid{
    grid-template-columns:1fr;
  }
}

/* Scroll-to-top button */
.back-top{
  position:fixed !important;
  right:22px !important;
  left:auto !important;
  bottom:22px !important;
  width:48px !important;
  height:48px !important;
  border-radius:50% !important;
  background:var(--navy) !important;
  color:#fff !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  z-index:9999 !important;
  box-shadow:0 12px 30px rgba(0,0,0,.24) !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transform:translateY(14px) !important;
  transition:opacity .25s ease,transform .25s ease,visibility .25s ease,background .2s ease !important;
  font-size:1.4rem !important;
  line-height:1 !important;
}
.back-top.is-visible{
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  transform:translateY(0) !important;
}
.back-top:hover{
  background:var(--teal) !important;
}
@media(max-width:520px){
  .back-top{
    right:14px !important;
    bottom:14px !important;
    width:44px !important;
    height:44px !important;
  }
}

.back-top{
  background:var(--teal) !important;
}
.back-top:hover{
  background:#3699a0 !important;
}

/* Legal / policy pages */
.legal-content{
  max-width:980px;
}
.legal-content h2{
  color:var(--navy);
  font-family:Georgia,serif;
  font-size:clamp(1.8rem,3vw,2.5rem);
  margin:0 0 28px;
}
.legal-content h3{
  color:var(--navy);
  font-size:1.18rem;
  line-height:1.3;
  margin:34px 0 12px;
  text-transform:none;
}
.legal-content p,
.legal-content li{
  font-size:1rem;
  line-height:1.75;
}
.legal-content ul{
  padding-left:24px;
  margin:12px 0 22px;
}
.policy-placeholder{
  padding:28px;
  border-left:4px solid var(--teal);
  background:#f6fbfc;
  border-radius:0 14px 14px 0;
}

@media(max-width:700px){
  .grid-3{
    grid-template-columns:1fr;
    max-width:none;
  }
}

.heritage-image{
  background-position:center 54%;
  min-height:560px;
}
@media(max-width:850px){
  .heritage-image{
    min-height:420px;
  }
  .card-image{
    height:300px;
  }
}
@media(max-width:700px){
  .grid-3{
    grid-template-columns:1fr;
    max-width:none;
  }
}
@media(max-width:520px){
  .card-image{
    height:240px;
  }
}

/* Site-wide heading size limits */
h1{
  font-size:clamp(1.9rem,4vw,40px) !important;
}
h2{
  font-size:clamp(1.6rem,3vw,35px) !important;
}
