/*
  480px mobile potrait
  720px
*/
@import url("https://fonts.googleapis.com/css?family=Libre+Baskerville:400,700|Raleway:400,700");
@import url("https://fonts.googleapis.com/css?family=Great+Vibes");
* {
  font-family: 'Raleway', sans-serif;
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

.fa {
  color: #262261; }
  .fa:hover {
    color: #352f87; }

.btn, a.btn {
  background: #262261;
  border: none;
  text-transform: uppercase;
  padding: 1em;
  font-weight: bold;
  color: #eaeaea;
  cursor: pointer;
  -webkit-transition: all 0.4s ease-in-out;
  transition: all 0.4s ease-in-out;
  text-decoration: none !important; }
  .btn:hover, a.btn:hover {
    background: #352f87; }

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: 'Libre Baskerville', serif;
  font-weight: bold; }

.logo {
  width: 100px;
  height: 100px; }
  .logo > img {
    width: 100%; }
  .logo.full {
    width: 100%;
    height: auto; }

span.cursive {
  font-family: 'Great Vibes', cursive;
  font-size: 1.8em; }

#header {
  grid-area: header;
  background: #f3f3f3;
  margin-bottom: 1em; }

#start, #end {
  z-index: 6; }

#nav {
  grid-area: nav;
  -webkit-transition: all 0.4s ease-in-out;
  transition: all 0.4s ease-in-out;
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  background: #eee;
  z-index: 2;
  padding: 2em; }
  #nav > .burger {
    -webkit-transition: all 0.4s ease-in-out;
    transition: all 0.4s ease-in-out;
    width: 80px;
    height: 80px;
    position: absolute;
    right: calc(-80px - 0.5em);
    top: 0.5em;
    cursor: pointer;
    z-index: 3; }
    #nav > .burger > span {
      -webkit-transition: all 0.4s ease-in-out;
      transition: all 0.4s ease-in-out;
      position: absolute;
      top: 50%;
      -webkit-transform: translateY(-50%);
              transform: translateY(-50%);
      display: block;
      width: 100%;
      height: 12px;
      background: #333; }
      #nav > .burger > span:first-child {
        margin-top: -23px; }
      #nav > .burger > span:nth-child(2) {
        opacity: 1; }
      #nav > .burger > span:last-child {
        margin-top: 23px; }
    #nav > .burger.close {
      right: 0.5em; }
      #nav > .burger.close > span:first-child {
        margin-top: 0;
        -webkit-transform: translateY(-50%) rotate(45deg);
                transform: translateY(-50%) rotate(45deg); }
      #nav > .burger.close > span:nth-child(2) {
        opacity: 0; }
      #nav > .burger.close > span:last-child {
        margin-top: 0;
        -webkit-transform: translateY(-50%) rotate(-45deg);
                transform: translateY(-50%) rotate(-45deg); }
  #nav > ul {
    list-style: none;
    margin: 0;
    padding: 0; }
    #nav > ul > li > a {
      display: inline-block;
      padding: 0.8em 0.5em;
      text-decoration: none;
      color: #333;
      -webkit-transition: all 0.4s ease-in-out;
      transition: all 0.4s ease-in-out;
      font-weight: bold; }
      #nav > ul > li > a:hover {
        color: #262261; }
      #nav > ul > li > a.active {
        background: rgba(50, 50, 100, 0.5);
        font-weight: bold;
        color: #262261;
        position: relative; }
        #nav > ul > li > a.active::before {
          display: none; }
      @media all and (max-height: 430px) {
        #nav > ul > li > a {
          padding: 0.4em -0px; } }
      @media all and (min-width: 720px) {
        #nav > ul > li > a {
          position: relative; }
          #nav > ul > li > a::before {
            position: absolute;
            top: 0;
            left: 0;
            content: '';
            display: inline-block;
            width: 100%;
            height: 100%;
            -webkit-transform: scaleX(0);
                    transform: scaleX(0);
            -webkit-transition: all 0.4s ease-in-out;
            transition: all 0.4s ease-in-out;
            background: rgba(50, 50, 100, 0.5);
            -webkit-transform-origin: 0 0;
                    transform-origin: 0 0; }
          #nav > ul > li > a:hover::before {
            -webkit-transform: scale(1);
                    transform: scale(1); } }
  #nav.hidden {
    left: -100%; }
  @media all and (min-width: 720px) {
    #nav {
      width: 432px; }
      #nav.hidden {
        left: -432px; } }
  @media all and (min-width: 960px) {
    #nav {
      position: relative;
      width: auto;
      height: auto;
      background: rgba(238, 238, 238, 0.6); }
      #nav > .burger {
        display: none; }
      #nav.hidden {
        left: 0; } }

p.disclaimer {
  color: #555;
  font-size: 0.3em; }

#booking {
  grid-area: booking;
  background: #eee;
  padding: 0 2em 2em;
  min-height: 200px;
  z-index: 5; }
  @media all and (min-width: 960px) {
    #booking {
      background: rgba(238, 238, 238, 0.6); } }
  #booking address {
    font-style: normal; }

#ui-datepicker-div {
  z-index: 6 !important; }

