/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* header/footer site width */
.site-header:not(.dynamic-header),
.site-footer:not(.dynamic-footer) {
    max-width: none;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
}

ul {
    list-style: none;
}

/* global colours */

:root {

 	--colour-navy: #262C3C;
	--colour-cream: #FFF8EB;
	--colour-sage: #DFD8C0;
}


body {
  font-size: 1rem;
  line-height: 1.375rem;
}

@font-face {
	font-family: "Editorial New";
	src: url("assets/fonts/PPEditorialNew-Ultralight.otf") format("opentype");
	font-weight: 200!important;
	font-style: normal;
	font-display: swap;
}

:root {
  --e-global-typography-primary-font-family: "Editorial New", serif;
}

.elementor-widget-heading .elementor-heading-title {
  font-family: "Editorial New", serif;
}

h1, h2, h3, h4, h5, h6 {
  font-family: "Editorial New", serif;
  font-weight: 200!important;
}

.h1-heading {
  /* font-size: 9.063rem; */
  font-size: min(10vw, 10rem)!important;
  line height: 0.7!important;
  text-transform: uppercase;
  white-space: nowrap!important;
  text-align: center!important;
}

h1 {
  font-size: min(7vw, 7rem)!important;
  line height: 0.7!important;
  text-transform: uppercase;
  white-space: nowrap!important;
  text-align: left!important;
  padding-left: 5px;
}

@media screen and (max-width: 767px){
  
  h1 {
    font-size: clamp(3rem, 9vw, 4.5rem)!important;
    white-space: normal!important;
    line-height: 0.9;
    padding: 0 0 10px 5px;
  }

}

h2 {
  font-size: 2.250rem;
  line-height: 2.5rem;
}

@media screen and (min-width: 767px) and (max-width: 1023px){
  h2 {
    font-size: 1.9rem!important;
    line-height: 2.2rem!important;
  }
}


@media screen and (max-width: 767px){
  h2 {
    font-size: 1.8rem!important;
    line-height: 2.3rem!important;
  }
}

h3 {
  font-size: 1.6rem;
  line-height: 1.8rem;
}

h4 {
  font-size: 1.375rem;
  line-height: 1.375rem;
}

p.text-large {
  font-size: 1.125rem;
  line-height: 1.167rem;
}

p.text-small, .elementor-widget-text-editor p, .elementor-widget-text-editor li {
  font-size: 1rem;
  line-height: 1.429rem;
}

.elementor-widget-text-editor ul {
    padding-left: 15px;
    list-style: disc;
}

section {
  padding: 140px 80px!important;
}

@media screen and (max-width: 1023px){
  section {
    padding: 100px 60px!important;
  }
}

@media screen and (max-width: 767px){
  section {
    padding: 80px 40px!important;
  }
}

@media screen and (max-width: 524px){
  section {
    padding: 60px 20px!important;
  }
}

section.padding-sides-only {
  padding: 0px 80px!important;
}

@media screen and (max-width: 1023px){
  section.padding-sides-only {
    padding: 0px 60px!important;
  }
}

@media screen and (max-width: 767px){
  section.padding-sides-only {
    padding: 0px 40px!important;
  }
}

@media screen and (max-width: 524px){
  section.padding-sides-only {
    padding: 0px 20px!important;
  }
}

section.padding-top-none {
  padding-top: 0px!important;
}

section.padding-medium {
  padding-top: 100px!important;
  padding-bottom: 100px!important;
}

@media screen and (min-width: 767px) and (max-width: 1024px){
  section.padding-medium {
  padding-top: 60px!important;
  padding-bottom: 60px!important;
}
}

@media screen and (max-width: 767px){
  section.padding-medium {
  padding-top: 40px!important;
  padding-bottom: 40px!important;
  }
}

img {
  border-radius: 5px!important;
}

.elementor-button,
.elementor a.e-button-base, 
button {
 position: relative;
 display: inline-block;
 width: fit-content !important;
 text-align: center;

	font-family: "Cousine", monospace;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.143;
	letter-spacing: 0.018rem;
	text-transform: uppercase;
	text-decoration: none;

padding: 10px 20px;

	border: solid 1px var(--colour-navy);
	border-radius: 0;

	background-color: transparent;
	color: var(--colour-navy);

	transition:
		color 0.3s ease,
		opacity 0.3s ease;
} 

a {
  color: inherit!important;
}


/* HEADER */
/* header section for hero overlay */

.site-header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 3000;
    background: transparent;
    padding-left: 20px;
    padding-right: 20px;
}

.logo img {
  width: 75px;
}

header a {
  color: var(--colour-cream)!important;
  text-transform: uppercase;
  font-family: "Cousine", monospace!important;
  font-size: 1rem!important;
}

header#masthead {
  border-bottom: solid 0.5px var(--colour-cream);
  padding-bottom: 15px!important;
}

ul.sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  background-color: var(--colour-navy);
  padding: 15px 25px;
  border-radius: 5px;
  white-space: nowrap;

  opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	pointer-events: none;

	transition:
		opacity 0.2s ease,
		transform 0.2s ease,
		visibility 0.2s ease;
}

ul.sub-menu li {
  padding: 2px 0px;
  transition: opacity 0.3s ease-in;
}

ul.sub-menu li:hover {
  opacity: 75%;
}

ul.sub-menu a {
  font-size: 0.9rem!important;
}

li.menu-item-has-children {
  position: relative;
}

