@charset "utf-8";

/* top-level custom properties */
:root {
	/* colors */
	--color-white: var(--wp--preset--color--white);
	/* #FFFFFF */
	--color-flour: var(--wp--preset--color--flour);
	/* #F4F0E7 */
	--color-dough: var(--wp--preset--color--dough);
	/* #F0EADD */
	--color-crust: var(--wp--preset--color--crust);
	/* #E9E3D8 */
	--color-ash: var(--wp--preset--color--ash);
	/* #C6C1B7 */
	--color-stone: var(--wp--preset--color--stone);
	/* #544F4D */
	--color-burnt: var(--wp--preset--color--burnt);
	/* #363635 */
	--color-black: var(--wp--preset--color--black);
	/* #151515 */
	--color-heat: var(--wp--preset--color--heat);
	/* #E44E21 */
	--color-firewood: var(--wp--preset--color--firewood);
	/* #B63E1A */
	--color-error: #c02b0a;
	/* fonts */
	--font-bayon: var(--wp--preset--font-family--bayon);
	--font-public-sans: var(--wp--preset--font-family--public-sans);
	/* columns */
	--column-qty: 1;
	--column-gap-horz: min(4vw, 50px);
	--column-gap-vert: min(4vw, 50px);
	/* spacing */
	--spacing-sm: 25px;
	--spacing-md: 40px;
	--spacing-lg: 65px;
	/* site head */
	--site-head-height: 72px;
	--site-head-padding-x: 20px;
	--hamburger-btn-width: 22px;
	--hamburger-bars-height: 14px;
	--hamburger-bars-bar-height: 2px;
	/* Swiper */
	--swiper-theme-color: var(--wp--preset--color--heat);
	--swiper-navigation-color: var(--wp--preset--color--heat);
}

@media screen and (min-width: 600px) {
	:root {
		--spacing-sm: 40px;
		--spacing-md: 60px;
		--spacing-lg: 100px;
	}
}

@media screen and (min-width: 900px) {
	:root {
		--spacing-sm: 50px;
		--spacing-md: 80px;
		--spacing-lg: 130px;
	}
}

/* widths */
.Width600,
.Width800,
.Width1280,
.Width1340,
.Width1440,
.Width1920,
.wp-site-blocks>*:not(.CustomBlock):not(.CustomSection) {
	position: relative;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}

.Width600 {
	max-width: 600px;
}

.Width800,
.wp-site-blocks>*:not(.CustomBlock):not(.CustomSection) {
	max-width: 800px;
}

.Width1280 {
	max-width: 1280px;
}

.Width1340 {
	max-width: 1340px;
}

.Width1440 {
	max-width: 1440px;
}

.Width1920 {
	max-width: 1920px;
}

.Width100Percent {
	position: relative;
	width: 100%;
}

/* widths: WordPress editor */
.acf-block-preview {
	max-width: none !important;
	box-sizing: border-box;
	overflow: hidden;
}

.acf-block-preview *,
.acf-block-preview *::before,
.acf-block-preview *::after {
	box-sizing: inherit;
}

/* display */
.DisplayBlock {
	display: block;
}

.DisplayFlex {
	display: flex;
}

/* position */
.PosRelative {
	position: relative;
}

/* centering */
.CenterXY {
	justify-content: center;
	align-items: center;
}

.TxCenter {
	text-align: center;
}

/* columns: custom (infinite rows) */
.Columns2,
.Columns3,
.Columns4 {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	/* last row left aligned (with spacer elements)*/
}

/* last row centered */
.LastRowCenter {
	justify-content: center;
}

.Columns2>*,
.Columns3>*,
.Columns4>* {
	flex-basis: 100%;
}

.Columns2>*:not(:nth-child(1)),
.Columns3>*:not(:nth-child(1)):not([aria-hidden="true"]),
.Columns4>*:not(:nth-child(1)):not([aria-hidden="true"]) {
	margin-top: var(--column-gap-vert);
}

/* columns: 2 */
@media only screen and (min-width: 481px) {

	.Columns2,
	.Columns3,
	.Columns4 {
		--column-qty: 2;
	}

	.Columns2>*,
	.Columns3>*,
	.Columns4>* {
		flex-basis: calc((100% - (var(--column-gap-horz) * (var(--column-qty) - 1))) / var(--column-qty));
	}

	.Columns2>*:nth-child(2),
	.Columns3>*:nth-child(2),
	.Columns4>*:nth-child(2) {
		margin-top: 0 !important;
	}

	.Columns2.LastRowCenter>*:not(:nth-child(2n + 1)),
	.Columns3.LastRowCenter>*:not(:nth-child(2n + 1)),
	.Columns4.LastRowCenter>*:not(:nth-child(2n + 1)) {
		margin-left: var(--column-gap-horz);
	}
}

/* columns: 3*/
@media only screen and (min-width: 768px) {

	.Columns3,
	.Columns4 {
		--column-qty: 3;
	}

	.Columns3>*:nth-child(3),
	.Columns4>*:nth-child(3) {
		margin-top: 0 !important;
	}

	.Columns3.LastRowCenter>*:not(:nth-child(2n + 1)),
	.Columns4.LastRowCenter>*:not(:nth-child(2n + 1)) {
		margin-left: 0;
	}

	.Columns3.LastRowCenter>*:not(:nth-child(3n + 1)),
	.Columns4.LastRowCenter>*:not(:nth-child(3n + 1)) {
		margin-left: var(--column-gap-horz);
	}
}

/* columns: 4 */
@media only screen and (min-width: 900px) {
	.Columns4 {
		--column-qty: 4;
	}

	.Columns4>*:nth-child(4) {
		margin-top: 0 !important;
	}

	.Columns4.LastRowCenter>*:not(:nth-child(3n + 1)) {
		margin-left: 0;
	}

	.Columns4.LastRowCenter>*:not(:nth-child(4n + 1)) {
		margin-left: var(--column-gap-horz);
	}
}