#content {
  padding: 1em 2em;
  text-align: justify;
  grid-area: content;
  background: rgba(238, 238, 238, 0.6);
  min-height: calc(100vh - 100px);
  width: auto; }
  @media all and (min-width: 960px) {
    #content {
      width: 600px; } }
  @media all and (min-width: 1200px) {
    #content {
      width: 700px; } }

#footer {
  grid-area: footer;
  text-align: center;
  background: #f3f3f3; }

body {
  margin: 0;
  background: url("https://www.toptal.com/designers/subtlepatterns/patterns/round.png");
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr 100px;
  grid-template-areas: "booking" "content" "footer"; }
  @media all and (min-width: 960px) {
    body {
      grid-template-columns: 1fr 300px 1fr 1fr;
      grid-template-rows: auto 1fr 100px;
      grid-template-areas: ". booking content ." ". nav content ." "footer footer footer footer"; } }

.row {
  min-height: 2em;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  .row > .col {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1; }
  @media all and (min-width: 480px) {
    .row {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; } }

.m-0 {
  margin: 0 !important; }

.mt-0 {
  margin-top: 0 !important; }

.mt-1 {
  margin-top: 1em !important; }

.mt-2 {
  margin-top: 1.5em !important; }

.mb-0 {
  margin-bottom: 0 !important; }

.mb-1 {
  margin-bottom: 1em !important; }

.mb-2 {
  margin-bottom: 1.5em !important; }

.p-0 {
  padding: 0 !important; }

.ui-spinner {
  width: 90%; }

.banner {
  width: 100%;
  padding-top: 25%;
  margin-bottom: 1em;
  cursor: -webkit-zoom-in;
  cursor: zoom-in; }
  .banner.-main {
    padding-top: 56.25%;
    margin-bottom: 0; }

.highlights {
  width: 100%; }
  .highlights .highlight {
    width: 100%;
    margin-bottom: 1em; }
    .highlights .highlight img {
      width: 100%;
      cursor: -webkit-zoom-in;
      cursor: zoom-in; }

.highlight-zoomed {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: rgba(20, 20, 20, 0.8);
  z-index: 20; }
  .highlight-zoomed.hidden {
    display: none; }
  .highlight-zoomed img {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    max-width: 90%;
    max-height: 90%; }

#map {
  width: 100%;
  padding-top: 56.25%; }

img.full-width {
  width: 100%; }

.enlarged {
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.8);
  z-index: 9;
  display: none;
  cursor: -webkit-zoom-out;
  cursor: zoom-out; }
  .enlarged > img {
    width: 80%;
    position: absolute;
    left: 50%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%); }

table {
  vertical-align: top !important; }

address .fa {
  width: 1.2em; }

.info {
  margin-top: 1em;
  margin-bottom: 2em;
  width: 100%; }
  .info > .img-container {
    width: 100%;
    max-width: 400px; }
    .info > .img-container > img {
      width: 100%; }
  .info > .details > h3 {
    margin: 0; }
  .info > .details > p {
    font-size: 0.9em; }
  .info > .details > table tr > th {
    padding-right: 1em; }
  .info > .details > table tr > td,
  .info > .details > table tr > th {
    vertical-align: text-top; }
  @media all and (min-width: 720px) {
    .info {
      display: -ms-flex;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      .info > .img-container {
        width: 400px;
        margin-right: 1em; }
      .info > .details {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1; } }
  @media all and (min-width: 960px) {
    .info > .img-container {
      width: 250px; } }

.clickable {
  cursor: -webkit-zoom-in;
  cursor: zoom-in; }

.mb-1 {
  margin-bottom: 0.5em; }

.mt-1 {
  margin-top: 0.5em; }

.expanded-image {
  width: 100%;
  height: 100vh;
  background: rgba(20, 20, 20, 0.8);
  position: fixed;
  z-index: 99;
  top: 0;
  left: 0t;
  cursor: -webkit-zoom-out;
  cursor: zoom-out; }

.places {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .places > .col {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1; }
    .places > .col > .place {
      width: 100%;
      padding: 0 0.5em;
      margin-bottom: 1em; }
      .places > .col > .place > img {
        max-width: 100%; }
      .places > .col > .place > h4 {
        margin: 0;
        padding: 0; }

.carousel {
  width: 100%;
  padding-top: 30%;
  position: relative;
  overflow: hidden; }
  .carousel > .image {
    width: 100%;
    padding-top: 30%;
    position: absolute;
    top: 0;
    left: 0;
    -webkit-transition: all 0.5s ease-in-out;
    transition: all 0.5s ease-in-out; }
  .carousel.-main {
    padding-top: 56.25%; }
    .carousel.-main > .image {
      padding-top: 56.25%; }
  .carousel > .arrows {
    position: absolute;
    top: 50%;
    width: 100%;
    z-index: 2; }
    .carousel > .arrows > .left, .carousel > .arrows > .right {
      position: absolute;
      cursor: pointer; }
      .carousel > .arrows > .left > .fa, .carousel > .arrows > .right > .fa {
        color: rgba(200, 200, 200, 0.9); }
    .carousel > .arrows > .left {
      left: 1em; }
    .carousel > .arrows > .right {
      right: 1em; }
