﻿/*

    Total Chalet Services - main stylesheet
    author: CFRONT (SABN)
    created on: 20/01/2020

*/

/* 
    Colours
*/

:root {
  --mountain-grey: #A7A5A6;
  --tcs-blue:#48D1CA;
  --text:#004042;
  --tcs-peach:#EED2C7;

}

* {
    box-sizing: border-box;
}

html {
	overflow-y:scroll;
	position: relative;
}

html.noscroll {
	overflow-y:hidden;
}

html, body {
	padding:0;
	min-height: 100%;
	height:100%;
	margin:0;
    font-size:19px;
	color: #212121;
    font-family: nobel, sans-serif;
    font-weight: 300;
}

h1,h2,h3,h4,h5 {
    font-weight:600;
}

h1 {font-size:2.5rem;}
h2 {font-size:2rem;}
h3 {font-size:1.35rem}
h4 {font-size:1.2rem}
h5 {font-size:1.1rem}

.light {
    font-weight:300;
}

a {}

a:hover {}

p {
    line-height:1.5rem;
}

.header-notice {
    background: #eed2c7;
    padding: 0.5rem 1rem;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
    text-align: center;
}

header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    padding: 2rem 0;
    z-index: 99;
}

footer .logo,
header .logo {
    display:block;
    width:275px;
    transition:0.7s;
}

header .logo img {
    display:block;
    width:100%;
}

header .flex-container {
    align-items:center;
    justify-content:space-between;
}

header nav {
    display:flex;

}

header nav a {
    display:block;
    color:#333333;
    text-decoration:none;
    padding:0 1rem;
}

header.fix {
    background: #FFF;
    padding: 0;
    box-shadow:0 0 10px rgba(0,0,0,0.25);
}

header.fix .inner {
    max-width:100%;
    width:100%;
    padding:0;
}

header.fix .logo {
    display: block;
    width: 200px;
    margin: 0.5rem 2rem;
}

header.fix nav {
    padding:0 2rem;
}

header.fix .flex-container {
    align-items: unset;
}

header.fix nav {
    padding: 0 2rem;
    background: #48d1ca;
    width: calc(100% - 200px - 4rem);
    justify-content:flex-end;
}

header.fix nav a {
    color: #ffffff;
    display: flex;
    align-items: center;
}

header.fix .popup-nav nav {
    width:auto;
    justify-content:flex-start;
    background:none;
    padding:0;
}

.popup-nav nav {
    display:block;
}

header.fix .popup-nav nav a,
.popup-nav nav a {
    display: block;
    color: #FFF;
    margin: 1rem 0;
}

.popup-nav nav a:hover {
    color:var(--tcs-blue);
}

.responsive-nav {
    display:none;
}

.nav-icon {
    width: 50px;
    margin: 0 2rem;
    display: -webkit-flex;
    display: -webkit-box;
    display: -moz-flex;
    display: -moz-box;
    display: flex;
    align-items: center;
    box-sizing: border-box;
    padding: 10px 13px 11px 13px;
    justify-content: center;
    flex-wrap: wrap;
    border-radius: 50%;
    transition: 0.7s;
    flex-direction: column;
    cursor:pointer;
}

.nav-icon:hover {
    cursor:pointer;
}

.nav-icon-bars {
    background: var(--tcs-blue);
    width: 26px;
    height: 3px;
    -webkit-transition: all .3s;
    transition: all .3s;
    margin: 3px 0;
}

.nav-icon:hover .nav-icon-bars {
    background:#333333;
}

.popup-nav {
    z-index: 100;
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    background: var(--mountain-grey);
    color: #FFFFFF;
    padding: 4rem;
    display: none;
    overflow-x: hidden;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
}

.popup-nav .social a {
    width: 80px;
    transition:0.7s;
}

.popup-nav .social a #Ellipse_2 {
    fill: #8e8b8d;
    transition:0.7s;
}

.popup-nav .social a:hover #Ellipse_2 {
    fill: #eed2c7;
}

.facebook #Ellipse_2 {
    fill: #48d1ca;
}

.facebook a:hover #Ellipse_2 {
    fill: #eed2c7;
}