/* vertical margins */
.wp-site-blocks>*:not(.CustomBlock)+.CustomBlock,
/* Gravity Forms */
.wp-site-blocks>*:not(.CustomBlock)+.gform_wrapper,
/* Meow Gallery */
.wp-site-blocks>*:not(.CustomBlock)+.mgl-root,
footer {
	margin-top: var(--spacing-lg);
}

article>h1:first-child,
article>header:first-child {
	margin-top: var(--spacing-lg);
}

.CustomBlock,
.SectionBtmMargin,
/* Gravity Forms */
.wp-site-blocks>.gform_wrapper:not(:last-child),
/* Meow Gallery */
.wp-site-blocks>.mgl-root:not(:last-child) {
	margin-bottom: var(--spacing-lg);
}

p,
ul,
ol,
figure,
[class^="wp-block-"]:not(.wp-block-heading) {
	margin-bottom: 1.5em;
}

.wp-site-blocks .CustomBlock:last-child,
.NoBtmMargin,
article>*:last-child,
.wp-site-blocks>*:last-child,
p:last-child,
ul:last-child,
ol:last-child,
figure:last-child,
[class^="wp-block-"]:last-child {
	margin-bottom: 0;
}

/* clearfix */
.cf::after {
	content: "";
	display: table;
	clear: both;
}

/* image: cover */
.ImgCover {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
}

.ImgCover>img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* colors: backgrounds */
.BgStoneTexture {
	background-color: var(--color-burnt);
	background-image: url(../img/stone-texture-bg.jpg);
	background-repeat: repeat;
	background-size: 512px 512px;
	background-position: center center;
}

/* colors: text */
.TxCoWhite {
	color: var(--color-white);
}

.TxCoFlour {
	color: var(--color-flour);
}

.TxCoAsh {
	color: var(--color-ash);
}

.TxCoHeat {
	color: var(--color-heat);
}

/* text: general */
:root body,
button,
input,
select,
textarea {
	font: normal normal normal 16px / 1.5 var(--font-public-sans);
	color: var(--color-burnt);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* text: fonts */
.FontPublicSans {
	font-family: var(--font-public-sans);
}

.FontBayon {
	font-family: var(--font-bayon);
}

/* text: sizes */
.TxSz12 {
	font-size: 12px;
}

.TxSz14 {
	font-size: 14px;
}

.TxSz16,
.TxSzSm {
	/* font-size: var(--wp--preset--font-size--small); */
	font-size: 14px;
}

.TxSz18,
.TxSzMd {
	/* font-size: var(--wp--preset--font-size--medium); */
	font-size: 16px;
}

.TxSz20,
.TxSzLg {
	/* font-size: var(--wp--preset--font-size--large); */
	font-size: 18px;
}

@media only screen and (min-width: 768px) {

	.TxSz16,
	.TxSzSm {
		font-size: var(--wp--preset--font-size--small);
		font-size: 16px;
	}

	:root body,
	button,
	input,
	select,
	textarea,
	.TxSz18,
	.TxSzMd {
		font-size: var(--wp--preset--font-size--medium);
		font-size: 18px;
	}

	.TxSz20,
	.TxSzLg {
		font-size: var(--wp--preset--font-size--large);
		font-size: 20px;
	}
}

/* text: styles */
.FontWeight500 {
	/* aka "medium" */
	font-weight: 500;
}

.FontWeight600 {
	font-weight: 600;
}

.FontWeight700 {
	font-weight: bold;
}

/* text: headings */
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
	font-family: var(--font-bayon);
	font-weight: 400;
	margin-bottom: 0.5em;
	letter-spacing: -1%;
}

h1,
.h1 {
	font-size: 48px;
	line-height: 105%;
}

h2,
.h2 {
	font-size: 40px;
	line-height: 120%;
}

h3,
.h3 {
	font-size: 32px;
	line-height: 120%;
}

h4,
.h4 {
	font-size: 28px;
	line-height: 130%;
	margin-bottom: .3em;
}

h5,
.h5 {
	font-size: 20px;
	line-height: 130%;
}

h6,
.h6 {
	font-size: 18px;
	line-height: 140%;
}

@media only screen and (min-width: 768px) {

	h1,
	.h1 {
		font-size: 84px;
	}

	h2,
	.h2 {
		font-size: 60px;
	}

	h3,
	.h3 {
		font-size: 48px;
	}

	h4,
	.h4 {
		font-size: 40px;
	}

	h5,
	.h5 {
		font-size: 32px;
	}

	h6,
	.h6 {
		font-size: 26px;
	}
}

/* text: quotes */
blockquote cite {
	display: block;
}

/* text: lists */
ul,
ol {
	padding-left: 20px;
}

article>ul,
article>ol,
[itemprop="articleBody"]>ul,
[itemprop="articleBody"]>ol {
	padding-left: 40px !important;
}

