/* ==========================================================================
   Wild Spaces Core — widget styles
   Breakpoints (match Elementor Site Settings):
     desktop  > 1600px   values from the 1920 Figma frames
     laptop   ≤ 1600px   values from the 1440 Figma frames (exactly 0.75 × desktop)
     tablet   ≤ 1300px   no Figma frame — values set between laptop and mobile
     mobile   ≤ 900px    values from the 402 Figma frames
   ========================================================================== */

:root {
	--ws-green: #485725;
	--ws-forest: #393e34;
	--ws-gold: #c78a2d;
	--ws-gold-dark: #ae722e;
	--ws-marigold: #eca020;
	--ws-cream: #f9f1cf;
	--ws-ink: #151515;
	--ws-frontera: 'ST Camino Frontera', 'Patrick Hand SC', sans-serif;
	--ws-billy: 'Billy', 'Jost', sans-serif;
	--ws-poppins: 'Poppins', sans-serif;
	--ws-baskerville: 'Libre Baskerville', serif;
	--ws-glass-blur: 14px;
	/* Figma GLASS effect draws a soft light rim */
	--ws-glass-edge: inset 0 1px 0 rgba(255, 255, 255, .35), inset 0 -1px 0 rgba(255, 255, 255, .2), inset 1px 0 0 rgba(255, 255, 255, .2), inset -1px 0 0 rgba(255, 255, 255, .2);
}

html.ws-menu-open,
html.ws-menu-open body { overflow: hidden; }

body.ws-site { margin: 0; overflow-x: hidden; }
.ws-site .site-main,
.ws-site .page-content,
.ws-site #content { margin: 0; padding: 0; max-width: none; }

.ws-icon { display: inline-flex; line-height: 0; }
.ws-icon svg { width: 100%; height: 100%; display: block; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important;
	width: 1px; word-wrap: normal !important;
}

/* Elementor kit resets that would fight the Figma values */
.ws-site .elementor-widget-heading .elementor-heading-title { margin: 0; }
.ws-site .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.ws-site .elementor-widget-text-editor p { margin-top: 0; margin-bottom: 1lh; }

/* ==========================================================================
   Header (overlays the page banner)
   ========================================================================== */
.ws-site-header { position: absolute; top: 0; left: 0; right: 0; z-index: 100; }
.admin-bar .ws-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ws-site-header { top: 46px; } }

