/*
Website Design/Build:
Kevin Snell
Formulate Communicative Design
www.formulate.ca
*/


/* CSS VARIABLES */
:root {

  /* Base font size */
  font-size: 16px;
  
  /* Colour palette */
  --colour-primary: #25472B;
  --colour-secondary: #255E2F;
  --colour-text: #464646;
  --colour-link: #25472B;
  --colour-link-hover: #DB7500;

}

/* RESET & BASE STYLES */
*, *::before, *::after {
  box-sizing: border-box;
}

html, body { 
  margin: 0; 
  padding: 0; 
  color: var(--colour-text);
  font-size: 16px;
  line-height: 1.6;
  font-family: "Inter", sans-serif;
}


/* TYPOGRAPHY */
h1, h2, h3, h4, h5, h6 {
  line-height: 1.2;
  font-weight: 400;
  color: var(--colour-primary);
}

h1 {
  font-family:'Coustard', sans-serif;
  color:#fff;
  font-size:34px;
  text-align:center;
  letter-spacing:1px;
  text-shadow:0 3px 10px rgba(0,0,0,0.65);
}

a { 
  color: var(--colour-link); 
  text-decoration: underline;
}

a:hover { 
  text-decoration: underline; 
  color: var(--colour-link-hover); 
}

em { 
  color: var(--colour-text); 
}

blockquote {
  margin:0 0 40px 0;
  line-height:1.3em;
  font-size:18px;
  border-left:3px solid #ccc;
  padding-left:25px;
}


blockquote p {
  margin:10px 0;
}

blockquote p:nth-of-type(2) {
    padding-left:30px;
    font-size:15px;
    color:#666;
}

/* BUTTONS */

.uk-button { 
  margin: 15px 0; 
  background: var(--colour-primary); 
  color: #fff; 
  font-size: 16px;
  font-weight: 400; 
  letter-spacing: 1px; 
  text-transform: uppercase; 
  height: 40px; 
  line-height: 40px;
  border-radius: 6px;
}

.uk-button:hover { 
  background: var(--colour-link-hover); 
  color: #fff !important; 
}

.uk-button-secondary {
  background: var(--colour-link-hover);
}


/* COMPONENTS */
.video-container {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 aspect ratio */
}

.video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

#editpage { 
  position: fixed; 
  top: 4px; 
  left: 49%;  
  z-index: 9999; 
}

#editpage a { 
  float: left; 
  padding: 0.1875rem 0.375rem 0.3125rem 0.375rem; 
  background: #db1174; 
  color: #FFB8DB; 
  display: block; 
  font-weight: normal; 
  font-size: 0.875rem; 
  z-index: 9999; 
  margin: 0 0.0625rem; 
  text-decoration: none; 
  line-height: 1em; 
  stroke-width: 0.125rem; 
  border-radius: 0.1875rem;
}

#editpage a:hover { 
  background: #ffffcc; 
  color: #000; 
  text-decoration: none; 
}


/* LAYOUT COMPONENTS */

.padded {
  padding:0 40px;
}

#header {
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height: 80px;
  z-index: 999;
  background: none;
}

#header::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--colour-primary) url('../images/header_bkg.jpg') no-repeat center center;
  background-size: cover;
  transition: opacity 0.4s ease;
  z-index: -1;
}

header div.uk-grid {
  width:100%;
  height:100%;
}

header #logo img {
  width:100%;
  max-width:300px;
  margin-top:-5px;
}

.nav {
  text-align: right;
}

.nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.nav ul li {
  display: inline;
  padding: 0 15px;
}

.nav ul li.last {
  padding-right:0;
}

.nav ul li a {
  font-size: 20px;
  color: #fff;
  text-decoration: none;
  text-transform: uppercase;
}

.nav ul li a:hover {
  color: var(--colour-link-hover);
}

.nav ul li.phone a {
  color: var(--colour-link-hover);
}

.nav .uk-button {
  font-size: 16px;
  color:#fff;
  background:var(--colour-link-hover);
  height:35px;
  line-height:35px;
  padding:0 15px;
}

.nav a.uk-button:hover {
  background:#000;
  color:#fff;
}

.nav .uk-button span.uk-icon {
  position:relative;
}

.nav .uk-dropdown {
  padding:15px 10px;
  background:rgba(32,62,37,.85);
  text-align:left;
}

.nav .uk-dropdown li {
  display:block;
}

.nav .uk-dropdown li a {
  font-size:18px;
  color:#fff;
  display:block;
  padding:5px 0;
  text-transform:initial;
}

.uk-offcanvas-bar{
  min-width:300px;
}

.uk-offcanvas-bar li {
  padding:5px 0;
}

.uk-offcanvas-bar li a {
  font-size:22px;
}

.uk-offcanvas-bar li ul li a {
  font-size:18px;
}