.NoListStyle,
#NavMenu,
#NavMenu ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* text: highlight color (with fallbacks for when in WordPress editor) */
::-moz-selection {
	color: var(--color-white, #ffffff);
	background: var(--color-black, #000000);
}

::selection {
	color: var(--color-white, #ffffff);
	background: var(--color-black, #000000);
}

/* hide focusable elements inside aria-hidden parents */
[aria-hidden="true"] a[href],
[aria-hidden="true"] area[href],
[aria-hidden="true"] input:not([disabled]),
[aria-hidden="true"] select:not([disabled]),
[aria-hidden="true"] textarea:not([disabled]),
[aria-hidden="true"] button:not([disabled]),
[aria-hidden="true"] [tabindex]:not([disabled]),
[aria-hidden="true"] [contenteditable="true"]:not([disabled]) {
	visibility: hidden;
}

/* links */
a,
a:link,
a:visited {
	color: var(--color-heat);
	text-decoration: underline;
	transition: all 0.3s;
}

a:hover,
a:active,
a:focus {
	text-decoration: none;
}

/* links: borderless */
a.BorderlessLink,
a.BorderlessLink:link,
a.BorderlessLink:visited,
.BorderlessLinks a,
.BorderlessLinks a:link,
.BorderlessLinks a:visited,
.wp-block-button a.wp-block-button__link,
.ui-datepicker a {
	text-decoration: none;
}

/* links: colorless */
a.ColorlessLink,
a.ColorlessLink:link,
a.ColorlessLink:visited,
.ColorlessLinks a,
.ColorlessLinks a:link,
.ColorlessLinks a:visited {
	color: inherit !important;
}

/* links: arrow link (text + chevron-right svg) */
.ArrowLink,
a.ArrowLink,
a.ArrowLink:link,
a.ArrowLink:visited {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--font-public-sans);
	font-weight: 500;
	font-size: 16px;
	line-height: 1.5;
	color: inherit;
	text-decoration: none;
}

.ArrowLink>.ChevronRightSVG {
	flex-shrink: 0;
	width: 7px;
	height: 13px;
	transition: transform 0.3s;
}

.ArrowLink>.ChevronRightSVG path {
	stroke: var(--color-heat);
}

a.ArrowLink:hover>.ChevronRightSVG,
a.ArrowLink:focus-visible>.ChevronRightSVG,
a:hover .ArrowLink>.ChevronRightSVG,
a:focus-visible .ArrowLink>.ChevronRightSVG {
	transform: translateX(4px);
}

@media only screen and (min-width: 900px) {

	.ArrowLink,
	a.ArrowLink,
	a.ArrowLink:link,
	a.ArrowLink:visited {
		font-size: 18px;
	}
}

/* buttons (shared layout/typography for all variants) */
.Btn,
.Btn:link,
.Btn:visited,
.wp-block-button a.wp-block-button__link,
.wp-block-button a.wp-block-button__link:link,
.wp-block-button a.wp-block-button__link:visited,
button[type="submit"],
input[type="button"],
input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-public-sans);
	font-weight: 500;
	font-size: 16px;
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
	padding: 8px 20px;
	min-height: 40px;
	border: 1px solid transparent;
	border-radius: 0;
	cursor: pointer;
	transition: background-color 0.3s, color 0.3s, border-color 0.3s;
}

@media only screen and (min-width: 900px) {

	.Btn,
	.Btn:link,
	.Btn:visited,
	.wp-block-button a.wp-block-button__link,
	.wp-block-button a.wp-block-button__link:link,
	.wp-block-button a.wp-block-button__link:visited,
	button[type="submit"],
	input[type="button"],
	input[type="submit"] {
		font-size: 18px;
		padding: 10px 24px;
		min-height: 52px;
	}
}

/* heat (filled, primary) — matches `is-style-heat` and the global theme.json button */
.Btn.HeatBg,
.Btn.HeatBg:link,
.Btn.HeatBg:visited,
.wp-block-button.is-style-heat a.wp-block-button__link,
.wp-block-button.is-style-heat a.wp-block-button__link:link,
.wp-block-button.is-style-heat a.wp-block-button__link:visited,
.wp-block-button:not(.is-style-clear) a.wp-block-button__link,
.wp-block-button:not(.is-style-clear) a.wp-block-button__link:link,
.wp-block-button:not(.is-style-clear) a.wp-block-button__link:visited,
button[type="submit"],
input[type="button"],
input[type="submit"] {
	background: var(--color-heat);
	color: var(--color-flour);
	border-color: var(--color-heat);
}

.Btn.HeatBg:hover,
.Btn.HeatBg:focus,
a:hover .Btn.HeatBg,
a:focus-visible .Btn.HeatBg,
.wp-block-button.is-style-heat a.wp-block-button__link:hover,
.wp-block-button.is-style-heat a.wp-block-button__link:focus,
.wp-block-button:not(.is-style-clear) a.wp-block-button__link:hover,
.wp-block-button:not(.is-style-clear) a.wp-block-button__link:focus,
button[type="submit"]:hover,
button[type="submit"]:focus,
input[type="button"]:hover,
input[type="button"]:focus,
input[type="submit"]:hover,
input[type="submit"]:focus {
	background: var(--color-black);
	color: var(--color-white);
	border-color: var(--color-black);
}

.Btn.HeatBg:active,
.wp-block-button.is-style-heat a.wp-block-button__link:active,
.wp-block-button:not(.is-style-clear) a.wp-block-button__link:active,
button[type="submit"]:active,
input[type="button"]:active,
input[type="submit"]:active {
	background: var(--color-firewood);
	color: var(--color-white);
	border-color: var(--color-firewood);
}

/* clear (outlined, secondary) — matches `is-style-clear` */
.Btn.ClearBg,
.Btn.ClearBg:link,
.Btn.ClearBg:visited,
.wp-block-button.is-style-clear a.wp-block-button__link,
.wp-block-button.is-style-clear a.wp-block-button__link:link,
.wp-block-button.is-style-clear a.wp-block-button__link:visited {
	background: transparent;
	color: var(--color-black);
	border-color: var(--color-ash);
}

.Btn.ClearBg:hover,
.Btn.ClearBg:focus,
.wp-block-button.is-style-clear a.wp-block-button__link:hover,
.wp-block-button.is-style-clear a.wp-block-button__link:focus {
	background: var(--color-black);
	color: var(--color-white);
	border-color: var(--color-black);
}

.Btn.ClearBg:active,
.wp-block-button.is-style-clear a.wp-block-button__link:active {
	background: var(--color-firewood);
	color: var(--color-white);
	border-color: var(--color-firewood);
}

button,
button svg {
	transition: all 0.3s;
}

button.NoBtnStyle,
button.gfield_choice_all_toggle {
	padding: 0;
	border: none;
	background: none;
	cursor: pointer;
}

button.NoBtnStyle:not(.swiper-button-prev):not(.swiper-button-next) {
	color: inherit;
}

/* button list */
.ButtonList {
	--btn-gap: 8px;
	display: flex;
	flex-wrap: wrap;
	margin: calc(var(--btn-gap) * -1);
}

.ButtonList.AlignCenter {
	justify-content: center;
}

.ButtonList .Btn,
.ButtonList .ArrowLink {
	margin: var(--btn-gap);
}

/* button: skip link */
a[href="#MainContent"] {
	position: fixed;
	top: -300px;
	left: 0px;
	transition: all 0.3s, top 1s ease-out;
	z-index: 2000;
}

a[href="#MainContent"]:focus {
	top: 0px;
	transition: all 0.3s, top 0.1s ease-in;
}

/* block: image */
.wp-block-image a,
.wp-block-image img,
svg {
	display: inline-block;
}

picture img {
	display: block;
	width: inherit;
	height: inherit;
	object-fit: cover;
}

img[sizes^="auto,"] {
	contain-intrinsic-size: none !important;
}

/* block: image: captions */
.wp-block-image figcaption,
.wp-block-embed figcaption {
	color: inherit;
	margin: 0;
	padding: 0.5em;
	border: 1px solid var(--color-ash);
	border-top: none;
}

/* block: gallery: captions */
.blocks-gallery-caption {
	width: 100%;
	color: inherit;
	padding: 0.5em;
	border: 1px solid var(--color-ash);
}

/* image: photo credit */
.PhotoCredit {
	position: absolute;
	bottom: 5px;
	left: 5%;
	width: 90%;
	text-align: center;
	font-size: 11px;
	/* if accessibility is desired, it can't be lower */
	color: var(--color-white);
	text-shadow: 1px 1px #656565;
	opacity: 0.8;
}

/* form */
form {
	--input-x-pad: 12px;
	--input-y-pad: 8px;
}

/* form: labels */
label,
legend {
	color: var(--color-burnt);
	font-size: 16px !important;
	font-weight: 400 !important;
	margin-bottom: 8px !important;
}

@media only screen and (min-width: 900px) {

	label,
	legend {
		font-size: 18px !important;
	}
}

.ginput_complex label {
	font-size: 12px !important;
	margin-bottom: 0 !important;
	padding-top: 2px !important;
}

label.gform-field-label--type-inline {
	color: unset;
}

/* form: appearance & border radius */
input:not([type="radio"]):not([type="checkbox"]):not([type="button"]),
select,
textarea {
	border-radius: 0;
}

/* form: line height */
input:not([type="radio"]):not([type="checkbox"]):not([type="button"]):not([type="reset"]):not([type="submit"]),
.fancy-choice label,
select:not(.ui-datepicker-month):not(.ui-datepicker-year) {
	line-height: 1.2 !important;
}

/* form: padding */
input:not([type="number"]):not([type="radio"]):not([type="checkbox"]):not([type="button"]):not([type="reset"]):not([type="submit"]),
textarea {
	padding: var(--input-y-pad) var(--input-x-pad) !important;
}

select:not(.ui-datepicker-month):not(.ui-datepicker-year),
input[type="number"] {
	padding: var(--input-y-pad) 0 var(--input-y-pad) var(--input-x-pad) !important;
}

/* form: basic non-button styles */
input:not([type="radio"]):not([type="checkbox"]):not([type="button"]):not([type="reset"]):not([type="submit"]),
select:not(.ui-datepicker-month):not(.ui-datepicker-year),
textarea {
	border: 1px solid var(--color-ash);
	background-color: var(--color-crust);
	color: var(--color-burnt);
	font-size: 16px !important;
	min-height: 48px;
	box-sizing: border-box;
	transition: border-color 0.3s, background-color 0.3s;
}

textarea {
	resize: vertical;
}

@media only screen and (min-width: 900px) {

	input:not([type="radio"]):not([type="checkbox"]):not([type="button"]):not([type="reset"]):not([type="submit"]),
	select:not(.ui-datepicker-month):not(.ui-datepicker-year),
	textarea {
		font-size: 18px !important;
	}
}

input:not([type="radio"]):not([type="checkbox"]):not([type="button"]):not([type="reset"]):not([type="submit"]):focus,
select:not(.ui-datepicker-month):not(.ui-datepicker-year):focus,
textarea:focus {
	border-color: var(--color-stone);
}

/* form: placeholder */
::-moz-placeholder {
	color: var(--color-stone);
	opacity: 1;
}

::placeholder,
.gf_placeholder {
	color: var(--color-stone);
	opacity: 1;
}

/* form: Gravity Forms: error notice above form */
.gform_required_legend {
	display: none;
}

/* form: Gravity Forms: Y axis field row gap */
.gform_wrapper.gravity-theme .gform_fields {
	grid-row-gap: 8px !important;
}

.gform_wrapper.gravity-theme .gfield {
	margin-bottom: 24px;
}

.gform_wrapper.gravity-theme .gfield:last-child {
	margin-bottom: 0;
}

/* form: Gravity Forms: required asterisk */
/* .gform_wrapper.gravity-theme .gfield_required {} */

/* form: Gravity Forms: date picker */
.gravity-theme.ui-datepicker .ui-datepicker-calendar .ui-datepicker-current-day .ui-state-default {
	background: var(--color-heat) !important;
	border-color: var(--color-heat) !important;
}

/* forms: Gravity Forms: checkbox & radio accessibility */
.gchoice label {
	transition: all 0.3s;
	cursor: pointer;
}

.gchoice:hover label {
	color: var(--color-heat) !important;
}

.gchoice input:focus+label {
	color: var(--color-firewood) !important;
	text-decoration: underline;
	/* Visual indicator since theme removes default outline */
}

.gchoice input:active+label {
	color: var(--color-firewood) !important;
}

/* form: Gravity Forms: footer */
.gform_wrapper.gravity-theme .gform_footer {
	flex-wrap: wrap;
	/* add this if button fills container width, so that loading icon is centered */
	justify-content: center;
}

/* form: Gravity Forms: error: message above form */
.gform_wrapper.gravity-theme .gform_validation_errors {
	display: none !important;
}

/* form: Gravity Forms: error: input */
.gform_wrapper.gravity-theme .gfield_error [aria-invalid="true"] {
	border-color: var(--color-error) !important;
}

/* form: Gravity Forms: error: under each field */
.gform_wrapper.gravity-theme .validation_message {
	margin-top: 5px !important;
	border: none !important;
	background: none !important;
	padding: 0 !important;
}

/* form: Gravity Forms: error: color */
.gform_wrapper.gravity-theme .gfield_error .gfield_repeater_cell label,
.gform_wrapper.gravity-theme .gfield_error:not(.fancy-choice) label,
.gform_wrapper.gravity-theme .gfield_error legend,
.gform_wrapper.gravity-theme .validation_message,
.gform_wrapper.gravity-theme [aria-invalid="true"]+label,
.gform_wrapper.gravity-theme label+[aria-invalid="true"] {
	color: var(--color-error) !important;
}

/* form: Gravity Forms: forms: style radio/checkbox inputs as standard buttons (add "fancy-choice" class in Gravity Forms) (NOTE: these have flexible width and standard icons) */
.fancy-choice .gfield_checkbox,
.fancy-choice .gfield_radio {
	margin: 0 -10px -10px 0 !important;
}

.fancy-choice .gchoice {
	display: inline-block;
	position: relative;
	margin: 0 10px 10px 0;
}

.fancy-choice input {
	position: fixed;
	width: 0;
	height: 0;
	top: 0;
	left: 0;
	opacity: 0;
}

.fancy-choice label {
	width: 100%;
	max-width: 100% !important;
	border: 1px solid var(--color-ash);
	border-radius: 0;
	margin: 0;
	padding: var(--input-y-pad) var(--input-x-pad);
	background-color: var(--color-crust);
	font-size: 16px !important;
	color: var(--color-burnt) !important;
	white-space: nowrap;
	cursor: pointer;
	transition: border-color 0.3s, background-color 0.3s;
}

.fancy-choice .gchoice:hover label,
.fancy-choice input:focus+label {
	border-color: var(--color-stone);
	background-color: var(--color-stone);
	color: var(--color-flour) !important;
	text-decoration: none !important;
}

.fancy-choice input:checked+label {
	border-color: var(--color-black);
	background-color: var(--color-black);
	color: var(--color-flour) !important;
}

@media only screen and (min-width: 900px) {
	.fancy-choice label {
		font-size: 18px !important;
	}
}

/* form: Gravity Forms: two buttons in the footer on paginated forms */
.gform_page_footer {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}

.gform_page_footer input {
	flex-basis: 47.5%;
}

.gform_page:first-child .gform_page_footer input {
	flex-basis: 100%;
}

/* form: Gravity Forms: loading spinner */
.gform-loader {
	position: absolute !important;
	right: -32px;
	top: 35px;
	margin: 0 !important;
	margin-inline-start: 0 !important;
}

/* form: Gravity Forms: hide fields for WordPress editor */
.acf-block-preview .akismet-fields-container {
	display: none;
}

/* text meant only for screen readers */
.screen-reader-text {
	position: absolute !important;
	height: 1px;
	width: 1px;
	clip: rect(1px, 1px, 1px, 1px);
	overflow: hidden;
}

.screen-reader-text:hover,
.screen-reader-text:focus,
.screen-reader-text:active {
	display: block;
	width: auto;
	height: auto;
	top: 0.5em;
	left: 0.5em;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	background-color: #f1f1f1;
	padding: 15px 23px 14px;
	color: #21759b;
	font-size: 14px;
	font-size: 0.875rem;
	font-weight: bold;
	line-height: normal;
	text-decoration: none;
	clip: auto !important;
	z-index: 100000;
	/* above WP toolbar */
}

/* site header */
html {
	scroll-behavior: smooth;
}

:target {
	scroll-margin-top: var(--site-head-height);
}

body {
	background-color: var(--color-flour);
}

body.PopupOpen {
	position: fixed;
	width: 100%;
	overflow: hidden;
}

#BodyWrap {
	padding-top: var(--site-head-height);
	position: relative;
	overflow-x: hidden;
}

