*, *:before, *:after {
  box-sizing: border-box; }

html, body, div, span, object, iframe, figure, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, code, em, img, small, strike, strong, sub, sup, tt, b, u, i, ol, ul, li, fieldset, form, label, table, caption, tbody, tfoot, thead, tr, th, td, main, canvas, embed, footer, header, nav, section, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  text-size-adjust: none; }

footer, header, nav, section, main {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after, q:before, q:after {
  content: '';
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

input {
  -webkit-appearance: none;
  border-radius: 0; }

/* FX COLOURS */
html {
  font-size: 62.5%;
  background: #f5f5f5;
  font-family: 'Palanquin', sans-serif; }

h1 {
  font-size: 7rem;
  margin: 0 0 3rem 0;
  text-align: center;
  font-family: 'Playfair Display SC', serif; }

h2 {
  font-size: 4rem;
  margin: 0 0 3rem 0;
  text-align: center;
  font-family: 'Playfair Display SC', serif; }

h3 {
  font-size: 2rem;
  margin: 0 0 2rem 0; }

p {
  font-size: 1.8rem;
  line-height: 2.6rem;
  text-align: center;
  max-width: 80rem;
  margin: 0 auto 2rem; }

a {
  font-size: 1.8rem;
  text-decoration: none;
  color: #5c4974; }
  a:hover {
    text-decoration: underline; }
  a.button {
    line-height: 5rem;
    background: #5c4974;
    border: 1px solid #5c4974;
    display: inline-block;
    padding: 0 2rem;
    color: white;
    border-radius: 0.5rem; }

header {
  padding: 2rem;
  width: 100%;
  position: relative;
  display: flex;
  justify-content: space-between;
  position: relative;
  z-index: 9999;
  position: fixed;
  background: white;
  box-shadow: 0 0 3rem rgba(0, 0, 0, 0.2); }
  @media only screen and (max-width: 900px) {
    header {
      justify-content: right;
      padding: 1rem; } }
  header h1 {
    font-size: 2.4rem;
    font-style: italic;
    line-height: 5rem;
    margin: 0 auto 0 16rem;
    color: #5c4974; }
    @media only screen and (max-width: 900px) {
      header h1 {
        display: none; } }
  header a.logo {
    height: 14rem;
    width: 14rem;
    margin-right: 2rem;
    background: white;
    position: absolute;
    box-shadow: 0 0 3rem rgba(0, 0, 0, 0.2);
    left: 2rem;
    display: block;
    border-radius: 1.5rem;
    overflow: hidden; }
    @media only screen and (max-width: 500px) {
      header a.logo {
        height: 12rem;
        width: 12rem;
        left: 1rem; } }
    header a.logo img {
      padding: 1.5rem;
      width: 100%; }
  header .menu a {
    margin-left: 3rem; }

section.home {
  width: 100%;
  padding: 8rem 2rem; }
  section.home.banner {
    background: #d8bcd8;
    color: black;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: no-repeat url("../img/banner-bg-01.jpg") center;
    background-size: cover;
    position: relative;
    padding: 23rem 2rem 18rem; }
    section.home.banner .logo {
      height: 18vw;
      margin: 2rem 0 5rem 0;
      box-shadow: 0 0 8rem rgba(0, 0, 0, 0.2);
      border-radius: 50%;
      padding: 4rem;
      background: rgba(255, 255, 255, 0.4); }
    section.home.banner h1 {
      margin: 0 0 4rem 0;
      color: #5c4974; }
      @media only screen and (max-width: 500px) {
        section.home.banner h1 {
          font-size: 5rem; } }
    section.home.banner p {
      font-size: 2.2rem;
      line-height: 3rem;
      max-width: 72rem; }
      section.home.banner p:last-child {
        margin-bottom: 0; }
    section.home.banner a {
      margin-top: 2rem; }
    section.home.banner .services {
      display: flex;
      position: absolute;
      top: 100%;
      left: 50%;
      transform: translate(-50%, -50%); }
      section.home.banner .services img {
        width: 90%;
        margin: 1rem;
        background: #f5f5f5;
        padding: 1rem; }
  section.home.about, section.home.contact {
    background: #f5f5f5; }
  section.home.instagram, section.home.prices {
    max-width: 84rem;
    margin: -6rem auto 6rem;
    background: white;
    padding: 4rem;
    box-shadow: 0 0 3rem rgba(0, 0, 0, 0.2);
    position: relative;
    border-radius: 1rem;
    }
    .small {
      font-size: 14px;
      text-align: left;
      padding-bottom: 0;
      margin-bottom: 0;
    } 
    .from:before {
      content: "From";
      font-size: 12px;
      display: block;
      line-height: 12px;
      text-align: right;
    } 
    section.home.instagram .juicer-feed, section.home.prices .juicer-feed {
      padding: 3px;
      background: #f5f5f5; }
    section.home.instagram .referral, section.home.prices .referral {
      display: none !important; }
    section.home.instagram img, section.home.prices img {
      border: 1px solid white; }
  section.home.prices h2 {
    background: #5c4974;
    color: white;
    padding: 2rem;
    font-size: 3rem;
    margin-bottom: 2rem; }
    @media only screen and (max-width: 500px) {
      section.home.prices h2 {
        font-size: 2.4rem; } }
  section.home.prices ul {
    width: 100%;
    font-size: 2rem;
    margin-bottom: 4rem; }
    @media only screen and (max-width: 500px) {
      section.home.prices ul {
        font-size: 1.6rem; } }
    section.home.prices ul li {
      width: 100%;
      display: flex;
      justify-content: space-between;
      border-bottom: 1px dotted #cccccc;
      line-height: 3rem;
      margin-bottom: 1rem; 
      padding-bottom: 1rem; 
    }
  section.home.prices span {
    display: block; 
  }
  section.home.reviews {
    background: white;
    margin-top: -12rem;
    padding-top: 14rem; }
    section.home.reviews .review {
      padding: 6rem 3rem 4rem;
      text-align: center;
      box-shadow: 0 0 3rem rgba(0, 0, 0, 0.2);
      margin: 6rem 2rem 4rem;
      width: 100%;
      border-radius: 1rem;
      position: relative; }
      section.home.reviews .review .quote {
        position: absolute;
        top: -3rem;
        left: 50%;
        transform: translate(-2rem);
        background: white;
        padding: 1.5rem;
        width: 6rem;
        height: 6rem;
        border-radius: 3rem;
        box-shadow: 0 0 3rem rgba(0, 0, 0, 0.2);
        background: #5c4974; }
    section.home.reviews a.link {
      margin: 3rem auto 0;
      text-align: center;
      display: block;
      color: #5c4974; }
    section.home.reviews .stars {
      margin: 0 auto;
      display: flex;
      width: 10rem; }
      section.home.reviews .stars li {
        width: 2rem;
        text-align: center; }
  section.home.booking {
    max-width: 72rem;
    margin: -6rem auto 6rem;
    background: white;
    padding: 6rem;
    box-shadow: 0 0 3rem rgba(0, 0, 0, 0.2);
    position: relative;
    border-radius: 1rem; }
    @media only screen and (max-width: 500px) {
      section.home.booking {
        padding: 3rem; } }
    section.home.booking .commonninja-ribbon,
    section.home.booking .cn-style-slot-7ba2fff1-7ed5-40c1-b513-5b3f8bd24287,
    section.home.booking .cn-form-ads {
      transform: scale(0); }

.grid {
  max-width: 102.4rem;
  margin: 0 auto;
  display: flex; }
  @media only screen and (max-width: 500px) {
    .grid {
      display: block; } }
  .grid .col {
    max-width: 102.4rem;
    margin: 0 auto;
    display: flex; }
  .grid .col12 {
    width: 100%; }
  .grid .col4 {
    width: 33.33%; }
    @media only screen and (max-width: 500px) {
      .grid .col4 {
        width: 100%; } }

.flex {
  display: flex;
  margin: 2rem; }
  .flex div {
    padding: 1rem; }
  .flex img {
    margin: 1rem;
    width: 100%;
    background: #f5f5f5;
    padding: 1rem; }

footer {
  background: #5c4974;
  padding: 4rem 2rem;
  width: 100%; }
  footer p {
    color: white;
    margin: 0 auto; }

form {
  margin: 0 auto;
  max-width: 60rem;
  padding: 3rem; }
  form input,
  form textarea {
    width: 100%;
    margin: 0 0 3rem 0;
    border: 1px solid #cccccc;
    padding: 1rem;
    font-size: 1.8rem; }
  form textarea {
    height: 20rem; }
  form label {
    font-size: 1.8rem;
    padding: 0 0 1rem 0;
    display: inline-block; }

.huflDf {
  font-size: 4rem !important;
  font-weight: normal !important;
  font-family: 'Playfair Display', serif !important; }