#title {
  width:100%;
  padding: 12px 0; 
  font-size:14px;
  background: #fff url('../images/header_bkg.jpg') no-repeat center center;
  background-size: cover;
  color:#fff;
}

#title h1 {
  color:#fff;
  margin:3px 0;
  padding:0 10px;
  font-size:20px;
}

#hero {
  background: #000;
  position:relative;
  z-index:1;
  margin-top:80px;
}

#hero img {
  width: 100%;
}

#hero video {
  width:100%;
  z-index:1 !important;
  position:relative;
}

#hero .uk-overlay {
  margin-bottom:2%;
}

#paw {
  width:100%;
  text-align:center;
}

#paw img {
  width:50%;
  max-width:100px;
  margin:-15px auto 15px auto;
  opacity:.7;
}

#layout {
  width:100%;
  padding:40px 0;
}

#content {
  max-width:1200px;
  margin:0 auto;
}

#footer {
  padding:40px 0;
  background: #fff url('../images/header_bkg.jpg') no-repeat center center;
  background-size: cover;
  color:#fff;
  font-size:18px;
  text-align:center;
}

#footer p {
  margin:5px 0;
}

#footer a {
  color:#fff;
  text-decoration:none;
}

#footer a:hover {
  color:var(--colour-link-hover);
}

#footer .logo img {
  max-width:320px;
}

#footer .contact .phone {
  font-size:24px;
}

#footer .book a.uk-button {
  background:var(--colour-link-hover);
  font-size:17px;
  color:#fff;
}

#footer a.uk-button:hover {
  background:#000;
  color:#fff;
}

div.copyright {
  background:#203E25;
  text-align:center;
  padding:12px 0 14px 0;
  font-size:14px;
  color:#8A957D;
}

div.copyright p {
  margin:0;
}


/* TOUR */

#layout.tour {
  background:#eaeaea;
  padding:25px 0 10px 0;
}

#layout.tour .meta {
  text-align:center;
  font-size:20px;
  margin:0 0 25px 0;
}

#layout.tour .meta span.spacer {
  padding:0 15px;
}

#layout.tour .meta span.uk-icon {
  position:relative;
  top:-2px;
  margin-right:2px;
}

#layout.tour .details {
  font-size:17px;
  line-height:1.3em;
  margin-bottom:30px;
}

#layout.tour .details > div {
  display: flex; 
}

#layout.tour .details > div > .card { 
  width: 100%;
  border:1px solid #CDDBCF;
  height: 100%;
  width:100%;
  background:#fff;
  text-align:center;
  padding:15px 10px;
}

#layout.tour .details .card p {
  margin:3px 0;
}

#layout.tour .details .card strong {
  font-size:22px;
  letter-spacing:1px;
  color:var(--colour-primary);
}

#layout.tour .details .card p.age {
  font-size:13px;
  line-height:1.2em;
  color:#939393;
}

#alt.tour .uk-tab {
  background:#eaeaea;
  margin:0;
}

#alt.tour .uk-tab:before {
  border:none;
}

#alt.tour .uk-tab li a {
  background:#dfdfdf;
  border:none;
  text-decoration:none;
  padding:12px 20px 8px 20px;
  font-size:17px;
  line-height:1em;
  color:#626262;
}

#alt.tour .uk-tab li a:hover {
  color:var(--colour-link-hover);
}

#alt.tour .uk-tab li.uk-active a {
  background:#fff;
  color:var(--colour-primary);
}

#alt.tour .uk-tab li.book a {
  background:var(--colour-link-hover);
  color:#fff;
}

#alt.tour .uk-tab li.book a:hover {
  background:#000;
  color:#fff;
}

#alt.tour .uk-switcher {
  width:100%;
  max-width:1200px;
  margin:0 auto;
  padding:50px 0 70px 0;
}

#alt.tour .description {
  padding-bottom:30px;
}

#alt.tour .description p.note {
  font-style:italic;
  line-height:1.3em;
  font-size:14px;
  color:#000 ;
  margin:10px 0 0 0;
}

#alt.tour .description p.note strong {
  color:#b90000;
}

#alt.tour .description .reviews {
  text-align:center;
  color:#000;
  margin-top:30px;
}

#alt.tour .description .reviews p {
  margin:10px 0;
}

#alt.tour .description .reviews p.stars img {
  width:100%;
  max-width:200px;
}

#alt.tour .description .reviews p.text {
  border-top:1px solid #ccc;
  border-bottom:1px solid #ccc;
  padding:20px 0;
  font-size:15px;
}


/* GALLERY */

#alt.photo_gallery {
  width:100%;
  max-width:1600px;
  margin:0 auto 70px auto;
}

.photo_gallery { 
  margin:20px 0;
}

.photo_gallery img {
  border-radius:12px;
}

.page1016 .photo_gallery {
  margin:0 0 70px 0;
}