.nav-close {
    position: absolute;
    top: 2rem;
    right: 2rem;
    width: 48px;
    margin: auto auto auto 10px;
    display: flex;
    align-items: center;
    box-sizing: border-box;
    padding: 12px 13px 19px 13px;
    justify-content: flex-end;
    flex-wrap: wrap;
    border-radius: 50%;
    transition: 0.7s;
    background-color:rgba(255,255,255,0.2);
}

.nav-close:hover {
    cursor:pointer;
    background-color:var(--tcs-blue);
    transition:0.7s;
}

.nav-close-bars {
    background: #FFF;
    width: 26px;
    height: 2px;
    -webkit-transition: all .3s;
    transition: all .3s;
    margin: 3px 0;
}

.nav-close-bars:nth-of-type(1) {
    transform: rotate(45deg) translate(6px, 6px);
}
.nav-close-bars:nth-of-type(2) {
    transform:rotate(-45deg);
}

.inner {
    width: 90%;
    max-width: 1440px;
    margin: 0 auto;
}

.hero {
    width:100%;
    height:100vh;
    background-size:cover;
    background-position:50%;
    background-image:url('/images/morzine-ski.jpg');
    position:relative;
}

.chooseRecipes .hero {
    height: 40vh;
}

.chooseRecipes .hero-title  {
    display:none;
}

.hero.whitewash-hero::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background: rgb(255,255,255);
    background: -moz-linear-gradient(0deg, rgba(255,255,255,0.75) 0%, rgba(255,255,255,0.25) 100%);
    background: -webkit-linear-gradient(0deg, rgba(255,255,255,0.75) 0%, rgba(255,255,255,0.25) 100%);
    background: linear-gradient(0deg, rgba(255,255,255,0.75) 0%, rgba(255,255,255,0.25) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff",endColorstr="#ffffff",GradientType=1);
}

.hero .inner {
    height:100%;
    position: relative;
    z-index: 1;
}

.hero-title-container {
    height:100%;
    align-items:flex-end;
    position:relative;
}

.hero-title {
    width: 80%;
    margin: 100px auto calc(10% + 172px) auto;
    transition:0.7s;
}

.hero-title h1 {
    margin: 0 0 0.5rem 0;
    line-height: 3.2rem;
}

.hero-title h3 {
    margin:0;
}

.hero-link {
    position:absolute;
    bottom:200px;
    right:15%;
    width:285px;
}


.flex-container {
    display: -webkit-flex;
    display: -webkit-box;
    display: -moz-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    flex-wrap:wrap;
}

.fc-2 >div  {
    width:50%;
}

.bg-white {
    background:#FFF;
}

.bg-grey {
    background:var(--mountain-grey);
    color:#FFF;
}

.bg-peach {
    background:var(--tcs-peach);
    color:var(--text);
}

.blank-row {
    height:5rem;
}

.page-intro {
    position: relative;
    top: -170px;
    background: #fff;
    margin-bottom: -170px;
}

.page-intro.text-page {
    padding:4rem;
}

.chooseRecipes .page-intro.text-page {
    padding: 4rem 4rem 2rem 4rem;
}

.contactPage .page-intro.text-page,
.inner.with-swish .page-intro.text-page {
    padding: 4rem 4rem 0 4rem;
    min-height: 200px;
}

.page-intro.text-page h1,
.page-intro.text-page h3 {
    margin: 0 0 2rem 0;
    color: #49d1ca;
}

.page-intro.text-page.blog-article h1,
.page-intro.text-page.blog-article h3 {
    margin: 0;
    color: #49d1ca;
}

.page-intro.text-page > h3,
.page-intro.text-page > div {
    width:80%;
}

.page-intro.text-page.contact-page > div {
    width:100%;
}

.page-intro.text-page > h3 {
    line-height: 2rem;
}

.page-intro.text-page > div p {
    margin:1.5rem 0;
}

.feature h3 {
    font-size: 1.7rem;
    margin:0;
}

.team-total h3 {
    margin:1rem 0 0 0;
}

.feature h3 .normal {
    display:block;
    font-weight:300;
    margin-bottom:0.3rem;
    font-size:1.2rem;
}