li.menu-item-has-children::after {
  content: "";
  background-image: url(assets/images/down-arrow-sub-folder.png);
  background-size: contain;
  background-repeat: no-repeat;
    background-position: center;
    width: 10px;
    height: 10px;
    margin-left: 2px;
    display: inline-block;
}

li.menu-item-has-children:hover ul.sub-menu {
  opacity: 1;
	visibility: visible;
	transform: translateY(0);
	pointer-events: auto;
}

.single-post header a {
  color: var(--colour-navy)!important;
}



/* mobile header section */


.mobile-header {
	display: none;
}

.mobile-menu-toggle {
	display: none;
}

@media (max-width: 1024px) {

	.desktop-header {
		display: none !important;
	}

  .mobile-header {
	display: flex;
  justify-content: space-between;
  align-items: center;
  }

  	.mobile-menu-toggle {
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 6px;

		width: 44px;
		height: 44px;
		padding: 8px;

		cursor: pointer;
	}

	.mobile-menu-toggle span {
		display: block;

		width: 100%;
		height: 1px;

		background-color: var(--colour-cream);

		transition:
			transform 0.3s ease,
			opacity 0.3s ease;
	}
}


.mobile-menu-toggle.is-open span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.mobile-menu-toggle.is-open span:nth-child(2) {
	opacity: 0;
}

.mobile-menu-toggle.is-open span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}


/* mobile menu design */


/* Full-screen mobile menu is hidden on desktop */

.mobile-menu-panel {
	display: none;
}

@media (max-width: 1024px) {

  header#masthead {
    border-bottom: none;
    padding-left: 5px!important;
    padding-right: 5px!important;
  }

	/* Burger icon */

	.mobile-menu-toggle {
		position: relative;
		z-index: 3100;

		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 6px;

		width: 44px;
		height: 44px;
		padding: 8px;

		cursor: pointer;
	}

	.mobile-menu-toggle span {
		display: block;

		width: 100%;
		height: 1px;

		background-color: var(--colour-cream);

		transform-origin: center;

		transition:
			transform 0.35s ease,
			opacity 0.25s ease;
	}

	/* Burger changes into a cross */

	.mobile-menu-toggle.is-open span:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	.mobile-menu-toggle.is-open span:nth-child(2) {
		opacity: 0;
	}

	.mobile-menu-toggle.is-open span:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

	/* Full-screen panel */

	.mobile-menu-panel {
		position: fixed;
		inset: 0;
		z-index: 2000;

		display: flex;
		flex-direction: column;

		width: 100%;
		height: 100vh;

		/*
		 * Leaves space for the header because the header
		 * remains positioned over the top of the panel.
		 */

		color: var(--colour-cream);
		background-color: var(--colour-navy);

		visibility: hidden;
		transform: translateY(-100%);
		pointer-events: none;

		transition:
			transform 0.55s cubic-bezier(0.76, 0, 0.24, 1),
			visibility 0.55s;
	}

	.mobile-menu-panel.is-open {
		visibility: visible;
		transform: translateY(0);
		pointer-events: auto;
	}

	/* Left panel, divider and image panel */

	.mobile-menu-panel__inner {
		display: grid;
		grid-template-columns:
			minmax(0, 1fr)
			0.5px
			minmax(18rem, 0.9fr);

		flex: 1;
		min-height: 0;
	}

	.mobile-menu-panel__left {
		display: flex;
		flex-direction: column;

		min-width: 0;
		padding: 120px 60px 60px 45px!important;

		overflow-y: auto;
    height: 100%;
	}

	.mobile-menu-panel__divider {
		display: block;

		width: 0.5px;
		height: 100%;

		background-color: rgb(248 242 229 / 25%);
	}

	.mobile-menu-panel__right {
		display: flex;
		align-items: center;
		justify-content: center;

		min-width: 0;
		padding: clamp(2rem, 5vw, 5rem);
	}

	.mobile-menu-panel__right img {
		display: block;

		width: min(100%, 30rem);
		aspect-ratio: 4 / 5;

		object-fit: cover;
		object-position: center;

		border-radius: 0.25rem;
	}

	/* Navigation */

	.mobile-navigation {
		display: flex;
		flex-direction: column;
	}

	.mobile-navigation__menu {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 0.65rem;

		margin: 0;
		padding: 0;

		list-style: none;
	}

	.mobile-navigation__menu--right {
		margin-top: 0.65rem;
	}

	.mobile-navigation__menu li {
		margin: 0;
		padding: 0;
	}

	.mobile-navigation__menu a {
		color: inherit;

		font-family: "Editorial New", sans-serif;
		font-size: clamp(1.5rem, 3vw, 2.25rem);
		font-weight: 400;
		line-height: 1.1;

		text-decoration: none;

		transition: opacity 0.2s ease;
	}

	.mobile-navigation__menu a:hover,
	.mobile-navigation__menu a:focus-visible {
		opacity: 0.6;
	}

	/* WordPress submenus */

	.mobile-navigation__menu .sub-menu {
		display: flex;
		flex-direction: column;
		gap: 0.4rem;

		margin: 0.65rem 0 0;
		padding: 0 0 0 1rem;

		list-style: none;
	}

	.mobile-navigation__menu .sub-menu a {
		font-size: 1rem;
		opacity: 0.75;
	}

	/* Contact details stay at the bottom */

	.mobile-menu-panel__contact {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 0.4rem;

		margin-top: auto;
		padding-top: 3rem;
	}

	.mobile-menu-panel__contact a {
		color: inherit;

		font-size: 0.875rem;
		line-height: 1.4;
		text-decoration: none;
	}

	body.mobile-menu-open {
		overflow: hidden;
	}
}