#SiteHead {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: var(--site-head-height);
	background: var(--color-flour);
	border-bottom: 1px solid var(--color-ash);
	z-index: 1000;
}

#SiteHeadNav {
	height: var(--site-head-height);
	max-width: 1920px;
	width: 100%;
	padding: 0 var(--site-head-padding-x);
}

.TopLogo {
	display: inline-flex;
	align-items: center;
	position: absolute;
	left: var(--site-head-padding-x);
	top: 50%;
	transform: translateY(-50%);
	max-width: calc(100% - 20px - var(--hamburger-btn-width) - var(--site-head-padding-x) * 2);
	color: var(--color-burnt);
}

.TopLogo>* {
	display: block;
	width: auto;
	height: 20px;
	max-width: 100%;
}

/* top nav: hamburger */
#HamburgerBtn {
	position: absolute;
	width: 48px;
	height: 48px;
	top: 50%;
	right: calc(var(--site-head-padding-x) - 12px);
	transform: translateY(-50%);
	z-index: 1001;
}

#Hamburger {
	position: relative;
	height: var(--hamburger-bars-height);
	width: var(--hamburger-btn-width);
}

#Hamburger div {
	position: absolute;
	width: var(--hamburger-btn-width);
	height: var(--hamburger-bars-bar-height);
	left: 0;
	background: var(--color-black);
	transform: rotate(0deg);
	transition: 0.25s ease-in-out;
}