.page-intro-content {
    position: relative;
    width: 75%;
    z-index: 1;
}

.page-intro-content h3 {
    color:var(--tcs-blue);
    width:65%;
    margin:3rem 0 1.5rem 0;
}

.page-intro img {
    display:block;
    width:100%;
}

.page-intro .image-left {
    width:25%;
    max-width:400px;
    display:flex;
    align-items:flex-end;
}

.page-intro .image-right {
    width:40%;
    max-width:450px;
    align-self:baseline;
}

.page-intro-content .flex-container > p {
    width:60%;
    line-height: 1.4rem;
    padding-right:2rem;
    color:var(--text);
    font-style: normal;
    font-weight: 300;
}

a.meet-the-team {
    display:block;
    width:200px;
    text-decoration:none;
    float: right;
    margin: 2rem 0 0 0;
}

a.meet-the-team img {
    display:block;
    width:100%;
}

a.link-button {
    display:inline-block;
    text-decoration:none;
    padding:0.5rem 1rem;
    border:1px solid #212121;
    color:#222222;
    border-radius:3px;
    margin:1rem 0;
}

a.link-button.white-t {
    color:#FFF;
    border-color:transparent;
    background:rgba(255,255,255,0.3);
    transition:0.7s;
}

a.link-button.white-t.dark-txt {
    color:var(--text);
}

a.link-button.white-t:hover {
    background: rgba(255,255,255,1);
    color:var(--text);
}

.image-container img {
    display:block;
    width:100%;
}

.stripe {
    position:relative;
}
.stripe::before {
    content:"";
    display:block;
    width:1px;
    background:var(--tcs-blue);
    height:100%;
    position:absolute;
    left:50%;
    top:0;
}

.inner-row .fc-2 > div:nth-of-type(1) {
    padding: 1rem 4rem 1rem 2rem;
    align-self: center;
}

.inner-row .fc-2 > div:nth-of-type(2) {
    padding: 1rem 2rem 1rem 4rem;
    align-self: center;
}

.align-right {
    text-align:right;
}

.centred-on-stripe {
    content:"";
    display:block;
    position:absolute;
    left:50%;
}

.centred-on-stripe svg {
    display:block;
    width:100%;
}

.centred-on-stripe.new-blob {
    width:167px;
    margin-left:-84px;
    background:#FFF;
    z-index: 2;
    top:0;
}

.centred-on-stripe.facebook {
    width:90px;
    margin-left:-45px;
    background:#FFF;
    z-index: 2;
    bottom:1.5rem;
}

.centred-on-stripe.quote-img {
    width:90px;
    margin-left:-45px;
    background:#FFF;
    z-index: 2;
    top:1.5rem;
}

.quote-content  {
    padding: 8rem 0;
}

.feature-img {
    background-size:cover;
    position:relative;
}

.feature-img img {
    display:block;
    width:100%;
    opacity:0;
}

.feature-img.laundry {
    background-image:url('/media/epcltgdb/laundry-pillows.jpg');
}

.feature-img.breakfast {
    background-image:url('/media/q1hjr1br/croissants-breakfast.jpg');
}

.feature-img .feature-box {
    position:absolute;
    bottom:0;
    padding:2rem;
    background:rgba(255,255,255,0.5);
    width:50%;
    left:2rem;
}

.feature-img.laundry .feature-box {
    background:rgba(0,0,0,0.3);
    color:#FFF;
    right:2rem;
    width:50%;
    left:unset;
}

.feature-box h5 {
    margin:0 0 0.5rem 0;
}
.feature-box p {
    margin: 0.5rem 0;
}

.testimonials,
.quote p {
    width: 50%;
    margin: 0rem auto;
    padding: 2rem;
    background: #FFF;
    position: relative;
    max-width: 600px;
    font-size: 1.3rem;
    line-height: 2rem;
}

.service-item {
    display:flex;
    flex-wrap:wrap;
}

.service-item > div {
    width:50%;
}

.services-list > .service-item:nth-child(even) {
    flex-direction:row-reverse;
}

.service-text {
    display:flex;
    align-items:center;
    padding:2rem 4rem;
}

.service-text p {
    max-width: 440px;
    width: 90%;
}