.stay-dates {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.stay-dates p {
  margin-bottom: 0;
}

@media screen and (max-width: 600px){
  .mobile-menu-panel__right, span.mobile-menu-panel__divider {
    display: none;
  }

  .mobile-menu-panel__left {
    width: 100%;
  }

  .mobile-menu-panel__inner {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 374px){
  .logo img {
    width: 60px;
  }
}


/* HERO SECTION */

section.no-padding {
  padding: 0!important;
}

section.dark-background,
section.dark-background h2,
section.dark-background p {
  color: var(--colour-cream)!important;
}

/* ACTIVITIES PLAN YOUR STAY */

h3.activity-name {
  text-transform: uppercase;
  color: var(--colour-cream);
  font-size: 2.2rem;  
  position: absolute;
  bottom: 10px;
  left: 0;
  right: 0;
  
  width: 100%;
  margin: 0;
  box-sizing: border-box;
  text-align: center;
  white-space: normal;
  line-height: 1;

}

@media screen and (max-width: 1200px){
  h3.activity-name {
    font-size: 1.8rem;
  }
}

@media screen and (max-width: 1023px){
  h3.activity-name {
    font-size: 1.6rem;
  }

  .stay-content {
    column-gap: 15px;
  }
}

@media screen and (max-width: 992px){
  h3.activity-name {
    font-size: 1.4rem;
    text-align: left;
    padding-left: 5px;
  }
}

@media screen and (max-width: 767px){
  h3.activity-name {
    font-size: 2.2rem;
    text-align: center;
  }
}

@media screen and (max-width: 524px){
  .stay-content div {
    margin-bottom: 20px;
  }
}

@media screen and (max-width: 374px){
  h3.activity-name {
    font-size: 1.7rem;
    text-align: center;
  }
}

.min-height-large img {
  min-height: 700px;
}

@media (max-width: 767px){
  .min-height-large img {
    min-height: unset!important;
    max-height: 550px;
  }
}

/* latest posts section */

@media (max-width: 557px){
  /* .latest-blogs .northstar-btn {
    margin-top: 30px;
  } */

  .elementor .latest-blogs h2 {
    padding-right: 0;
  }
}

/* image max-height */

.northstar-content-image .elementor-widget-image img {
  display: block;
	width: 100%;
	height: clamp(550px, 55vw, 750px)!important;
	object-fit: cover;
}

@media screen and (max-width: 424px){
  .northstar-content-image .elementor-widget-image img { 
    max-height: 400px;
    aspect-ratio: 4 / 5;
  }
}

.northstar-content-image-small .elementor-widget-image img {
  display: block;
  width: 100%;
  max-height: 450px;
  object-fit: cover;
}


/* stamp cta section */

 {
  /* Change this value to adjust the stamp perforation size: */
  --radius: 8px;

  background-image: 
    radial-gradient(
      var(--radius),
      transparent 98%,
      white
    ),
    linear-gradient(white 0 0);
  background-repeat: 
    round, 
    no-repeat;
  background-position:
    calc(var(--radius) * -1.5) calc(var(--radius) * -1.5),
    50%;
  background-size:
    calc(var(--radius) * 3) calc(var(--radius) * 3),
    calc(100% - var(--radius) * 3) calc(100% - var(--radius) * 3);
}


/*  Cosmetic styles */

.elementor div.stamp-border {
  /* Change this value to adjust the stamp perforation size: */
  --radius: 8px;

  background-image: 
    radial-gradient(
      var(--radius),
      transparent 98%,
      var(--colour-cream)
    ),
    linear-gradient(var(--colour-cream) 0 0);
  background-repeat: 
    round, 
    no-repeat;
  background-position:
    calc(var(--radius) * -1.5) calc(var(--radius) * -1.5),
    50%;
  background-size:
    calc(var(--radius) * 3) calc(var(--radius) * 3),
    calc(100% - var(--radius) * 3) calc(100% - var(--radius) * 3);
}


/* image same height for galleries */

.img-same-height img.swiper-slide-image {
  aspect-ratio: 1;
  object-fit: cover;
}

/* blog page  */

.single-post .site-main {
  padding-top: 150px;
}

body:not([class*=elementor-page-]) .site-main {
  width: 800px;
}

@media (max-width: 767px){
body:not([class*=elementor-page-]) .site-main {
  width: 100%;
}
}

/* FAQ Section */

h3.e-n-accordion-item-title-text {
  font-size: 22px!important;
}


/* blog page */

/* Main blog wrapper */

.northstar-blog {
	width: 100%;
	margin: 0;
}

h1.northstar-blog-hero__title {
  margin: 0;
  padding-left: 10px;
  color: var(--colour-cream);
}

section.northstar-blog-hero {
    background-color: var(--colour-navy);
    height: 65vh;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 0 !important;
}


time.northstar-blog-card__date {
  font-size: 14px;
    text-transform: uppercase;
    font-family: 'Cousine';
    color: var(--colour-navy);
}


/* Remove Hello Elementor's default narrow content width
   from the blog archive only */
body.blog .site-main,
body.home .site-main,
body.category .site-main {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}


/* Blog content */

.northstar-blog-content {
	width: 100%;
	padding: 80px 40px 120px;
	background-color: var(--colour-cream);
}

.northstar-blog-content__inner {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}

/* Category filters */

.northstar-blog-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 20px 25px;
	margin-bottom: 50px;
}

.northstar-blog-filter {
	position: relative;
	color: var(--colour-navy);
	font-family: "Rosario", monospace;
	font-size: 0.75rem;
	font-weight: 400;
	line-height: 1.2;
	text-decoration: none;
}

.northstar-blog-filter::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: -5px;
	left: 0;
	height: 1px;
	background-color: currentColor;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.25s ease;
}