/* CTAS */

#ctas {
  width:100%;
  padding:0;
}

#ctas div.card {
  background:#fff;
  border-radius:8px;
  text-align:center;
  overflow:hidden;
  font-size:18px;
}

#ctas div.card img {
  width:100%;
  aspect-ratio: 5 / 3;  
  position:relative;
  z-index:2;
}

#ctas div.card h2 {
  height: 55px;
  background: #6B933E;
  margin: 0 0 10px 0;
  padding: 0;
  font-family: "Coustard", serif;
  font-size: 18px;
  font-weight: 300;
  letter-spacing: 1px;
  text-transform: uppercase;
  position: relative;
  z-index: 3;
}

#ctas div.card h2 a {
  height: 100%;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
  text-decoration: none;
}

#ctas div.card h2 a:hover {
  background:var(--colour-link-hover);
}

#ctas p {
  margin:5px 0;
}

#ctas div.text p.price {
  font-size:18px;
  border-bottom:1px solid #e1dab7;
  padding:5px 0;
  margin:0;
}

#ctas div.text p.duration {
  margin:0;
  padding:0 0 5px 0;
  border-bottom:1px solid #e1dab7;
}

#ctas div.text p.info {
  margin-top:10px;
}

#ctas div.text p.price strong {
  color:#000;
}

#ctas div.card a.uk-button {
  height:39px;
  line-height:38px;
  font-size:15px;
  padding:0 40px;
  margin:10px 0;
}



/* PAGE SPECIFIC */

.page1 #title {
  display:none;
}

.page1 #layout {
  padding: 40px 0;
  background: #fff url('../images/topo3.jpg') no-repeat center center;
  background-size: cover;
  z-index: 0;
}

.page1 #alt {
  background:#000;
}

.page1 #alt img {
  width:100%;
}

.page1 h1 {
  margin:0 0 10px 0;
  color:#2d2012;
  font-size:24px;
  text-shadow:none;
}

.page1 h2 {
  margin:0 0 40px 0;
  font-weight:500;
  font-size:20px;
  color:#684826;
}

.page1 h3 {
  margin-top:0;
}

.page1 div.celebrating img {
  width:100%;
  max-width:500px;
  margin:0 auto;
  margin:5px 0 40px 0;
  border-radius:20px;
}

ul.bullets {
  margin: -25px auto 40px auto;
  padding: 0;
  font-size:20px;
  text-transform:uppercase;
  color:var(--colour-primary);
  list-style: none;
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

ul.bullets li {
  display: flex;
  align-items: center;
  white-space: nowrap;
}

ul.bullets li + li::before {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  margin: 0 18px;
  opacity:.5;
  background: url('/site/templates/assets/images/compass.svg') no-repeat center center;
  background-size: contain;
}

.page1 #copy {
  margin:50px 0 0 0;
  text-align:center;
}

.page1 #logos {
  margin:0 auto;
  width:fit-content;
}

.page1 #logos img {
  width:100%;
  max-width:140px;
  margin:0 20px;
}

.page1015 #layout {
  background:#fff url('../images/topo3.jpg') no-repeat center center;
  background-size:cover;
}


/* Desktop: reserve a left column so no paragraph text can run under the image */
@media only screen and (min-width: 640px) {
  
  .page1026 img.align_left {
    float:left;
    width: var(--page1026-image-width);
    margin:3px var(--page1026-image-gap) 15px 0;
  }

  .page1026 #content p {
    margin-left: calc(var(--page1026-image-width) + var(--page1026-image-gap));
  }

  /* If the CMS puts the image inside the first paragraph, don't push that paragraph (avoid shifting the image right). */
  .page1026 #content p:has(img.align_left) {
    margin-left: 0;
  }

  #header {
    height:100px;
  }
  
  #hero {
    margin-top:100px;
  }
  
  #title h1 {
    font-size:26px;
  }
  
  .nav .uk-button span.uk-icon {
    top:-1px;
    margin-right:7px;
  }
  
}

@media only screen and (min-width: 960px) {
  
  h1 {
    font-size:38px;
  }
  
  .page1 #header::before {
    opacity:0;
  }

  .page1 #header.uk-active::before {
    opacity:1;
  }

  .page1 #hero {
    margin-top:0;
  }

  
  .page1 h1 {
    font-size:26px;
  }

  .page1 h2 {
    font-size:22px;
  }

  .nav .uk-button {
    padding:0 20px;
  }
}

@media only screen and (min-width: 1024px) {
}

@media only screen and (min-width: 1200px) { 
  

  #title h1 {
    font-size:30px;
  }
  
  .page1 h1 {
    font-size:34px;
  }

  .page1 h2 {
    font-size:26px;
  }
  
}

@media only screen and (min-width: 1400px) {
}

@media only screen and (min-width: 1600px) {
}