.service-image {
    background-size: cover;
    position: relative;
}

.service-image img {
    display: block;
    width: 100%;
    opacity: 0;
}

.related-content h2 {
    color:var(--tcs-blue);
    margin: 0.5rem 0.5rem 2rem 0rem;
}

.related-services {
    display:flex;
    flex-wrap:wrap;
}

.related-services > div {
    width: calc(25% - 1rem);
    padding: 2rem;
    background: var(--tcs-blue);
    margin: 0.5rem;
    color: #fff;
    border-radius: 3px;
}

related-service-text h3 {
    margin:0 0 1rem 0;
}

.menu-sections {
    display: flex;
}

.menu-sections .menu-section {
    width:33.333%;
    padding:2rem;
}

.menu-sections .menu-section:nth-of-type(1) {
    background:var(--tcs-blue);
    color:#FFF;
}

.menu-sections .menu-section:nth-of-type(2) {
    background:var(--mountain-grey);
    color:#FFF;
}

.menu-sections .menu-section:nth-of-type(3) {
    background:var(--tcs-peach);
}

.order-online {
    text-align: center;
    padding: 20px;
    background: #0075b2;
    color: #FFF;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    margin-top: 8.5rem;
    border-radius: 3px;
}

.order-online a {
    color:#FFF;
}

.menu-grid {
    width:calc(100% + 1rem);
    margin-left:-0.5rem;
}

.menu-item {
    width: calc(33.333% - 1rem);
    margin: 0.5rem;
    border: 1px solid #cacaca;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.menu-item h5 {
    font-size:1rem;
    margin:1rem 0 0.2rem 0;
}

.menu-section h3 {
    margin:1rem 0 0.2rem 0;
}

.menu-section .sub-title {
    font-weight:500;
}

.menu-section .menu-item .sub-title {
    font-weight:500;
    font-size:0.8rem;
}

.menu-section .sub-title p {
    margin:0;
}

.mi-content {
    padding:1rem;
}

.portions {
    display:flex;
    flex-direction:column;
    font-size:0.8rem;
}

.choose-recipes {
    text-align: center;
}

.choose-recipes a {
    text-decoration:none;
    display:inline-block;
    padding:0.5rem 1rem;
    background:var(--tcs-blue);
    margin:2rem auto;
    border-radius:3px;
    color:#FFF;
}

.choose-recipes a:hover {
    background:var(--tcs-peach);
    transition:0.7s;
}

.choose-recipes-container,
.choose-recipes-nav {
    display: flex;
}

.menu-section h4 {
    font-weight:300;
    margin:1rem 0;
}

.add-recipe {
    width:100%;
    padding:0.5rem;
    text-align:center;
    background:var(--tcs-blue);
    color:#FFF;
}

.choose-recipes-nav > div {
    font-weight: 600;
    margin: 0 2rem 1rem 0;
    padding: 0.25rem 0.5rem;
    border-bottom: 2px solid #FFF;
    color: var(--mountain-grey);
}

.choose-recipes-nav > div:hover {
    cursor:pointer;
    color: var(--tcs-blue);
    transition:0.7s;
}

.choose-recipes-nav > div:nth-of-type(1),
.choose-recipes-nav > div.active {
    color: var(--tcs-blue);
    border-bottom: 2px solid var(--tcs-blue);
}

.chooseRecipes .page-intro.text-page h3 {
    color:#212121;
}

.choose-recipes-nav > div span {
    display: inline-block;
    background: var(--mountain-grey);
    padding: 0.25rem;
    border-radius: 3px;
    margin-left: 0.5rem;
    color: #FFF;
}

.choose-recipes-nav > div:nth-of-type(1) span,
.choose-recipes-nav > div.active span {
    background: var(--tcs-blue);
    color: #FFF;
}

a.mail-link {
    color: #333333;
    font-weight: 600;
    text-decoration: underline;
}

a.mail-link:hover {
    color:var(--tcs-blue);
    text-decoration:underline;
}

.text-page ul li {
    margin:0.5rem 0;
}

#page.textPage .hero {
    height: 60vh;
}

#page.textPage .hero-title {
    margin: 0 auto calc(6rem + 172px) auto;
}