.northstar-blog-filter:hover::after,
.northstar-blog-filter:focus-visible::after,
.northstar-blog-filter.is-active::after {
	transform: scaleX(1);
	transform-origin: left;
}

/* Post grid */

.northstar-blog-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 64px 24px;
}

/* Cards */

.northstar-blog-card {
	min-width: 0;
	margin: 0;
}

.northstar-blog-card__image-link {
	display: block;
	margin-bottom: 18px;
	overflow: hidden;
	border-radius: 4px;
}

.northstar-blog-card__image {
	width: 100%;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background-color: #dfd8c5;
}

.northstar-blog-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: transform 0.5s ease;
}

.northstar-blog-card__image-link:hover img {
	transform: scale(1.025);
}

.northstar-blog-card__placeholder {
	width: 100%;
	height: 100%;
	background-color: #dfd8c5;
}

.northstar-blog-card__content {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

h2.northstar-blog-card__title  {
	margin: 0;
  line-height: inherit!important;
}

.northstar-blog-card__title a {
	text-decoration: none;
	font-family: "Editorial New", serif!important;
  font-size: clamp(1.2rem, 1.6vw, 1.8rem);
	font-weight: 400;
	line-height: 1.5;
}

.northstar-blog-card__excerpt {
	color: var(--colour-navy);
	font-family: "Rosario", sans-serif;
	font-size: 0.95rem;
	line-height: 1.45;
}

@media screen and (max-width: 1024px){

  section.northstar-blog-hero {
    height: 50vh;
  }
}

@media screen and (max-width: 767px){
  .northstar-blog-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  section.northstar-blog-hero {
    height: 40vh;
  }

  .northstar-blog-pagination {
    margin-top: 60px;
  }
}

@media screen and (max-width: 524px){
.northstar-blog-grid {
		grid-template-columns: 1fr;
		gap: 48px;
	}

	.northstar-blog-card__image {
		aspect-ratio: unset;
	}
}

/* Pagination */

.northstar-blog-pagination {
	margin-top: 80px;
}

.northstar-blog-pagination .nav-links {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
}

.northstar-blog-pagination a,
.northstar-blog-pagination .current {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	min-height: 40px;
	padding: 8px 12px;
	border: 1px solid var(--colour-navy);
	color: var(--colour-navy);
	font-family: "Cousine", monospace;
	font-size: 0.75rem;
	text-decoration: none;
	text-transform: uppercase;
}

.northstar-blog-pagination .current,
.northstar-blog-pagination a:hover {
	background-color: var(--colour-navy);
	color: var(--colour-cream)!important;
}




/* northstar single blog */

.northstar-blog-single-hero {
	background-image: url("http://northstar-chalets.local/wp-content/uploads/2026/07/les-gets-summer-bike-park.jpg");
	padding: 0 !important;
	width: 100%;
	position: absolute;
	height: 70vh;
	top: 0;
	left: 0;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

section.northstar-blog-post-section {
	padding-top: 425px!important;
  padding-left: 40px!important;
  padding-right: 40px!important;
}

.northstar-blog-single-hero-overlay {
  position: absolute;
	inset: 0;
	background: rgba(20, 27, 43, 0.08);
}

nav.northstar-blog-breadcrumbs, header.northstar-blog-post-header, time.northstar-blog-post-date, .northstar-blog-post-meta {
  text-align: center!important;
}

section#comments {
  padding: 60px 0px 0px 0px!important;
}

form#commentform label {
  margin-bottom: 7px;
}

textarea#comment, input[type=date], input[type=email], input[type=number], input[type=password], input[type=search], input[type=tel], input[type=text], input[type=time], input[type=url], select, textarea {
  background: transparent;
}

body.single header nav a {
  color: var(--colour-cream)!important;
}


h1.northstar-blog-post-title {
    text-transform: none;
    font-size: 48px !important;
    text-align: center !important;
    max-width: 750px;
    white-space: normal !important;
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
    margin-bottom: 30px;
}

h2#reply-title {
  font-size: 28px;
}

.northstar-blog-post-meta {
  margin-top: 15px;
}

p.form-submit input#submit {
  border: none;
  color: var(--colour-cream);
  background-color: var(--colour-navy);
}

p.form-submit input#submit:hover {
  background-color: transparent;
  border: solid 1px var(--colour-navy);
}

h2.title-comments {
  font-size: 28px;
}

.comment-metadata time {
  font-size: 14px;
}

ol.comment-list {
  margin-bottom: 60px!important;
}

.elementor-kit-6 button, .elementor-kit-6 input[type="button"], .elementor-kit-6 input[type="submit"], .elementor-kit-6 .elementor-button {
  box-shadow: none;
}

@media screen and (max-width: 1024px){
  section.northstar-blog-post-section {
    padding-top: 375px!important;
  }

  h1.northstar-blog-post-title {
    max-width: 450px;
    font-size: 32px!important;
  }
}

@media screen and (max-width: 767px){
  body:not([class*=elementor-page-]) .site-main {
    max-width: unset;
  }
}