#Hamburger div.first {
	top: 0;
}

#Hamburger div.second {
	top: calc(50% - (var(--hamburger-bars-bar-height) / 2));
}

#Hamburger div.third {
	top: calc(100% - var(--hamburger-bars-bar-height));
}

#HamburgerBtn.NavOpen div.first {
	top: calc(50% - (var(--hamburger-bars-bar-height) / 2));
	transform: rotate(135deg);
}

#HamburgerBtn.NavOpen div.second {
	opacity: 0;
}

#HamburgerBtn.NavOpen div.third {
	top: calc(50% - (var(--hamburger-bars-bar-height) / 2));
	transform: rotate(-135deg);
}

/* top nav: menu (mobile) */
#NavFrame {
	position: fixed;
	width: 100vw;
	height: calc(100vh - var(--site-head-height));
	top: var(--site-head-height);
	left: 100vw;
	padding: 16px var(--site-head-padding-x) 0;
	background: var(--color-flour);
	overflow-x: hidden;
	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.5s, left 0s linear 0.5s, visibility 0s linear 0.5s;
	z-index: 1000;
}

#NavFrame.NavOpen {
	opacity: 1;
	left: 0;
	visibility: visible;
	transition: opacity 0.5s, left 0s linear 0s, visibility 0s linear 0s;
}