.menu-image {
    background-size:cover;
    background-position:50%;
}

.menu-image img {
    width:100%;
    opacity:0;
}

.culture-club {
    position: fixed;
    top: 0;
    right: 2rem;
    z-index: 100;
    display: -webkit-flex;
    display: -webkit-box;
    display: -moz-flex;
    display: -moz-box;
    display: flex;
}

.culture-club a {
    display: inline-block;
    padding: 0.5rem;
    font-size: 0.8rem;
    font-weight: 500;
    text-decoration: none;
    background: #49d1ca;
    color: #FFF;
    letter-spacing: 1px;
    transition:0.7s;
}

.culture-club .phone a {
    background:none;
    color:#333333;
}

.culture-club .phone a:hover {
    background:none;
    color:var(--tcs-blue);
}

header.fix .culture-club  {
    display:none;
}

header.fix .culture-club a:hover,
.culture-club a:hover {
    background:var(--mountain-grey);
}

header .popup-nav nav .culture-club,
header.fix .popup-nav nav .culture-club {
    position: absolute;
    top: 0;
    right: unset;
    display: flex;
    left: 0;
    margin: 0 1rem;
}

header .popup-nav nav .culture-club a,
header.fix .popup-nav nav .culture-club a {
    margin: 0 0.5rem 0 0;
}

/* Contact form styles */

.contact-note {
    font-size: 1.8rem;
    width: 66%;
    padding: 2rem 0;
}

.contact-form {
    border-top: 2px solid #49d1ca;
    margin-top: 2rem;
}

.contact-form-row {
    background:#ededed;
    padding:2rem 0;
}

.contact-form-row input,
.contact-form-row textarea,
.contact-form-row select {
    border: none;
    border-bottom: 1px solid #cccccc;
    padding: 10px;
    background: #ededed;
    font-family: nobel, sans-serif;
    font-size: 19px;
    font-weight: 300;
    margin: 1rem 0;
    outline: none;
    width: 95%;
    box-sizing: border-box;
    border-radius:3px;
}

.contact-form-row textarea {
    min-height:200px;
}

.inner .contact-form-container .flex-container {
    padding: 2rem 0;
}

.contact-form-row input:focus, 
.contact-form-row textarea:focus {
    transition: all ease 0.7s;
    border-bottom: 2px solid var(--tcs-blue);
}

.contact-form-row label {
    display:block;
    font-size: 1rem;
}

.contact-form-row input[type="submit"] {
    width: auto;
    border: none;
    background: var(--tcs-blue);
    color: #FFFFFF;
    padding: 10px 20px;
    margin: 40px 0;
}

.contact-form-row input[type="submit"]:hover {
    transition: all ease 0.7s;
    background: var(--mountain-grey);
    cursor: pointer;
}

.contact_msg {
    padding: 4rem 4rem 0 4rem;
}

.blog-article img {
    display:block;
    max-width:960px;
    width:100%;
    margin:2rem auto;
}

a.blog-article-item {
    text-decoration: none;
    color: #333;
    background: #ededed;
    padding: 2rem;
    border-radius:2px;
}

a.blog-article-item:hover {
    text-decoration: none;
    color:#FFF;
    background: var(--tcs-blue);
    transition:background 0.7s;
}

.blog-article-item,
.team-member {
    width: calc(25% - 2rem);
    margin: 1rem;
    cursor: pointer;
}

.blog-article-item {
    width: calc(33.333% - 2rem);
    margin: 1rem;
    cursor: pointer;
}

.blog-title h4 {
    font-weight:600;
    font-size:1.5rem;
    margin:0;
}

.blog-date {
    color:var(--mountain-grey);
    font-size:0.9rem;
    margin:0.25rem 0 1rem 0;
}

a.blog-article-item:hover .blog-date {
    color: #FFF;
}

.team-member h5 {
    margin: 0;
}

.col-1-2 {width:50%;}
.col-1-3 {width:27.5%}

.col-2-3 {width:66.667%;}
.col-1-4 {
    width: 25%;
}
.col-3-4 {
    width: 75%;
}

.team-detail {
    position:fixed;
    top:0;
    left:100%;
    width:100%;
    z-index:100;
    background:#FFF;
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:0.7s;
}