@media screen and (max-width: 424px){
  section.northstar-blog-post-section {
    padding-top: 320px!important;
  }

  body:lang(FR) section.northstar-blog-post-section {
    padding-top: 340px!important;
  }

  section.northstar-blog-post-section {
    padding-left: 10px!important;
    padding-right: 10px!important;
  }

}

p.wp-block-paragraph, ul.wp-block-list {
  margin-bottom: 2rem;
}

section.northstar-blog-post-section {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

figure.wp-block-image img {
  max-height: 700px;
  object-fit: cover;
}

header.northstar-blog-post-header {
  margin-bottom: 40px;
}

ul.wp-block-list {
  list-style: disc;
}


a.wp-block-button__link.wp-element-button {
  color: var(--colour-cream) !important;
}

p.wp-block-paragraph a {
  text-decoration: underline;
}
/* activity card section */

.activity-image img {
  aspect-ratio: 2/3;

}

p.comment-form-cookies-consent label {
  font-size: 14px;
}


/* GOOGLE TRANSLATE  */

#google_translate_element {
  z-index: 100;
  border-radius: 0;
  right: 2vw;
  left: auto;
  position: fixed;
  bottom: 1vh;
}

.goog-te-gadget-simple {
  background-color: @translate-bg !important;
 border-color:@translate-border !important;
  padding: 0.2em !important;
  border-radius: 4px !important;
  font-size: 1rem !important;
  line-height: 2rem !important;
  display: inline-block;
  cursor: pointer;
 
}
.goog-te-menu2 {
  max-width: 100%;
}
.goog-te-menu-value {
  display: flex;
  align-items: center;
  color: #fff;
}
.goog-te-menu-value:before {
  content: "\e894";
  margin-right: 0.5em;
 font-family: 'Material Icons';
 color:@langicon-color;
}
.goog-te-menu-value span {
  color:@translate-text-color;
  font-family:@translate-font;
}
.goog-te-menu-value span:nth-child(1) {
  position: relative;
  top: 0.07rem;
}

.goog-te-menu-value span:nth-child(5) {
  display: none;
}
.goog-te-menu-value span:nth-child(3) {
  border: none !important;
  font-family: 'Material Icons';
  display: flex;
  
}
.goog-te-menu-value span:nth-child(3):after {
  font-family: 'Material Icons';
  content: "\E5C5";
  font-size: 1.5rem;
  color:@downicon-color !important;
}
.goog-te-gadget-icon {
  display: none;
}
.goog-te-banner-frame.skiptranslate {
  display: none!important;
}


body {
  top: 0px !important;
}

@translate-bg: rgba(255, 255, 255, 0.5) !important;
@translate-border: black !important;
@downicon-color:red;
@langicon-color:blue;
@translate-text-color:black;
@translate-font:sans-serif;

/* Hide Google Translate top bar */
.goog-te-banner-frame.skiptranslate {
    display: none !important;
}

body {
    top: 0px !important;
}

/* Hide Google branding bar spacing */
.skiptranslate iframe {
    display: none !important;
}

/* Optional: clean up */
.goog-te-gadget {
    font-size: 0 !important;
}

.goog-te-gadget .goog-te-combo {
    font-size: 14px !important;
}


/* activities grid */

@media screen and (max-width: 540px){
  .elementor-element.activities-grid {
    grid-template-columns: repeat(1, 1fr)!important;
    row-gap: 30px!important;
  }

  .elementor-element.activities-grid img {
    max-height: 450px;
  }
}


/* guest book */

@media screen and (max-width: 570px){

.guest-book-top-row, .guest-book-bottom-row {
  flex-wrap: wrap;
  }
}

/* contact form */

.ns-contact-form-property, .ns-contact-form-general {
  background-color: var(--colour-navy);
  color: var(--colour-cream);
  padding: 50px 40px;
  border-radius: 5px;
}

.ns-contact-form-property label,
.ns-contact-form-general label {
	display: block;
	margin-bottom: 24px;
}


.ns-contact-form-property input:not([type="submit"]),
.ns-contact-form-property textarea,
.ns-contact-form-general input:not([type="submit"]),
.ns-contact-form-general textarea {
	display: block;
	width: 100%;
	margin-top: 10px;
	border: 1px solid var(--colour-cream);
	border-radius: 5px;
	background: transparent;
	color: var(--colour-cream);
}

.ns-contact-form-property textarea,
.ns-contact-form-general textarea {
	min-height: 75px;
	resize: vertical;
}

.wpcf7 form.sent .wpcf7-response-output,
.wpcf7 form .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
  border: none;
  padding: 0;
}

/* contact form button */

input.wpcf7-form-control.wpcf7-submit.has-spinner {
  border: solid 1px var(--colour-cream);
  color: var(--colour-cream);
}

[type=button]:focus, [type=button]:hover, [type=submit]:focus, [type=submit]:hover, button:focus, button:hover {
  background-color: var(--colour-cream);
  color: var(--colour-navy)!important;
  text-decoration: none;
}

.wpcf7-not-valid-tip {
  margin-top: 5px;
}

@media screen and (max-width: 767px) {
  .ns-contact-form-property, .ns-contact-form-general {
    padding: 40px 25px!important;
  }
  
}

.piste-map-image img {
  aspect-ratio: 3/2;
}

.add-aspect-ratio .elementor-widget-image img {
  aspect-ratio: 3/2;
}