/* top nav: list */
#NavMenu {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	list-style: none;
}

#NavMenu>li {
	display: block;
	border-bottom: 1px solid rgba(21, 21, 21, 0.15);
}

/* top nav: parent button (Events, More, etc.) */
#NavMenu>li>button,
#NavMenu>li>a.NavLeafLink {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	padding: 12px 0;
	font-family: var(--font-bayon);
	font-size: 24px;
	line-height: 1.5;
	letter-spacing: 0.48px;
	color: var(--color-burnt);
	text-align: left;
}

#NavMenu>li>a.NavLeafLink {
	justify-content: space-between;
}

#NavMenu a:hover,
#NavMenu a:active,
#NavMenu a:focus,
#NavMenu button:hover,
#NavMenu button:active,
#NavMenu button:focus {
	color: var(--color-heat) !important;
}

#NavMenu>li>button {
	justify-content: space-between;
}

/* nav chevron icons (down on parents, right on leaf links) */
#NavMenu .ChevronDownSVG {
	flex-shrink: 0;
	width: 13px;
	height: 7px;
	transition: transform 0.3s;
}

#NavMenu .ChevronRightSVG {
	flex-shrink: 0;
	width: 7px;
	height: 13px;
	transition: transform 0.3s;
}

#NavMenu>li>button[aria-expanded="true"] .ChevronDownSVG {
	transform: rotate(-180deg);
}

/* top nav: sub-menus */
#NavMenu .sub-menu {
	display: none;
	margin: 0 0 16px;
	padding: 0;
	list-style: none;
}

#NavMenu .sub-menu>li {
	break-inside: avoid;
}

/* "More"-style sub-menu (no icons): two CSS columns */
#NavMenu .sub-menu:not(.WithIcons) {
	column-count: 2;
	column-gap: 48px;
}

#NavMenu .sub-menu>li>a.NavLeafLink {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 40px;
	padding: 8px 0;
	font-family: var(--font-public-sans);
	font-weight: 500;
	font-size: 16px;
	line-height: 1.5;
	color: var(--color-burnt);
}

/* "Events"-style sub-menu (with icons): icon + label + arrow */
#NavMenu .sub-menu.WithIcons>li {
	display: flex;
	align-items: center;
	gap: 12px;
}

#NavMenu .sub-menu.WithIcons>li>a.NavLeafLink {
	flex: 1 0 0;
	min-width: 0;
}

#NavMenu .NavIcon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 25px;
	height: 25px;
}

#NavMenu .NavIconImg {
	display: block;
	width: auto;
	height: auto;
	max-width: 25px;
	max-height: 25px;
	object-fit: contain;
}

/* top nav: CTA buttons (mobile = stacked, full-width) */
#NavCTA {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 24px 0;
}

#NavCTA .Btn {
	width: 100%;
}

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

	/* top nav: mobile auto-open items hide their chevron when expanded */
	#NavMenu>li.MobileAutoOpen>button[aria-expanded="true"] .ChevronDownSVG {
		display: none;
	}
}