.team-detail.active {
    left:0;
    transition:0.7s;
}

.close-detail {
    position:absolute;
    top:2rem;
    right:2rem;
    font-size:3rem;
    line-height: 3rem;
    transition:0.7s;
}

.close-detail:hover {
    cursor:pointer;
    color:#48d1ca;
}

.team-detail h4 {
    margin:0;
}

.team-detail .flex-container,
.team-row.flex-container {
    justify-content: space-between;
    padding: 2rem 0;
}

.team-detail .job-role {
    color:#707070;
    font-family: 'Larsseit';
    font-size:1.2rem;
}

.team-photo {
    width:100%;
    margin:1rem 0;
    border-radius:50%;
    background-repeat:no-repeat;
    background-size:cover;
    background-position:50%;
}

.team-bio {
    padding:2rem 0;    
}

.team-photo img {
    display:block;
    width:100%;
    opacity:0;
}

.contact-details {
    font-size:2rem;
}

.contact-other a,
.team-contact a {
    display: block;
    text-decoration: none;
    color: #212121;
    font-weight: 600;
    letter-spacing: 1px;
}

.contact-other a .label,
.team-contact a .label {
    font-weight: 300;
}

#mapCanvas {
    width: 100%;
    min-height: 360px;
}

.map-info h4 {
    font-size: 1rem;
    margin: 0.5rem 0;

}

footer {
    position: relative;
    color: #FFF;
    background-image: url(/images/footer-mountains.svg);
    background-size: cover;
    font-size: 0.9rem;
}

.footer-pad-row > div > div {
    padding:2rem;
}

.footer-description,
.footer-contact {
    font-weight:300;
    color:#FFF;
    padding:2rem 0 1rem 0;
    width:70%;
    line-height:1.4rem;
}
.footer-credit,
.footer-legal {
    font-weight: 300;
    color: #FFF;
    line-height: 1.4rem;
}

.footer-base {
    padding: 1rem 0;
}

.footer-base a {
    font-weight: 300;
    color: #FFF;
    text-decoration:none;
}
.footer-base a:hover {
    text-decoration:underline;
}

.footer-legal a {
    display: inline-block;
    margin: 0 0.5rem;
}

.footer-description {
    padding-bottom: 0;
}

.footer-contact {
    color:#EDEFD5;
}

.footer-content {
    position:relative;
    z-index:1;
}

.footer-credit {
    text-align:right;
}

.footer-background-image {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 0;
}

footer nav {
    display: block;
    text-align: right;
    font-size: 1.1rem
}

footer nav a {
    display: block;
    text-decoration:none;
    color:var(--tcs-blue);
    margin:1rem 0;
}

.backtotop {
    position:fixed;
    bottom:1rem;
    right:1rem;
}

.no-scrollbar::-webkit-scrollbar {
    display: none;
}

.no-scrollbar {
    -ms-overflow-style: none;
    -webkit-overflow-scrolling: touch;
}

.contactPage .hero {
    pointer-events: none; 
}

.contactPage .contact-info a {
    color:var(--tcs-blue);
}

.contactPage .contact-info a:hover {
    color:var(--mountain-grey);
}

.contact-social a .fa-facebook-f {
    font-size:1rem;
    color: var(--tcs-blue);
    border: 2px solid var(--tcs-blue);
    padding: 5px 10px 6px 9px;
    border-radius: 50%;
    transition:0.7s;
}

.contact-social a:hover .fa-facebook-f {
    color: #FFF;
    border: 2px solid var(--tcs-blue);
    background:var(--tcs-blue);
}

@media screen and (max-width:1240px) {
    header nav {
        display:none;
    }

    header .responsive-nav {
        display:flex;
    }
}


@media screen and (max-width:960px) {
    .hero-link {
        bottom: 200px;
        right: 5%;
        width: 200px;
    }

    .hero-title h1 {
        line-height: 2.5rem;
        font-size: 2rem;
    }
    .hero-title h3 {
        font-size: 1.2rem;
        max-width: 440px;
    }

    .col-1-2,
    .col-1-3,
    .col-2-3 {
        width:100%;
    }
}