@media screen and (max-width: 767px){
  .add-aspect-ratio .elementor-widget-image img {
    aspect-ratio: 5/4;
  }
}

/* footer */

.northstar-footer__inner {
  padding: 60px;
}

.northstar-footer__main {
  display: flex;
  justify-content: space-between;
  align-items: start;
  margin-top: 80px;
  margin-bottom: 175px;
}

.northstar-footer__brand {
  width: 25%;
}

p.northstar-footer__description {
  margin-top: 30px;
}

.northstar-footer__menus {
  display: flex;
  justify-content: space-around;
  align-items: start;
  width: 45%;
  column-gap: 35px;
}

p#northstar-footer-heading {
  text-transform: uppercase;
}

footer ul {
  padding-left: 0;
}

ul#menu-sitemap-footer li {
  padding-bottom: 7px;
}

footer#site-footer {
  background-color: var(--colour-navy);
  color: var(--colour-cream);
}

h2#northstar-instagram-heading {
  color: var(--colour-cream);
  margin-bottom: 20px;
}


a.northstar-footer__logo img {
  height: 100%;
  width: auto;
  max-height: 75px;
   object-fit: contain;
}

.northstar-footer-word-image img {
  width: 100%;
}

.northstar-footer__divider {
  border-bottom: solid 1px var(--colour-cream);
  margin-top: 40px;
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .northstar-footer__menus {
    width: 55%;
    column-gap: 25px;
    justify-content: space-between;
  }
  
}

@media screen and (max-width: 767px){
  nav.northstar-footer__menu {
    width: 100%;
  }

  .northstar-footer__menus {
    width: 100%;
    justify-content: space-between;
    margin-top: 40px;
    flex-wrap: wrap;
    row-gap: 40px;
  }

  .northstar-footer__main {
    flex-wrap: wrap;
  }

  .northstar-footer__brand {
    width: 100%;
  }

  div#sbi_18161529667427574 {
    display: none!important;
  }

  .northstar-footer__main {
    margin-bottom: 60px;
  }

  .northstar-footer__inner {
    padding: 30px;
  }
  
  .northstar-footer__divider {
    margin-top: 20px;
  }

  .northstar-footer__main {
    margin-top: 40px;
  }

  div.sbi_item:last-child {
    display: none!important;
  }
}


footer ul li {
  padding-bottom: 5px;
}

/* new customisations for chalet page */

.chalet-layout-sidebar h3 {
  color: var(--colour-cream);
}

.chalet-layout-sidebar p, .chalet-layout-sidebar input.wpcf7-form-control.wpcf7-text {
  font-size: 14px;
}

.chalet-layout-sidebar .ns-contact-form-property textarea, .ns-contact-form-general textarea {
  max-height: 125px;
}


body.single-chalet #single-chalet-main .chalet-layout-sidebar {
  padding: 1.6rem!important;
}

section#single-chalet-main {
  padding: 140px 45px!important;
}

body.single-chalet #single-chalet-main .chalet-layout-sidebar {
  top: 60px!important;
}

.chalet-layout-location-top p, .chalet-layout-location-description p {
  font-size: 16px!important;
}

li.comment_message--commentUnorderedListItem--v-loK,  
  body.single-chalet #single-chalet-main .chalet-layout-pricing-availability .chalet-pricing-week {  font-size: 16px!important;
}

body.single-chalet #single-chalet-main .chalet-layout-pricing-availability .chalet-pricing-week {
  padding: 20px!important;
}

body.single-chalet #single-chalet-main .chalet-features p, body.single-chalet #single-chalet-main .chalet-features li, body.single-chalet #single-chalet-main .chalet-layout-location-top p, body.single-chalet #single-chalet-main .chalet-layout-location-top li, body.single-chalet #single-chalet-main .chalet-layout-location-description p, body.single-chalet #single-chalet-main .chalet-layout-location-description li, body.single-chalet #single-chalet-main .chalet-layout-additional-info p, body.single-chalet #single-chalet-main .chalet-layout-additional-info li {
  font-size: 16px!important;
}

body.single-chalet #single-chalet-main .chalet-pricing-availability-info,
body.single-chalet #single-chalet-main .chalet-layout-booking-info, 
body.single-chalet #single-chalet-main .chalet-layout-booking-info .chalet-layout-booking-info-inner {
  max-width: unset!important;
  width: 100%!important;
}

@media (max-width:991px){
  body.single-chalet #single-chalet-main .chalet-layout-sidebar {
    position: unset!important;
    overflow-y:unset!important;
    max-height: unset!important;
  }

  section#single-chalet-main {
    padding: 100px 25px!important;
  }
}

@media (max-width: 524px){
  body.single-chalet #single-chalet-main .chalet-layout-pricing-availability .chalet-pricing-availability-grid {
    gap: 15px!important;
  }
}


.chalet-pricing-week.is-booked {
  min-height: 136px;
}

@media (max-width: 424px){
  body.single-chalet #single-chalet-main .chalet-layout-pricing-availability .chalet-pricing-week {
    padding: 15px!important;
  }

  section#single-chalet-main {
    padding: 80px 15px!important
  }

  body.single-chalet #single-chalet-gallery .swiper-pagination {
    padding-left: 5px;
    padding-right: 5px;
  }
}


/* 404 page */

h1.h1-heading-404 {
  white-space: normal!important;
  font-size: 56px!important;
  color: var(--colour-cream);
}

@media screen and (max-width: 767px){
  h1.h1-heading-404 {
  font-size: 42px!important;
  padding-left: 0px!important;
}
}