@media only screen and (min-width: 1450px) {
	:root {
		--site-head-padding-x: 64px;
	}


	/* site header */
	:root body.NavOpen #BodyWrap {
		height: auto;
		overflow-y: visible;
	}

	.TopLogo {
		z-index: 2;
	}

	.TopLogo>* {
		height: 28px;
	}

	/* top nav: hamburger hidden on desktop */
	#HamburgerBtn {
		display: none;
	}

	/* top nav: frame is inline on desktop */
	#NavFrame,
	#NavFrame.NavOpen {
		position: absolute;
		width: 100%;
		height: var(--site-head-height);
		top: 0;
		left: 0;
		padding: 0;
		background: none;
		opacity: 1;
		visibility: visible;
		overflow: visible;
		transition: none;
		z-index: 1;
	}

	/* top nav: menu (centered) */
	#NavMenu {
		flex-direction: row;
		align-items: center;
		justify-content: center;
		gap: 16px;
		height: 100%;
	}

	#NavMenu>li {
		display: flex;
		align-items: center;
		height: 100%;
		position: relative;
		border-bottom: none;
	}

	/* bullet separators between top-level items */
	#NavMenu>li:not(:last-child)::after {
		content: "•";
		display: inline-flex;
		align-items: center;
		margin-left: 16px;
		font-family: var(--font-bayon);
		font-size: 24px;
		line-height: 1.5;
		color: var(--color-heat);
	}

	#NavMenu>li>button,
	#NavMenu>li>a.NavLeafLink {
		width: auto;
		padding: 0;
		gap: 4px;
		color: var(--color-stone);
		border: none;
	}

	/* desktop: heat-colored down chevron next to dropdown labels (More, Events, etc.) */
	#NavMenu>li>button>.ChevronDownSVG {
		color: var(--color-heat);
		margin-left: 5px;
	}

	/* top-level chevron-right (e.g. About, Catering) is mobile-only */
	#NavMenu>li>a.NavLeafLink>.ChevronRightSVG {
		display: none;
	}

	/* top nav: sub-menus become absolute dropdowns on desktop */
	#NavMenu .sub-menu {
		display: block;
		position: absolute;
		top: 80%;
		left: -24px;
		margin: 0;
		padding: 24px;
		min-width: 280px;
		background: var(--color-flour);
		border: 1px solid rgba(11, 4, 2, 0.15);
		text-align: left;
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s, visibility 0s linear 0.3s;
		z-index: 200;
	}

	/* sub-menus only open via click (aria-hidden="false"); hover/focus-within is intentionally not used here so the global "[aria-hidden='true'] a[href] { visibility: hidden; }" rule doesn't hide the children mid-hover */
	#NavMenu .sub-menu[aria-hidden="false"] {
		opacity: 1;
		visibility: visible;
		transition: opacity 0.3s, visibility 0s linear 0s;
	}

	/* "More"-style on desktop keeps two columns with vertical gap */
	#NavMenu .sub-menu:not(.WithIcons) {
		column-count: 2;
		column-gap: 64px;
	}

	#NavMenu .sub-menu>li {
		margin: 0;
	}

	#NavMenu .sub-menu>li>a.NavLeafLink {
		font-size: 18px;
		white-space: nowrap;
	}

	/* desktop sub-menu items don't show the trailing chevron */
	#NavMenu .sub-menu>li>a.NavLeafLink>.ChevronRightSVG {
		display: none;
	}

	/* desktop CTA */
	#NavCTA {
		flex-direction: row;
		gap: 16px;
		padding: 0;
		position: absolute;
		top: 50%;
		right: var(--site-head-padding-x);
		transform: translateY(-50%);
	}

	#NavCTA .Btn {
		width: auto;
	}
}

/* site footer */
footer {
	position: relative;
	overflow: hidden;
}

/* site footer: orange "oven" pattern strip across the top */
footer .OrangeTop {
	position: relative;
	z-index: 2;
	width: 100%;
	height: 64px;
	background-image: url('../img/orange-oven.svg');
	background-repeat: repeat;
	background-size: 125px 64px;
	background-position: center top;
	background-color: var(--color-heat);
}

@media only screen and (min-width: 900px) {
	footer .OrangeTop {
		height: 96px;
		background-size: 187px 96px;
	}
}

/* site footer: large background emblem */
footer .MegaLogo {
	position: absolute;
	pointer-events: none;
	opacity: 0.4;
	top: 25%;
	right: 0;
	width: 150%;
	max-width: 554px;
	transform: translateX(40%);
	z-index: -1;
}

footer .MegaLogo svg,
footer .MegaLogo img {
	display: block;
	width: 100%;
	height: auto;
}

@media only screen and (min-width: 900px) {
	footer .MegaLogo {
		top: -10%;
		right: 0;
		width: 50%;
		max-width: 664px;
		transform: translateX(5%);
	}
}

/* site footer: content container (Width1280 supplies the centered max-width) */
footer .StoneBg {
	position: relative;
	z-index: 1;
	padding-top: 48px;
	padding-bottom: 48px;
}

@media only screen and (min-width: 900px) {
	footer .StoneBg {
		padding-top: 80px;
		padding-bottom: 80px;
	}
}

/* site footer: top (CTA group + nav) */
footer .Top {
	display: flex;
	flex-direction: column;
	gap: 64px;
}

@media only screen and (min-width: 900px) {
	footer .Top {
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-start;
		gap: 40px;
	}
}

/* site footer: top: CTA group (heading + description + buttons) */
@media only screen and (min-width: 900px) {
	footer .Top>.Cta {
		flex: 1 1 auto;
		max-width: 560px;
	}
}

footer .Cta .h1 {
	color: var(--color-dough);
	margin-bottom: 24px;
	font-size: 48px;
}

@media only screen and (min-width: 768px) {
	footer .Cta .h1 {
		font-size: 84px;
	}
}

footer .Cta>p {
	color: var(--color-flour);
	margin-bottom: 32px;
}

footer .Cta>.ButtonList {
	--btn-gap: 8px;
}

/* override the .Btn.ClearBg default text color (color-black) so it's readable on the dark footer */
footer .Btn.ClearBg,
footer .Btn.ClearBg:link,
footer .Btn.ClearBg:visited {
	color: var(--color-flour);
}

/* site footer: top: nav links (2 columns) */
footer .Top>ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 140px));
	column-gap: 0;
	align-self: flex-start;
}

footer .Top>ul li {
	padding: 8px 0;
}

footer .Top>ul li a {
	color: var(--color-flour);
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
	transition: color 0.3s;
}

footer .Top>ul li a:hover,
footer .Top>ul li a:focus,
footer .Top>ul li a:active {
	color: var(--color-heat);
}

@media only screen and (min-width: 900px) {
	footer .Top>ul {
		grid-template-columns: 140px 140px;
	}

	footer .Top>ul li {
		text-align: right;
	}

	footer .Top>ul li a {
		font-size: 16px;
	}
}

/* site footer: bottom (legal | address | social) */
footer .Bottom {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	margin-top: 48px;
	padding-top: 32px;
	border-top: 1px solid var(--color-stone);
	text-align: center;
	font-size: 14px;
}

footer .Bottom a,
footer .Bottom a:link,
footer .Bottom a:visited {
	color: inherit;
	text-decoration: none;
}

footer .Bottom a:hover,
footer .Bottom a:focus,
footer .Bottom a:active {
	color: var(--color-heat);
}

/* keep multi-line address/phone tight in the footer */
footer .Bottom p {
	margin-bottom: 0;
}