@media screen and (max-width:640px) {
    header nav {
        display:none;
    }

    .nav-icon {
        margin:0;
    }

    .popup-nav {
        padding: 4rem 2rem;
        width: 100%;
    }

    header .responsive-nav {
        display:flex;
    }

    header .logo,
    header.fix .logo {
        display: block;
        width: 140px;
        margin:0 1rem;
    }

    .hero-title {
        width:90%;
        margin: 0 auto calc(3rem + 172px) auto;
    }

    .hero-title h1 {
        line-height: 1.5rem;
        font-size: 1.3rem;
    }
    .hero-title h3 {
        font-size: 1rem;
        max-width: 240px;
    }

    .hero-link {
        bottom: 160px;
        right: 2%;
        width: 125px;
    }

    header.fix,
    header {
        padding:1rem;
    }

    .inner,
    .service-item > div,
    .page-intro.text-page > h3, 
    .page-intro.text-page > div {
        width:100%;
    }

    .page-intro.text-page,
    .service-text {
        padding:2rem;
    }

    .culture-club {
        right: 0;
        bottom: 0;
        top: 50%;
        display: flex;
        flex-wrap: wrap;
        flex-direction: column;
    }

    header .culture-club a,
    header.fix .culture-club a {
        padding: 0.25rem;
        font-size: 0.7rem;
        background: #49d1ca;
        width: 30px;
        text-align: center;
        margin: 1px;
    }

    .page-intro {
        top: -140px;
        margin-bottom: -140px;
    }

    .page-intro-content {
        padding: 1rem;
    }
    
    .menu-grid {
        margin:0;
    }

    .menu-grid,
    .menu-item,
    .related-services > div,
    .page-intro-content,
    .page-intro-content h3,
    .page-intro-content .flex-container > p,
    .page-intro .image-right,
    .fc-2 > div {
        width:100%;
    }

    .page-intro .image-left,
    .stripe::before,
    .centred-on-stripe.new-blob {
        display:none;
    }

    .menu-section h3,
    .menu-section .sub-title {
        margin: 1rem;
    }

    .inner-row .fc-2 > div:nth-of-type(1),
    .inner-row .fc-2 > div:nth-of-type(2) {
        padding:1rem;
    }

    .related-content h2 {
        margin: 1rem;
        font-size: 1.2rem;
    }

    .page-intro.text-page > h3,
    .page-intro-content h3 {
        font-size:1.2rem;
        margin: 1rem 0;
    }

    .inner-row .fc-2 > div.feature-img.laundry,
    .inner-row .fc-2 > div.feature-img.breakfast {
        padding:0;
    }

    .feature-img.laundry .feature-box,
    .feature-img.breakfast .feature-box {
        position:relative;
        bottom:unset;
        right:unset;
        width:90%;
        left:unset;
    }

    .quote p {
        width: 90%;
    }

    footer .logo {
        width:160px;
    }

    footer .inner {
        padding:1rem;
    }

    .footer-description, .footer-contact {
        color: #333;
        padding: 1rem 0 1rem 0;
        width: 90%;
    }
    footer nav {
        text-align:left;
    }

    .footer-legal a {
        display: block;
        margin: 0;
    }
}

@media screen and (max-height:640px) { 

    header {
        padding:1rem;
    }

    header .logo {
        width:200px;
    }

    .hero-title {
        margin: 100px auto 10% auto;
    }

    .hero-title h1 {
        font-size:1.75rem;
        line-height:2rem;
    }

    .hero-title h3 {
        font-size: 1rem;
    }

    .page-intro {
        top:0;
        margin-bottom:0;
    }

    .hero-link {
        bottom: 1rem;
        width: 145px;
    }

    .culture-club {
        right:0;
    }
    header.fix .culture-club a {
        padding: 0.25rem;
        font-size: 0.7rem;
        background: #28b0a9;
    }
}

@media screen and (max-width:440px) and (max-height:640px) {
    header .logo {
        width: 160px;
        margin: 0.5rem;
    }

    .hero-title {
        margin: 100px auto 5rem auto;
    }

    .hero-title h1 {
        font-size: 1.5rem;
        line-height: 2rem;
    }
}