@media screen and (max-width: 375px){
  h1.h1-heading-404 {
  font-size: 34px!important;
}

p.error-404__eyebrow { 
  font-size: 14px!important;
}
}

.error-404__hero {
	position: relative;
	display: flex;
	min-height: calc(100vh - 90px);
	overflow: hidden;
	background-image: url("https://northstarchalets.com/wp-content/uploads/2026/07/mountain-view-morzine.jpg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.error-404__hero::before {
	position: absolute;
	z-index: 0;
	inset: 0;
	background-color: rgba(0,0,0,0.5);
	content: "";
}

.error-404__container {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
}

.error-404__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding-block: 6rem;
}

p.error-404__eyebrow {
  color: var(--colour-cream);
  text-transform: uppercase;
}

@media screen and (max-width: 767.98px) {
	.error-404__hero {
		min-height: calc(100vh - 70px);
		background-position: 62% center;
	}
}










/**
 * Northstar Elementor button
 */

.elementor-widget-northstar_button a.northstar-btn {
	--color: #262c3c;
	--color-cream: #f5f0e8;
	--hover-text: #f5f0e8;
	--hover-background: #262c3c;

	display: inline-flex;
	align-items: center;
	justify-content: center;

    font-family: "Cousine", monospace;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.143;
	letter-spacing: 0.018rem;

	appearance: none;
	border: none;
	background: transparent;
	color: var(--color);
	
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	padding: 12px 40px;
	cursor: pointer;
	position: relative;
	isolation: isolate;
	transition:
		color 0.4s ease,
		transform 0.4s ease,
		letter-spacing 0.4s ease;
    white-space: nowrap;
}

.elementor-widget-northstar_button
a.northstar-btn.northstar-btn--on-dark {
	--color: #f5f0e8;
	--hover-text: #262c3c;
    background: var(--hover-text);
}

.northstar-btn__shape {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: block;
	overflow: visible;
	pointer-events: none;
}

.northstar-btn__path {
	fill: none;
	stroke: var(--color, currentColor);
	stroke-width: 1px;
	vector-effect: non-scaling-stroke;
	transition: fill 0.4s ease;
}

.northstar-btn__label {
	position: relative;
	z-index: 1;
}

.elementor-widget-northstar_button a.northstar-btn:hover,
.elementor-widget-northstar_button a.northstar-btn:focus-visible {
	color: var(--hover-text)!important;
}

.elementor-widget-northstar_button a.northstar-btn:hover .northstar-btn__path,
.elementor-widget-northstar_button a.northstar-btn:focus-visible .northstar-btn__path {
	fill: var(--color);
}

.elementor-widget-northstar_button a.northstar-btn:focus-visible {
	outline: 2px solid var(--color);
	outline-offset: 4px;
}

@supports (corner-shape: scoop) {
	.elementor-widget-northstar_button a.northstar-btn {
		border: 1px solid var(--color);
		border-radius: 9px;
		corner-shape: scoop;
		transition:
			color 0.4s ease,
			background-color 0.4s ease,
			transform 0.4s ease,
			letter-spacing 0.4s ease;
	}

	.northstar-btn__shape {
		display: none;
	}

	.elementor-widget-northstar_button a.northstar-btn:hover,
	.elementor-widget-northstar_button a.northstar-btn:focus-visible {
		background-color: var(--color);
	}
}