/* mobile re-order: address first, social middle, legal/site-by last */
footer .Bottom>div:first-child {
	order: 3;
	color: var(--color-dough);
}

footer .Bottom>div:nth-child(2) {
	order: 1;
	color: var(--color-dough);
}

footer .Bottom>.SocialList {
	order: 2;
}

@media only screen and (min-width: 900px) {
	footer .Bottom {
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
		gap: 20px;
		margin-top: 80px;
		text-align: left;
		font-size: 16px;
	}

	footer .Bottom>div:first-child {
		order: 0;
		flex: 0 0 300px;
	}

	footer .Bottom>div:nth-child(2) {
		order: 0;
		flex: 1 1 auto;
		text-align: center;
	}

	footer .Bottom>.SocialList {
		order: 0;
		flex: 0 0 300px;
		justify-content: flex-end;
	}
}

/* site footer: social list */
.SocialList {
	--social-icon-size: 24px;
	--social-target-size: 40px;
	display: flex;
	flex-wrap: wrap;
	margin: 0 !important;
	padding: 0;
}

.SocialList li {
	display: flex;
}

.SocialList li a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--social-target-size);
	height: var(--social-target-size);
}

.SocialList svg {
	width: var(--social-icon-size);
	height: var(--social-icon-size);
	fill: var(--color-heat);
	transition: fill 0.3s;
}

.SocialList a:hover svg,
.SocialList a:focus svg,
.SocialList a:active svg {
	fill: var(--color-flour);
}

/* site loading overlay (first page view per session) */
html:not(.SiteLoadSeen):has(#SiteLoadingOverlay) {
	overflow: hidden;
}

html.SiteLoadSeen #SiteLoadingOverlay {
	display: none;
}

.SiteLoadingOverlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 9000;
	background-color: var(--color-dough);
	opacity: 1;
	transition: opacity 0.5s ease;
}

.SiteLoadingOverlay.is-fading {
	opacity: 0;
	pointer-events: none;
}

.SiteLoadingOverlayBg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.SiteLoadingOverlayTexture {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: url(../img/dough-texture-bg.jpg);
	background-repeat: repeat;
	background-size: 500px 500px;
	background-position: center center;
	opacity: 0.2;
}

.SiteLoadingOverlayGraphic {
	position: relative;
	z-index: 1;
}

.SiteLoadingOverlayGraphic .OrangeOvenSVG {
	display: block;
	width: 120px;
	height: auto;
}

@media (prefers-reduced-motion: reduce) {
	.SiteLoadingOverlay {
		transition: none;
	}
}

/* popup */
.PopupOverlay[aria-hidden="true"] {
	display: none;
}

.PopupOverlay[aria-hidden="false"] {
	display: flex !important;
}

.PopupOverlay {
	align-items: center;
	position: fixed;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 5000;
}

.PopupOverlay::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: var(--color-black);
	opacity: 0.8;
}

.PopupCloseBtn {
	position: absolute;
	top: 0;
	right: 0;
	width: 40px;
	height: 40px;
	background: var(--color-heat) !important;
}

.PopupCloseBtn:hover,
.PopupCloseBtn:focus,
.PopupCloseBtn:active {
	background: var(--color-black) !important;
}

.PopupCloseBtn svg {
	width: 20px;
	fill: var(--color-flour);
}

.PopupOverlayContent {
	max-height: calc(100vh - 80px);
	overflow: auto;
	background: var(--color-flour);
	outline: 1px solid var(--color-ash);
}

.PopupTxtFrame {
	padding: 20px 5% 40px;
}

/* slideshows */
.swiper {
	width: 100%;
	background: url(../img/spinner.svg) no-repeat center;
	/* for 40x40 pagination elements */
	--swiper-pagination-bullet-width: 40px;
	--swiper-pagination-bullet-height: 40px;
	--swiper-pagination-bullet-border-radius: 0;
	--swiper-pagination-bullet-inactive-color: transparent;
	--swiper-pagination-bullet-horizontal-gap: 0;
	--swiper-pagination-bullet-inactive-opacity: 1;
}

/* slideshow: prev/next buttons */
/* [class^="swiper-button"] {}

.swiper-button-prev {}

.swiper-button-next {} */

/* slideshow: pseudo element pagination (image gallery overlay only; slideshow block uses its own markup) */
.ImgGallerySwiper .swiper-pagination .swiper-pagination-bullet-active {
	--swiper-pagination-color: transparent;
	--swiper-pagination-bullet-opacity: 1;
}

.ImgGallerySwiper .swiper-pagination .swiper-pagination-bullet {
	position: relative;
}

.ImgGallerySwiper .swiper-pagination .swiper-pagination-bullet::before {
	content: "";
	width: 30px;
	height: 3px;
	background: var(--color-white);
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	transition: all 0.3s;
}

.ImgGallerySwiper .swiper-pagination .swiper-pagination-bullet:not(.swiper-pagination-bullet-active):hover::before,
.ImgGallerySwiper .swiper-pagination .swiper-pagination-bullet:not(.swiper-pagination-bullet-active):active::before,
.ImgGallerySwiper .swiper-pagination .swiper-pagination-bullet:not(.swiper-pagination-bullet-active):focus::before {
	background: var(--color-stone);
}

.ImgGallerySwiper .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active::before {
	background: var(--color-heat);
}

/* Meow Gallery (this will overwrite the "gutter" in Meow Gallery settings) */
.mgl-root {
	--meow-gutter: min(3vw, 50px);
}

.mgl-gallery {
	width: calc(100% + var(--meow-gutter) * 2) !important;
	margin-top: calc(var(--meow-gutter) * -1) !important;
	margin-left: calc(var(--meow-gutter) * -1) !important;
}

.mgl-gallery .mgl-box {
	padding: 0 !important;
}

.mgl-gallery .mgl-icon {
	padding: var(--meow-gutter) !important;
}