.ws-header {
	--bar-mt: 26px; --bar-mx: 0px; --bar-h: 119px; --bar-px: 80px;
	--logo-w: 225px; --logo-h: 119px;
	--nav-gap: 40px; --nav-size: 20px; --nav-lh: 25px; --right-gap: 57px;
	--cta-py: 19px; --cta-px: 30px; --cta-size: 20px; --cta-lh: 25px;
}
.ws-header__bar {
	margin: var(--bar-mt) var(--bar-mx) 0;
	min-height: var(--bar-h);
	padding: 0 var(--bar-px);
	box-sizing: border-box;
	display: flex; align-items: center; justify-content: space-between;
	background: rgba(255, 255, 255, .10);
	-webkit-backdrop-filter: blur(var(--ws-glass-blur)); backdrop-filter: blur(var(--ws-glass-blur));
	box-shadow: var(--ws-glass-edge);
}
.ws-header__logo { display: block; flex: 0 0 auto; line-height: 0; }
.ws-header .ws-header__logo-img { width: var(--logo-w); height: var(--logo-h); object-fit: fill; display: block; }
.ws-header__right { display: flex; align-items: center; gap: var(--right-gap); }
.ws-header__nav { display: flex; align-items: center; gap: var(--nav-gap); }
.ws-header__link {
	font-family: var(--ws-baskerville); font-size: var(--nav-size); line-height: var(--nav-lh);
	color: #fff; text-decoration: none; white-space: nowrap; transition: opacity .2s;
}
.ws-header__link:hover, .ws-header__link:focus-visible { opacity: .75; color: #fff; }
.ws-header__link.is-current { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
.ws-header__cta {
	display: inline-flex; align-items: center; justify-content: center;
	padding: var(--cta-py) var(--cta-px); border-radius: 100px;
	background: var(--ws-marigold); color: #faf7f2; text-decoration: none; white-space: nowrap;
	font-family: var(--ws-baskerville); font-size: var(--cta-size); line-height: var(--cta-lh);
	transition: background-color .2s;
}
.ws-header__cta:hover, .ws-header__cta:focus-visible { background: var(--ws-gold); color: #faf7f2; }
.ws-header__toggle {
	display: none; padding: 0; margin: 0; border: 0; background: none; cursor: pointer; color: #fff;
	width: var(--toggle-w, 25px); height: var(--toggle-h, 37px);
}
.ws-header__toggle:hover, .ws-header__toggle:focus { background: none; }

.ws-header__panel {
	position: fixed; inset: 0; z-index: 1000; background: var(--ws-green);
	display: flex; flex-direction: column; align-items: flex-start; justify-content: center;
	gap: 40px; padding: 90px 32px 48px; overflow-y: auto; box-sizing: border-box;
}
.ws-header__panel[hidden] { display: none; }
.ws-header__panel-nav { display: flex; flex-direction: column; gap: 22px; }
.ws-header__panel-nav .ws-header__link { font-size: 26px; line-height: 32px; }
.ws-header__close {
	position: absolute; top: 24px; right: 24px; width: 44px; height: 44px; padding: 0;
	border: 0; background: none; cursor: pointer;
}
.ws-header__close span { position: absolute; left: 8px; right: 8px; top: 21px; height: 2px; background: #fff; }
.ws-header__close span:first-child { transform: rotate(45deg); }
.ws-header__close span:last-child { transform: rotate(-45deg); }
.ws-header__close:hover, .ws-header__close:focus { background: none; }

@media (max-width: 1600px) {
	.ws-header {
		--bar-mt: 19.5px; --bar-h: 89px; --bar-px: 60px; --logo-w: 169px; --logo-h: 89px;
		--nav-gap: 30px; --nav-size: 15px; --nav-lh: 19px; --right-gap: 43px;
		--cta-py: 14px; --cta-px: 22.5px; --cta-size: 15px; --cta-lh: 19px;
	}
}
@media (max-width: 1300px) {
	.ws-header {
		--bar-mt: 14px; --bar-mx: 14px; --bar-h: 72px; --bar-px: 18px; --logo-w: 136px; --logo-h: 72px;
		--right-gap: 26px; --cta-py: 13px; --cta-px: 26px; --cta-size: 15px; --cta-lh: 18px;
		--toggle-w: 30px; --toggle-h: 44px;
	}
	.ws-header__nav { display: none; }
	.ws-header__toggle { display: block; }
}
@media (max-width: 900px) {
	.ws-header {
		--bar-mt: 10px; --bar-mx: 9px; --bar-h: 58px; --bar-px: 11px; --logo-w: 107px; --logo-h: 56px;
		--right-gap: 20px; --cta-py: 12px; --cta-px: 22.5px; --cta-size: 13px; --cta-lh: 16px;
		--toggle-w: 25px; --toggle-h: 37px;
	}
	.ws-header__panel-nav .ws-header__link { font-size: 22px; line-height: 28px; }
}
@media (max-width: 380px) {
	.ws-header { --right-gap: 12px; --cta-px: 14px; --logo-w: 96px; --logo-h: 50px; }
}

/* ==========================================================================
   Carousel navigation
   ========================================================================== */
.ws-nav { display: none; }
.ws-has-nav .ws-nav { display: flex; }
.ws-nav__btn {
	display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
	padding: 0; margin: 0; border: 0; cursor: pointer; background: #fff; line-height: 0;
	transition: opacity .2s, transform .2s;
}
.ws-nav__btn:hover, .ws-nav__btn:focus { background: #fff; }
.ws-nav__btn:disabled { cursor: default; }

/* progress variant */
.ws-nav--progress {
	--nav-mt: 74.67px; --track-h: 15px; --bar-h: 8px; --bar-inset: 3px; --track-gap: 160px;
	--arrow: 75px; --arrow-icon: 32px; --arrow-gap: 21.33px;
	margin-top: var(--nav-mt); align-items: center; gap: var(--track-gap);
}
.ws-nav__track {
	flex: 1 1 auto; position: relative; height: var(--track-h); border-radius: 64px;
	background: #fff3e0; overflow: hidden;
}
.ws-nav__bar {
	position: absolute; top: var(--bar-inset); left: var(--bar-inset); height: var(--bar-h);
	max-width: calc(100% - 2 * var(--bar-inset)); border-radius: 25px; background: var(--ws-gold);
	transition: width .5s ease;
}
.ws-nav__arrows { display: flex; gap: var(--arrow-gap); }
.ws-nav--progress .ws-nav__btn { width: var(--arrow); height: var(--arrow); border-radius: 50%; border: 1px solid var(--ws-gold); box-sizing: border-box; }
.ws-nav--progress .ws-nav__btn .ws-icon { width: var(--arrow-icon); height: var(--arrow-icon); }

/* dots variant */
.ws-nav--dots {
	--nav-mt: 28px; --arrow-w: 51px; --arrow-h: 50px; --dot: 12px; --dot-gap: 19px; --side-gap: 31px;
	margin-top: var(--nav-mt); justify-content: center; align-items: center; gap: var(--side-gap);
}
.ws-nav--dots .ws-nav__btn { width: var(--arrow-w); height: var(--arrow-h); background: none; border-radius: 50%; }
.ws-nav--dots .ws-nav__btn:hover, .ws-nav--dots .ws-nav__btn:focus { background: none; }
.ws-nav--dots .ws-nav__btn .ws-icon { width: 100%; height: 100%; }
.ws-nav__dots { display: flex; gap: var(--dot-gap); }
.ws-nav__dot {
	width: var(--dot); height: var(--dot); padding: 0; border: 0; border-radius: 50%;
	background: var(--ws-green); opacity: .6; cursor: pointer;
}
.ws-nav__dot:hover, .ws-nav__dot:focus { background: var(--ws-green); }
.ws-nav__dot.is-active { opacity: 1; }

@media (max-width: 1600px) {
	.ws-nav--progress { --nav-mt: 56px; --track-h: 11.25px; --bar-h: 6px; --bar-inset: 2.25px; --track-gap: 120px; --arrow: 56px; --arrow-icon: 24px; --arrow-gap: 16px; }
	.ws-nav--dots { --nav-mt: 21px; --arrow-w: 38px; --arrow-h: 37.5px; --dot: 9px; --dot-gap: 14px; --side-gap: 23px; }
}
@media (max-width: 1300px) {
	.ws-nav--progress { --nav-mt: 40px; --track-h: 10px; --bar-h: 6px; --bar-inset: 2px; --track-gap: 60px; --arrow: 44px; --arrow-icon: 18px; --arrow-gap: 12px; }
	.ws-nav--dots { --nav-mt: 20px; --arrow-w: 32px; --arrow-h: 31px; --dot: 7px; --dot-gap: 10px; --side-gap: 18px; }
}
@media (max-width: 900px) {
	.ws-nav--progress { --nav-mt: 30px; --track-h: 8px; --bar-h: 6px; --bar-inset: 1px; --track-gap: 39px; --arrow: 29px; --arrow-icon: 12px; --arrow-gap: 8.25px; }
	.ws-nav--dots { --nav-mt: 20px; --arrow-w: 23px; --arrow-h: 22px; --dot: 5px; --dot-gap: 9px; --side-gap: 13px; }
}

/* ==========================================================================
   Card carousels
   ========================================================================== */
.ws-cards { --ws-gap: 32px; --ws-offset: 0px; }
.ws-cards .swiper { overflow: hidden; }
.ws-cards .swiper-slide { height: auto; }
.ws-card { display: block; position: relative; text-decoration: none; color: inherit; box-sizing: border-box; }
a.ws-card:hover .ws-card__img, .ws-cards a.ws-card:hover .ws-card__img { transform: scale(1.03); }
.ws-cards .ws-card__img { display: block; max-width: none; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }

/* glass caption cards */
.ws-cards--glass {
	--card-h: 592px; --card-r: 21.33px; --cap-inset: 21.67px; --cap-h: 166px; --cap-r: 32px; --cap-px: 32px; --cap-gap: 13px;
	--t-size: 45px; --t-lh: 52px; --p-size: 18px; --p-lh: 28px;
}
.ws-cards--glass .ws-card { height: var(--card-h); border-radius: var(--card-r); overflow: hidden; isolation: isolate; }
.ws-cards--glass .ws-card .ws-card__img { position: absolute; inset: 0; width: 100%; height: 100%; }
.ws-card__shade {
	position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 60.3%, rgba(0, 0, 0, .4) 74.49%, rgba(0, 0, 0, .4) 100%);
}
.ws-card__caption {
	position: absolute; left: var(--cap-inset); right: var(--cap-inset); bottom: var(--cap-inset);
	min-height: var(--cap-h); box-sizing: border-box; padding: 18px var(--cap-px);
	display: flex; flex-direction: column; justify-content: center; gap: var(--cap-gap);
	border-radius: var(--cap-r); background: rgba(255, 255, 255, .10);
	-webkit-backdrop-filter: blur(var(--ws-glass-blur)); backdrop-filter: blur(var(--ws-glass-blur));
	box-shadow: var(--ws-glass-edge);
}
.ws-cards--glass .ws-card__title {
	margin: 0; font-family: var(--ws-frontera); font-weight: 400; font-size: var(--t-size); line-height: var(--t-lh); color: var(--ws-cream);
}
.ws-cards--glass .ws-card__text { margin: 0; font-family: var(--ws-poppins); font-size: var(--p-size); line-height: var(--p-lh); color: var(--ws-cream); }

/* event cards */
.ws-cards--event {
	--card-r: 26.67px; --card-p: 13.33px; --img-h: 305px; --img-r: 13.33px; --body-p: 18.67px; --body-gap: 21.34px; --head-gap: 10.67px;
	--d-size: 18.67px; --d-lh: 29px; --t-size: 30px; --t-lh: 34px; --p-size: 18px; --p-lh: 28px;
}
.ws-cards--event .ws-nav__track { background: #fff; }
.ws-cards--event .ws-nav--progress .ws-nav__btn { border: 0; }
.ws-cards--event .ws-card {
	height: 100%; background: #fff; border-radius: var(--card-r); padding: var(--card-p);
	display: flex; flex-direction: column;
}
.ws-cards--event .ws-card__media { height: var(--img-h); border-radius: var(--img-r); overflow: hidden; flex: 0 0 auto; }
.ws-cards--event .ws-card__body { padding: var(--body-p); display: flex; flex-direction: column; gap: var(--body-gap); }
.ws-cards--event .ws-card__head { display: flex; flex-direction: column; gap: var(--head-gap); }
.ws-card__date { font-family: var(--ws-poppins); font-weight: 500; font-size: var(--d-size); line-height: var(--d-lh); color: rgba(21, 21, 21, .4); }
.ws-cards--event .ws-card__title { margin: 0; font-family: var(--ws-poppins); font-weight: 500; font-size: var(--t-size); line-height: var(--t-lh); color: var(--ws-ink); }
.ws-cards--event .ws-card__text { margin: 0; font-family: var(--ws-poppins); font-size: var(--p-size); line-height: var(--p-lh); color: #444; }

@media (max-width: 1600px) {
	.ws-cards { --ws-gap: 24px; }
	.ws-cards--glass { --card-h: 444px; --card-r: 16px; --cap-inset: 16.25px; --cap-h: 124.5px; --cap-r: 24px; --cap-px: 24px; --cap-gap: 9.75px; --t-size: 33.75px; --t-lh: 39px; --p-size: 13.5px; --p-lh: 21px; }
	.ws-cards--event { --card-r: 20px; --card-p: 10px; --img-h: 228.75px; --img-r: 10px; --body-p: 14px; --body-gap: 16px; --head-gap: 8px; --d-size: 14px; --d-lh: 21.75px; --t-size: 22.5px; --t-lh: 25.5px; --p-size: 13.5px; --p-lh: 21px; }
}
@media (max-width: 1300px) {
	.ws-cards { --ws-gap: 20px; }
	.ws-cards--glass { --card-h: 430px; --card-r: 16px; --cap-inset: 16px; --cap-h: 112px; --cap-r: 23px; --cap-px: 23px; --cap-gap: 9px; --t-size: 30px; --t-lh: 35px; --p-size: 14px; --p-lh: 22px; }
	.ws-cards--event { --card-r: 19.36px; --card-p: 9.68px; --img-h: 250px; --img-r: 9.68px; --body-p: 16px 14px 14px; --body-gap: 15px; --head-gap: 8px; --d-size: 14px; --d-lh: 22px; --t-size: 22px; --t-lh: 26px; --p-size: 14px; --p-lh: 21px; }
}
@media (max-width: 900px) {
	.ws-cards { --ws-gap: 15px; }
	.ws-cards--glass { --card-h: 408px; --card-r: 15.49px; --cap-inset: 16px; --cap-h: 106px; --cap-r: 23.23px; --cap-px: 23px; --cap-gap: 9.44px; --t-size: 26px; --t-lh: 30px; --p-size: 13px; --p-lh: 20px; }
	.ws-cards--event { --card-r: 19.36px; --card-p: 9.68px; --img-h: 222px; --img-r: 9.68px; --body-p: 19px 13.55px 13.55px; --body-gap: 15.49px; --head-gap: 7.74px; --d-size: 13px; --d-lh: 21px; --t-size: 20px; --t-lh: 23px; --p-size: 13px; --p-lh: 20px; }
	.ws-cards--event .ws-nav--progress { --nav-mt: 18px; }
}

/* ==========================================================================
   Beer carousel
   ========================================================================== */
.ws-beers {
	--ws-gap: 26px; --ws-offset: 114px; --slide-w: 506px; --slide-h: 410px;
	--card-top: 79px; --card-h: 255px; --card-r: 11.44px; --body-pad: 48px 51px 48px 188px; --body-w: 267px; --body-gap: 20px; --head-gap: 7px;
	--bottle-l: 31px; --bottle-t: 4px; --bottle-w: 122px; --bottle-h: 406px; --label: 131px; --label-l: -2px; --label-t: 226px;
	--s-size: 17px; --s-lh: 26px; --n-size: 30px; --n-lh: 35px; --n-w: 222px; --p-size: 14px; --p-lh: 22px;
}
.ws-beers .swiper { overflow: hidden; }
.ws-beers .swiper-slide { width: var(--slide-w); }
.ws-beer { display: block; position: relative; height: var(--slide-h); text-decoration: none; color: inherit; }
.ws-beer__card {
	position: absolute; left: 0; right: 0; top: var(--card-top); height: var(--card-h);
	background: var(--ws-cream); border-radius: var(--card-r);
}
.ws-beer__body {
	box-sizing: border-box; height: 100%; padding: var(--body-pad);
	display: flex; flex-direction: column; justify-content: center; gap: var(--body-gap);
}
.ws-beer__body > * { max-width: var(--body-w); }
.ws-beer__head { display: flex; flex-direction: column; gap: var(--head-gap); }
.ws-beer__style { font-family: var(--ws-poppins); font-style: italic; font-size: var(--s-size); line-height: var(--s-lh); color: var(--ws-gold); }
.ws-beer__name { margin: 0; max-width: var(--n-w); font-family: var(--ws-frontera); font-weight: 400; font-size: var(--n-size); line-height: var(--n-lh); color: var(--ws-forest); }
.ws-beer__text { margin: 0; font-family: var(--ws-poppins); font-size: var(--p-size); line-height: var(--p-lh); color: #9e845c; }
.ws-beer__bottle { position: absolute; z-index: 2; left: var(--bottle-l); top: var(--bottle-t); width: var(--bottle-w); height: var(--bottle-h); }
.ws-beer .ws-beer__bottle-img { max-width: none; display: block; width: 100%; height: 100%; object-fit: fill; }
.ws-beer .ws-beer__label { max-width: none; position: absolute; left: var(--label-l); top: var(--label-t); width: var(--label); height: var(--label); object-fit: cover; }

@media (max-width: 1600px) {
	.ws-beers {
		--ws-gap: 19.5px; --ws-offset: 85.5px; --slide-w: 379.5px; --slide-h: 307.5px;
		--card-top: 59.25px; --card-h: 191.25px; --card-r: 8.58px; --body-pad: 36px 38.25px 36px 141px; --body-w: 200px; --body-gap: 15px; --head-gap: 5.25px;
		--bottle-l: 23.25px; --bottle-t: 3px; --bottle-w: 91.5px; --bottle-h: 304.5px; --label: 98.25px; --label-l: -1.5px; --label-t: 169.5px;
		--s-size: 12.75px; --s-lh: 19.5px; --n-size: 22.5px; --n-lh: 26.25px; --n-w: 166.5px; --p-size: 10.5px; --p-lh: 16.5px;
	}
}
@media (max-width: 1300px) {
	.ws-beers { --ws-offset: 40px; }
}
@media (max-width: 900px) {
	.ws-beers { --ws-gap: 15px; --ws-offset: 0px; }
	.ws-beers .swiper-slide { width: 100%; }
	.ws-beers .ws-beer { width: 380px; max-width: 100%; margin: 0 auto; height: 308px; }
	.ws-beers {
		--card-top: 59px; --card-h: 191px; --card-r: 8.58px; --body-pad: 36px 38.25px 36px 141px; --body-w: 200px; --body-gap: 15px; --head-gap: 5.25px;
		--bottle-l: 23px; --bottle-t: 3px; --bottle-w: 91px; --bottle-h: 305px; --label: 98px; --label-l: -2px; --label-t: 169px;
		--s-size: 12.75px; --s-lh: 19px; --n-size: 22.5px; --n-lh: 26px; --n-w: 166px; --p-size: 10.5px; --p-lh: 16px;
	}
}

/* ==========================================================================
   Reviews
   ========================================================================== */
.ws-reviews {
	--ws-gap: 40px; --card-r: 26.66px; --card-p: 50px 43px; --gap: 29px; --avatar: 71px; --avatar-r: 8px; --avatar-size: 26px;
	--num-size: 18.66px; --num-lh: 30px; --star: 27px; --star-gap: 5.33px; --title-gap: 16px;
	--p-size: 21.33px; --p-lh: 34px; --n-size: 24px; --n-lh: 38px; --line: 1.33px;
}
.ws-reviews .swiper { overflow: hidden; }
.ws-reviews .swiper-slide { height: auto; }
.ws-review {
	height: 100%; box-sizing: border-box; padding: var(--card-p); border-radius: var(--card-r); background: var(--ws-cream);
	display: flex; flex-direction: column; gap: var(--gap);
}
.ws-review__top { display: flex; justify-content: space-between; align-items: flex-start; }
.ws-review__avatar {
	width: var(--avatar); height: var(--avatar); border-radius: var(--avatar-r); background: var(--ws-gold);
	display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--ws-poppins); font-weight: 700; font-size: var(--avatar-size); color: #fff;
}
.ws-review__num { font-family: 'DM Sans', sans-serif; font-size: var(--num-size); line-height: var(--num-lh); color: #98a393; }
.ws-review__stars { display: flex; gap: var(--star-gap); margin-bottom: calc(var(--title-gap) - var(--gap)); }
.ws-review__star { width: var(--star); height: var(--star); }
.ws-review__text { margin: 0; font-family: var(--ws-poppins); font-size: var(--p-size); line-height: var(--p-lh); color: #585858; flex: 1 1 auto; }
.ws-review__line { margin: 0; border: 0; border-top: var(--line) solid #c3c3c3; }
.ws-review__name { margin: 0; font-family: var(--ws-poppins); font-weight: 600; font-size: var(--n-size); line-height: var(--n-lh); color: #000; }
.ws-reviews .ws-nav--dots { --nav-mt: 30px; }

@media (max-width: 1600px) {
	.ws-reviews { --ws-gap: 30px; --card-r: 20px; --card-p: 37.5px 32.25px; --gap: 21.75px; --avatar: 53.25px; --avatar-r: 6px; --avatar-size: 19.5px; --num-size: 14px; --num-lh: 22.5px; --star: 20.25px; --star-gap: 4px; --title-gap: 12px; --p-size: 16px; --p-lh: 25.5px; --n-size: 18px; --n-lh: 28.5px; --line: 1px; }
}
@media (max-width: 1300px) {
	.ws-reviews { --ws-gap: 20px; --card-r: 19px; --card-p: 34px 30px; --gap: 20.75px; --avatar: 51px; --avatar-r: 5.72px; --avatar-size: 18.6px; --num-size: 13.35px; --num-lh: 21px; --star: 19px; --star-gap: 3.81px; --title-gap: 11.44px; --p-size: 15.26px; --p-lh: 24px; --n-size: 17.17px; --n-lh: 27px; --line: 1px; }
}
@media (max-width: 900px) {
	.ws-reviews { --ws-gap: 15px; --card-r: 19.07px; --card-p: 36px 30.76px; }
}

/* ==========================================================================
   FAQ
   ========================================================================== */
.ws-faq {
	--gap: 21.33px; --r: 16px; --pad: 30px 21px 30px 42px; --pad-open: 38px 21px 38px 42px; --head-gap: 14px; --icon: 43px;
	--q-size: 30px; --q-lh: 34px; --a-size: 21.34px; --a-lh: 32px; --a-max: 1500px;
	--q-color: #fff; --a-color: #fff; --open-bg: rgba(249, 241, 207, .2); --line-color: rgba(255, 255, 255, .1); --icon-color: #fff; --closed-border: rgba(255, 255, 255, .4);
	display: flex; flex-direction: column; gap: var(--gap);
}
.ws-faq--light { --q-color: #3d3d3d; --a-color: #797979; --open-bg: #fffcee; --line-color: rgba(0, 0, 0, .1); --icon-color: #3d3d3d; --closed-border: #dbdada; }
.ws-faq__item { border-radius: var(--r); padding: var(--pad); border: 1px solid var(--closed-border); transition: background-color .25s, border-color .25s; }
.ws-faq__item.is-open {
	padding: var(--pad-open); background: var(--open-bg); border-color: transparent;
	-webkit-backdrop-filter: blur(var(--ws-glass-blur)); backdrop-filter: blur(var(--ws-glass-blur));
}
.ws-faq__head {
	width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 32px;
	padding: 0; margin: 0; border: 0; background: none; cursor: pointer; text-align: left; color: var(--q-color);
	font: inherit; text-transform: none; letter-spacing: 0; white-space: normal;
}
.ws-faq__head:hover, .ws-faq__head:focus { background: none; color: var(--q-color); }
.ws-faq__q { font-family: var(--ws-poppins); font-weight: 500; font-size: var(--q-size); line-height: var(--q-lh); color: var(--q-color); }
.ws-faq__icon { flex: 0 0 auto; width: var(--icon); height: var(--icon); color: var(--icon-color); position: relative; }
.ws-faq__icon .ws-icon { position: absolute; inset: 0; }
.ws-faq__icon svg path, .ws-faq__icon svg line { stroke: var(--icon-color); }
.ws-faq__minus { display: none !important; }
.ws-faq__item.is-open .ws-faq__plus { display: none !important; }
.ws-faq__item.is-open .ws-faq__minus { display: inline-flex !important; }
.ws-faq__panel { margin-top: var(--head-gap); padding-top: var(--head-gap); border-top: 1px solid var(--line-color); }
.ws-faq__a { max-width: var(--a-max); font-family: var(--ws-poppins); font-size: var(--a-size); line-height: var(--a-lh); color: var(--a-color); }
.ws-faq__a p { margin: 0 0 .6em; }
.ws-faq__a p:last-child { margin: 0; }

@media (max-width: 1600px) {
	.ws-faq { --gap: 16px; --r: 12px; --pad: 22.5px 15.75px 22.5px 31.5px; --pad-open: 28.5px 15.75px 28.5px 31.5px; --head-gap: 10.5px; --icon: 32.25px; --q-size: 22.5px; --q-lh: 25.5px; --a-size: 16px; --a-lh: 24px; --a-max: 1125px; }
}
@media (max-width: 1300px) {
	.ws-faq { --gap: 16px; --r: 12px; --pad: 20px 16px 20px 26px; --pad-open: 26px 16px 26px 26px; --head-gap: 10.5px; --icon: 32px; --q-size: 19px; --q-lh: 23px; --a-size: 14.5px; --a-lh: 24px; }
}
@media (max-width: 900px) {
	.ws-faq { --gap: 16px; --r: 12px; --pad: 20px 16px 20px 26px; --pad-open: 28px 16px 28px 26px; --head-gap: 10.5px; --icon: 32px; --q-size: 16px; --q-lh: 18px; --a-size: 13px; --a-lh: 24px; }
	.ws-faq__head { gap: 8px; }
}

/* ==========================================================================
   Visit info (location / phone / email / hours)
   ========================================================================== */
.ws-info {
	--col: 368px; --col-gap: 42.67px; --row-gap: 32px; --title-gap: 21.33px; --t-size: 32px; --t-lh: 37px;
	--icon: 32px; --icon-gap: 16px; --p-size: 21.33px; --p-lh: 32px; --rows-gap: 22px;
	display: grid; grid-template-columns: repeat(2, minmax(0, var(--col))); column-gap: var(--col-gap); row-gap: var(--row-gap);
}
.ws-info__item { display: flex; flex-direction: column; gap: var(--title-gap); }
.ws-info__title { margin: 0; font-family: var(--ws-poppins); font-weight: 600; font-size: var(--t-size); line-height: var(--t-lh); color: var(--ws-ink); }
.ws-info__rows { display: flex; flex-direction: column; gap: var(--rows-gap); }
.ws-info__row { display: flex; align-items: flex-start; gap: var(--icon-gap); text-decoration: none; color: var(--ws-ink); }
a.ws-info__row:hover .ws-info__text { color: var(--ws-gold); }
.ws-info__icon { flex: 0 0 auto; width: var(--icon); height: var(--icon); }
.ws-info__text { font-family: var(--ws-poppins); font-size: var(--p-size); line-height: var(--p-lh); color: var(--ws-ink); transition: color .2s; }
.ws-info__text--serif { font-family: 'Lora', serif; }

@media (max-width: 1600px) {
	.ws-info { --col: 276px; --col-gap: 32px; --row-gap: 24px; --title-gap: 16px; --t-size: 24px; --t-lh: 27.75px; --icon: 24px; --icon-gap: 12px; --p-size: 16px; --p-lh: 24px; --rows-gap: 16.5px; }
}
@media (max-width: 1300px) {
	.ws-info { --col: 300px; --col-gap: 28px; --row-gap: 22px; --title-gap: 8px; --t-size: 20px; --t-lh: 24px; --icon: 24px; --icon-gap: 12px; --p-size: 16px; --p-lh: 24px; --rows-gap: 12px; }
}
@media (max-width: 900px) {
	.ws-info { grid-template-columns: minmax(0, 276px); --row-gap: 22px; --title-gap: 6px; --t-size: 18px; --t-lh: 21px; --icon: 24px; --icon-gap: 12px; --p-size: 16px; --p-lh: 24px; --rows-gap: 10px; }
}

/* ==========================================================================
   Forms
   ========================================================================== */
.ws-form {
	--col-gap: 20px; --row-gap: 30px; --h: 60px; --r: 32px; --px: 20px; --size: 18px; --lh: 32px; --ta-h: 150px; --ta-py: 14px; --btn-h: 60px; --btn-size: 18px;
	--field-bg: #fff; --field-border: #d7d7d7;
	display: flex; flex-direction: column; gap: var(--row-gap);
}
.ws-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ws-form__grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--col-gap); row-gap: var(--row-gap); }
.ws-form__field { position: relative; }
.ws-form__field--full { grid-column: 1 / -1; }
.ws-form input[type="text"], .ws-form input[type="email"], .ws-form input[type="tel"], .ws-form input[type="date"], .ws-form select, .ws-form textarea {
	width: 100%; height: var(--h); box-sizing: border-box; margin: 0;
	padding: 0 var(--px); border: 1.33px solid var(--field-border); border-radius: var(--r); background: var(--field-bg);
	font-family: var(--ws-poppins); font-weight: 500; font-size: var(--size); line-height: var(--lh); color: #444;
	outline: none; box-shadow: none; transition: border-color .2s;
	-webkit-appearance: none; appearance: none;
}
.ws-form select { color: rgba(68, 68, 68, .5); background-image: none; cursor: pointer; }
.ws-form select:valid { color: #444; }
.ws-form textarea { height: var(--ta-h); padding-top: var(--ta-py); padding-bottom: var(--ta-py); resize: vertical; }
.ws-form ::placeholder { color: rgba(68, 68, 68, .5); opacity: 1; }
.ws-form input:focus, .ws-form select:focus, .ws-form textarea:focus { border-color: var(--ws-gold); }
.ws-form__field.is-invalid input, .ws-form__field.is-invalid select, .ws-form__field.is-invalid textarea { border-color: #d92d20; }
.ws-form__cal { position: absolute; right: var(--px); top: 50%; transform: translateY(-50%); width: calc(var(--size) + 1px); height: calc(var(--size) + 1px); pointer-events: none; }
.ws-form__submit {
	width: 100%; height: var(--btn-h); border: 0; border-radius: var(--r); background: var(--ws-gold); color: #fff; cursor: pointer;
	font-family: var(--ws-poppins); font-weight: 500; font-size: var(--btn-size); line-height: 1; text-transform: none; letter-spacing: 0;
	transition: background-color .2s;
}
.ws-form__submit:hover, .ws-form__submit:focus { background: var(--ws-gold-dark); color: #fff; }
.ws-form__submit:disabled { opacity: .6; cursor: wait; }
.ws-form__msg { margin: 0; font-family: var(--ws-poppins); font-size: 16px; line-height: 24px; min-height: 0; }
.ws-form__msg:empty { display: none; }
.ws-form__msg.is-success { color: var(--ws-green); }
.ws-form__msg.is-error { color: #d92d20; }

@media (max-width: 1600px) {
	.ws-form { --col-gap: 15px; --row-gap: 22.5px; --h: 45px; --r: 24px; --px: 15px; --size: 13.5px; --lh: 24px; --ta-h: 112.5px; --ta-py: 10.5px; --btn-h: 45px; --btn-size: 13.5px; }
}
@media (max-width: 1300px) {
	.ws-form { --col-gap: 12px; --row-gap: 16px; --h: 44px; --r: 22px; --px: 14px; --size: 14px; --lh: 20px; --ta-h: 100px; --ta-py: 10px; --btn-h: 46px; --btn-size: 15px; }
}
@media (max-width: 900px) {
	.ws-form { --col-gap: 9.85px; --row-gap: 12px; --h: 30px; --r: 15.77px; --px: 9.85px; --size: 8px; --lh: 16px; --ta-h: 74px; --ta-py: 6.9px; --btn-h: 38px; --btn-size: 13px; }
	.ws-form input, .ws-form select, .ws-form textarea { border-width: 1px; }
	.ws-form__msg { font-size: 13px; line-height: 20px; }
}

/* ==========================================================================
   Social icons
   ========================================================================== */
.ws-socials { --t-size: 24px; --t-lh: 35px; --gap: 32px; --icon: 43px; --icon-gap: 21.34px; display: flex; flex-direction: column; gap: var(--gap); }
.ws-socials__title { margin: 0; font-family: var(--ws-poppins); font-weight: 600; font-size: var(--t-size); line-height: var(--t-lh); color: #a5a5a5; }
.ws-socials__row { display: flex; gap: var(--icon-gap); }
.ws-socials__link { display: block; width: var(--icon); height: var(--icon); transition: transform .2s; }
.ws-socials__link:hover, .ws-socials__link:focus-visible { transform: translateY(-2px); }
.ws-socials__link .ws-icon { width: 100%; height: 100%; }
@media (max-width: 1600px) { .ws-socials { --t-size: 18px; --t-lh: 26.25px; --gap: 24px; --icon: 32.25px; --icon-gap: 16px; } }
@media (max-width: 1300px) { .ws-socials { --t-size: 15px; --t-lh: 22px; --gap: 16px; --icon: 30px; --icon-gap: 14px; } }
@media (max-width: 900px) { .ws-socials { --t-size: 13px; --t-lh: 9px; --gap: 15px; --icon: 25px; --icon-gap: 12.73px; } }

/* ==========================================================================
   Helpers used by the Elementor page sections (classes set in the JSON)
   ========================================================================== */
.ws-glass { -webkit-backdrop-filter: blur(var(--ws-glass-blur)); backdrop-filter: blur(var(--ws-glass-blur)); }
.ws-paper { background-image: var(--ws-paper-url); background-repeat: repeat-y; background-size: 100% auto; }

/* Footer "Wild Spaces" photo-filled wordmark */
.ws-photo-text .elementor-heading-title {
	background-image: var(--ws-photo-text-url); background-size: cover; background-position: center;
	-webkit-background-clip: text; background-clip: text; color: transparent !important; -webkit-text-fill-color: transparent;
}

/* Soft white glows behind the green FAQ band */
.ws-glow, .e-con.ws-glow { position: relative; overflow: hidden; --overflow: hidden; }
.ws-glow::before, .ws-glow::after {
	content: ''; position: absolute; width: 364px; height: 364px; border-radius: 50%;
	background: #fff; opacity: .1; filter: blur(100px); pointer-events: none; z-index: 0;
}
.ws-glow::before { left: -168px; top: 80px; }
.ws-glow::after { right: -272px; bottom: 60px; }
.ws-glow > .e-con-inner, .ws-glow > .elementor-element { position: relative; z-index: 1; }

/* Ghost button with top+bottom rule (hero "Explore Wild Spaces") */
.ws-rule-btn .elementor-button { border-style: solid; border-width: 1.18px 0 !important; }

/* Map / media cards keep their pin overlay */
.ws-map { position: relative; }

/* ==========================================================================
   Hero play button
   ========================================================================== */
.ws-play-wrap { z-index: 2; }
.ws-play {
	--size: 119px; --icon: 55px;
	display: flex; align-items: center; justify-content: center; width: var(--size); height: var(--size); border-radius: 50%;
	background: rgba(255, 255, 255, .15); -webkit-backdrop-filter: blur(var(--ws-glass-blur)); backdrop-filter: blur(var(--ws-glass-blur));
	box-shadow: var(--ws-glass-edge);
}
.ws-play svg { width: var(--icon); height: var(--icon); margin-left: 4%; }
@media (max-width: 1600px) { .ws-play { --size: 89.25px; --icon: 41.25px; } }
@media (max-width: 1300px) { .ws-play { --size: 76px; --icon: 36px; } }
@media (max-width: 900px) { .ws-play { --size: 64px; --icon: 30px; } }

/* Hero content sits above the background */
.ws-hero { position: relative; }
.ws-hero > .ws-hero__content { z-index: 1; }

/* ==========================================================================
   Footer bits
   ========================================================================== */
.ws-arrow-btn .elementor-button-content-wrapper { align-items: center; }
.ws-arrow-btn .elementor-button-icon { display: none; }
.ws-arrow-btn .elementor-button-text::after {
	content: ''; display: inline-block; vertical-align: middle; margin-left: 10.67px;
	width: 32px; height: 32px; background-color: currentColor;
	-webkit-mask: var(--ws-arrow-url) center / contain no-repeat; mask: var(--ws-arrow-url) center / contain no-repeat;
}
@media (max-width: 1600px) { .ws-arrow-btn .elementor-button-text::after { width: 24px; height: 24px; margin-left: 8px; } }
@media (max-width: 900px) { .ws-arrow-btn .elementor-button-text::after { width: 24px; height: 24px; margin-left: 8px; } }

.ws-legal { display: flex; align-items: center; gap: 10.67px; font-family: var(--ws-poppins); font-size: 21px; line-height: 32px; }
.ws-legal a { color: #d7d7d7; text-decoration: none; white-space: nowrap; }
.ws-legal a:hover { color: #fff; }
.ws-legal__dot { width: 8px; height: 8px; border-radius: 50%; border: 1.5px solid #d7d7d7; box-sizing: border-box; margin: 0 6px; }
.ws-credit { display: flex; align-items: center; gap: 9px; font-family: 'Montserrat', sans-serif; font-size: 21px; line-height: 26px; color: #fff; white-space: nowrap; }
.ws-credit a { display: inline-flex; line-height: 0; }
.ws-credit svg { width: 92px; height: 33px; }
@media (max-width: 1600px) {
	.ws-legal { font-size: 15.75px; line-height: 24px; gap: 8px; }
	.ws-credit { font-size: 15.75px; line-height: 19.5px; gap: 7px; }
	.ws-credit svg { width: 69px; height: 24.75px; }
}
@media (max-width: 1300px) {
	.ws-legal, .ws-credit { font-size: 14px; line-height: 22px; }
}
@media (max-width: 900px) {
	.ws-legal { font-size: 13px; line-height: 24px; gap: 0; justify-content: center; }
	.ws-legal__dot { margin: 0 8px; width: 6px; height: 6px; }
	.ws-credit { font-size: 13px; line-height: 16px; justify-content: center; gap: 10px; }
	.ws-credit svg { width: 69px; height: 25px; }
}

/* Footer nav columns (Elementor Icon List with no icons) */
.ws-footer .elementor-icon-list-icon { display: none; }
.ws-footer .elementor-icon-list-item a { transition: color .2s; }
.ws-footer .elementor-icon-list-text { padding-left: 0 !important; }

/* Map pin overlay (Figma "location" marker on the static map) */
.e-con.ws-map { position: relative; }
.e-con.ws-map::after {
	content: ''; position: absolute; left: 80.9%; top: 47.5%; width: 32px; height: 32px; z-index: 2; pointer-events: none;
	background: var(--ws-pin-url) center / contain no-repeat;
}
@media (max-width: 1600px) { .e-con.ws-map::after { width: 24px; height: 24px; } }
@media (max-width: 900px) { .e-con.ws-map::after { display: none; } }