@supports not (corner-shape: scoop) {
	.elementor-widget-northstar_button a.northstar-btn {
		border: 1px solid transparent;
	}

	.elementor-widget-northstar_button a.northstar-btn::before,
	.elementor-widget-northstar_button a.northstar-btn::after {
		content: "";
		position: absolute;
		inset: -1px;
		z-index: 0;
		pointer-events: none;
	}

	.elementor-widget-northstar_button a.northstar-btn::before {
		background:
			linear-gradient(var(--color), var(--color)) top / calc(100% - 18px) 1px no-repeat,
			linear-gradient(var(--color), var(--color)) bottom / calc(100% - 18px) 1px no-repeat,
			linear-gradient(var(--color), var(--color)) left / 1px calc(100% - 18px) no-repeat,
			linear-gradient(var(--color), var(--color)) right / 1px calc(100% - 18px) no-repeat,
			radial-gradient(circle at 0 0, transparent 8px, var(--color) 8px, var(--color) 9px, transparent 9.5px) 0 0 / 9px 9px no-repeat,
			radial-gradient(circle at 100% 0, transparent 8px, var(--color) 8px, var(--color) 9px, transparent 9.5px) 100% 0 / 9px 9px no-repeat,
			radial-gradient(circle at 100% 100%, transparent 8px, var(--color) 8px, var(--color) 9px, transparent 9.5px) 100% 100% / 9px 9px no-repeat,
			radial-gradient(circle at 0 100%, transparent 8px, var(--color) 8px, var(--color) 9px, transparent 9.5px) 0 100% / 9px 9px no-repeat;
	}

	.elementor-widget-northstar_button a.northstar-btn::after {
		background: var(--color);
		opacity: 0;
		transition: opacity 0.4s ease;
		-webkit-mask-image:
			radial-gradient(circle at 0 0, transparent 9px, #000 9.5px),
			radial-gradient(circle at 100% 0, transparent 9px, #000 9.5px),
			radial-gradient(circle at 100% 100%, transparent 9px, #000 9.5px),
			radial-gradient(circle at 0 100%, transparent 9px, #000 9.5px);
		-webkit-mask-size: 51% 51%;
		-webkit-mask-position: 0 0, 100% 0, 100% 100%, 0 100%;
		-webkit-mask-repeat: no-repeat;
		mask-image:
			radial-gradient(circle at 0 0, transparent 9px, #000 9.5px),
			radial-gradient(circle at 100% 0, transparent 9px, #000 9.5px),
			radial-gradient(circle at 100% 100%, transparent 9px, #000 9.5px),
			radial-gradient(circle at 0 100%, transparent 9px, #000 9.5px);
		mask-size: 51% 51%;
		mask-position: 0 0, 100% 0, 100% 100%, 0 100%;
		mask-repeat: no-repeat;
	}

	.elementor-widget-northstar_button a.northstar-btn:hover::after,
	.elementor-widget-northstar_button a.northstar-btn:focus-visible::after {
		opacity: 1;
	}

	.northstar-btn__shape {
		display: none;
	}
}

@media (max-width: 424px){
	.elementor-widget-northstar_button a.northstar-btn {
		padding-left: 25px;
		padding-right: 25px;
	}
}

@supports (corner-shape: scoop) {
    .elementor-widget-northstar_button a.northstar-btn.northstar-btn--on-image{
		border: solid 1px var(--color-cream);
		color: var(--color-cream)!important;
	}

	@supports (corner-shape: scoop) {
    .elementor-widget-northstar_button a.northstar-btn.northstar-btn--on-image:hover, .elementor-widget-northstar_button a.northstar-btn.northstar-btn--on-image:focus-visible {
		border-color: var(--hover-background);
	}


  @media screen and (max-width: 767px){
  article.chalet-card {
    margin-bottom: 60px;
  }
  }


  /* google translate */

  .gt_switcher_wrapper .gt_selector {
  color: var(--colour-navy) !important;
  border-color: var(--colour-navy) !important;
  transition:
    color 0.25s ease,
    border-color 0.25s ease;
}

.gt_switcher_wrapper.gt-switcher--on-image .gt_selector {
  color: var(--colour-cream) !important;
  border-color: var(--colour-cream) !important;
}

/* our chalets section */

.our-chalet-collection--large-image-rows article.chalet-card h3 {
  font-size: 32px!important;
}

article.chalet-card--alternative .chalet-card__sleeps {
  font-size: 16px!important;
}

@media screen and (min-width: 767px) and (max-width: 992px){

    article.chalet-card--alternative {
      align-items: stretch!important;
    }

    article.chalet-card--alternative .chalet-card__content {
      padding: 30px 40px!important;
    }

    .chalet-card__image, .chalet-card__image img {
      width: 100%!important;
      height: 100%!important;
    }
}

@media screen and (max-width: 767px){
  .our-chalet-collection .our-chalet-collection__filters {
    margin-bottom: 80px!important;
  }
  .our-chalet-collection--large-image-rows article.chalet-card h3 {
      font-size: 28px!important;
      margin-bottom: 20px!important;
    }

    .our-chalet-collection.our-chalet-collection--large-image-rows .our-chalet-collection__results {
      gap: 40px!important;
    }
    
    body.single-chalet #single-chalet-hero {
      height: 65vh!important;
    }
}

@media screen and (max-width: 424px) {
          article.chalet-card {
              margin-bottom: 30px!important;
        }}

      
section#single-chalet-related-chalets  article.chalet-card h3 {
  font-size: 24px!important;
  margin: 0 0 15px!important;
}


/* french translationse editing */

/* our chalet page */

body:not(.home)body:lang(FR) h1 {
  font-size: min(6vw, 7rem) !important;
}

 body:lang(FR) h1.northstar-blog-post-title {
  text-transform: none;
    font-size: 48px !important;
    text-align: center !important;
    max-width: 750px;
    white-space: normal !important;
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
    margin-bottom: 30px;
 }

 @media (max-width: 1024px){
  body:lang(FR) h1.northstar-blog-post-title {
    max-width: 450px;
        font-size: 32px !important;
  }
 }

@media (max-width: 767px){
  body:not(.home)body:lang(FR) h1 {
    font-size: clamp(3rem, 9vw, 4.5rem) !important;
        white-space: normal !important;
        line-height: 0.9;
        padding: 0 0 10px 5px;
  }

  body.privacy-policy h1 {
    font-size: 2rem!important;
  }
}

@media (max-width: 424px){
  span.northstar-btn__label {
    white-space: normal!important;
  }
}

.no-border-left {
  border-radius: 0 5px 5px 0!important;
}

.no-border-right {
  border-radius: 5px 0 0 5px!important;
}

.elementor-widget-our_chalet_collection {

}

@media (min-width: 767px){
  body:lang(FR).single-chalet #single-chalet-main .chalet-features .chalet-features-list li {
    white-space: normal!important;
    max-width: 200px!important;
}}

@media (max-width: 767px){
body:lang(FR).single-chalet #single-chalet-main .chalet-features .chalet-features-list li {
    white-space: normal!important;
    max-width: 250px!important;
}
}




@media (max-width: 560px){
body:lang(FR).single-chalet #single-chalet-main .chalet-features .chalet-features-list li {
    white-space: normal!important;
    max-width: unset!important;
}
}

@media (max-width: 375px){
body:lang(FR).single-chalet #single-chalet-main .chalet-features .chalet-features-list li {
    white-space: normal!important;
    max-width: 250px!important;
}
}