.elementor-kit-5{--e-global-color-primary:#123F3C;--e-global-color-secondary:#BE7A55;--e-global-color-text:#2A211C;--e-global-color-accent:#6E8F82;--e-global-color-sand:#F2E7DA;--e-global-color-bone:#FBF7F2;--e-global-color-warmgrey:#5C5048;--e-global-color-hairline:#E3D8CA;--e-global-color-purewhite:#FFFFFF;--e-global-typography-primary-font-family:"Newsreader";--e-global-typography-primary-font-weight:400;--e-global-typography-secondary-font-family:"Karla";--e-global-typography-secondary-font-weight:600;--e-global-typography-text-font-family:"Karla";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Karla";--e-global-typography-accent-font-weight:600;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-letter-spacing:0.18em;--e-global-typography-eyebrow-font-family:"Karla";--e-global-typography-eyebrow-font-size:11px;--e-global-typography-eyebrow-font-weight:600;--e-global-typography-eyebrow-text-transform:uppercase;--e-global-typography-eyebrow-line-height:1em;--e-global-typography-eyebrow-letter-spacing:0.18em;--e-global-typography-cardtitle-font-family:"Karla";--e-global-typography-cardtitle-font-size:15px;--e-global-typography-cardtitle-font-weight:600;--e-global-typography-cardtitle-line-height:1.35em;--e-global-typography-cardtitle-letter-spacing:0.02em;--e-global-typography-bodysmall-font-family:"Karla";--e-global-typography-bodysmall-font-size:15px;--e-global-typography-bodysmall-font-weight:400;--e-global-typography-bodysmall-line-height:1.6em;--e-global-typography-caption-font-family:"Karla";--e-global-typography-caption-font-size:13px;--e-global-typography-caption-font-weight:400;--e-global-typography-caption-line-height:1.5em;color:var( --e-global-color-text );font-family:"Karla", Sans-serif;font-size:17px;font-weight:400;line-height:1.65em;}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{background-color:var( --e-global-color-primary );font-family:"Karla", Sans-serif;font-size:15px;font-weight:600;text-transform:none;letter-spacing:0.02em;color:var( --e-global-color-bone );border-radius:0px 0px 0px 0px;padding:17px 28px 17px 28px;}.elementor-kit-5 button:hover,.elementor-kit-5 button:focus,.elementor-kit-5 input[type="button"]:hover,.elementor-kit-5 input[type="button"]:focus,.elementor-kit-5 input[type="submit"]:hover,.elementor-kit-5 input[type="submit"]:focus,.elementor-kit-5 .elementor-button:hover,.elementor-kit-5 .elementor-button:focus{background-color:var( --e-global-color-secondary );color:var( --e-global-color-bone );}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-kit-5 a{color:var( --e-global-color-secondary );font-family:"Karla", Sans-serif;font-weight:400;}.elementor-kit-5 a:hover{color:var( --e-global-color-primary );}.elementor-kit-5 h1{color:var( --e-global-color-primary );font-family:"Newsreader", Sans-serif;font-size:60px;font-weight:400;line-height:1.03em;letter-spacing:-0.02em;}.elementor-kit-5 h2{color:var( --e-global-color-primary );font-family:"Newsreader", Sans-serif;font-size:40px;font-weight:400;line-height:1.08em;letter-spacing:-0.01em;}.elementor-kit-5 h3{color:var( --e-global-color-primary );font-family:"Newsreader", Sans-serif;font-size:26px;font-weight:500;line-height:1.2em;}.elementor-kit-5 h4{color:var( --e-global-color-text );font-family:"Karla", Sans-serif;font-size:15px;font-weight:600;line-height:1.35em;letter-spacing:0.02em;}.elementor-kit-5 h5{color:var( --e-global-color-warmgrey );font-family:"Karla", Sans-serif;font-size:13px;font-weight:600;text-transform:uppercase;line-height:1.4em;letter-spacing:0.06em;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-5{font-size:16px;}.elementor-kit-5 h1{font-size:38px;line-height:1.08em;}.elementor-kit-5 h2{font-size:30px;line-height:1.12em;}.elementor-kit-5 h3{font-size:22px;line-height:1.25em;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* --- Focus ring: WCAG, and Hello Elementor ships nothing for it --- */
a:focus-visible,
button:focus-visible,
.elementor-button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
	outline: 2px solid var(--e-global-color-secondary);
	outline-offset: 2px;
	border-radius: 0;
}

/* On Cypress surfaces Clay drops to ~2.9:1, so the ring switches to Eucalyptus */
.psc-on-cypress a:focus-visible,
.psc-on-cypress button:focus-visible,
.psc-on-cypress .elementor-button:focus-visible {
	outline-color: var(--e-global-color-accent);
}

/* --- Buttons --- */
.elementor-button {
	transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}

.psc-btn-disabled .elementor-button,
.elementor-button[disabled] {
	background-color: var(--e-global-color-hairline) !important;
	color: var(--e-global-color-warmgrey) !important;
	border-color: transparent !important;
	cursor: default;
	pointer-events: none;
}

@media (max-width: 767px) {
	.elementor-widget-button .elementor-button {
		width: 100%;
		min-height: 56px;
		font-size: 16px;
		display: flex;
		align-items: center;
		justify-content: center;
	}
}

/* --- Body measure: 68 characters, never the full container --- */
.psc-measure > .elementor-widget-container,
.psc-measure p {
	max-width: 68ch;
}

/* --- Card: square, hairline, no shadow --- */
.psc-card { transition: border-color 160ms ease; }
.psc-card:hover { border-color: var(--e-global-color-accent); }

/* --- Aesthetics photo tile: Cypress gradient, type bottom-left --- */
.psc-photo-tile { position: relative; }
.psc-photo-tile::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(18,63,60,.78) 0%, rgba(18,63,60,0) 55%);
	pointer-events: none;
}
.psc-photo-tile > * { position: relative; z-index: 1; }

/* --- Placeholder standing in for photography not yet delivered --- */
.psc-placeholder {
	background-image: repeating-linear-gradient(
		45deg,
		var(--e-global-color-hairline) 0 10px,
		var(--e-global-color-sand) 10px 20px
	);
}
/* PSC-CHROME-START */
/* ===== Header ===== */
.psc-header { border-bottom: 1px solid var(--e-global-color-hairline); }
.psc-lockup-rule {
	border-left: 1px solid #DCC9B3;
	padding-left: 14px;
}

/* Main menu — §5. Hover and current differ by underline WEIGHT only, so the
   user can always see where they are even while pointing elsewhere. */
.psc-nav .elementor-item {
	color: var(--e-global-color-text);
	font-family: "Karla", sans-serif;
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
}
.psc-nav .elementor-item:hover,
.psc-nav .elementor-item:focus {
	color: var(--e-global-color-primary);
	text-decoration: underline;
	text-decoration-color: var(--e-global-color-secondary);
	text-decoration-thickness: 1px;
	text-underline-offset: 6px;
}
.psc-nav .elementor-item.elementor-item-active,
.psc-nav .elementor-item-active {
	color: var(--e-global-color-primary);
	text-decoration: underline;
	text-decoration-color: var(--e-global-color-secondary);
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}
/* Elementor ships .elementor-nav-menu--layout-horizontal .elementor-nav-menu
   {flex-wrap:wrap} at 0,2,0 and loads after this file, so an equal-specificity
   rule loses on source order. Win inside the vendor's own scope at 0,3,0
   rather than reaching for !important. */
.psc-nav .elementor-nav-menu--layout-horizontal .elementor-nav-menu { flex-wrap: nowrap; }
.psc-nav .elementor-item { white-space: nowrap; }
.psc-nav-wrap { flex-wrap: nowrap; }
.psc-nav-wrap .elementor-widget-nav-menu { flex-shrink: 0; }
.psc-nav .elementor-item:focus-visible {
	outline: 2px solid var(--e-global-color-secondary);
	outline-offset: 3px;
}

/* ===== Footer, on Cypress =====
   Clay is deliberately absent: Clay on Cypress is roughly 2.9:1 and fails
   4.5:1 for body text. Sand on Cypress is about 11:1. */
.psc-footer a {
	color: var(--e-global-color-sand);
	font-family: "Karla", sans-serif;
	font-weight: 400;
	font-size: 15px;
	text-decoration: none;
}
.psc-footer a:hover {
	color: var(--e-global-color-purewhite);
	text-decoration: underline;
	text-decoration-color: var(--e-global-color-sand);
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}
.psc-footer a:focus-visible {
	outline: 2px solid var(--e-global-color-accent);
	outline-offset: 2px;
}
.psc-footer .psc-col-heading {
	color: var(--e-global-color-accent);
}
.psc-footer-rule { border-left: 1px solid rgba(240,230,218,.35); padding-left: 14px; }

/* ===== Lockup: the mark and the words must never break apart ===== */
.psc-lockup { flex-wrap: nowrap !important; align-items: center; }
.psc-lockup .psc-word,
.psc-lockup .psc-sub { white-space: nowrap; }
.psc-footer-rule { margin-bottom: 18px; }

/* Nothing in the chrome may exceed the viewport */
.psc-header, .psc-header *, .psc-footer, .psc-footer * { max-width: 100%; }
.psc-footer a, .psc-footer p { overflow-wrap: anywhere; }

/* ===== Tablet: keep the real menu, there is room for it ===== */
@media (max-width: 1024px) {
	.psc-header { padding-left: 24px !important; padding-right: 24px !important; }
	.psc-header-inner { gap: 16px; }
	.psc-nav-wrap { gap: 16px !important; }
}

/* ===== Mobile ===== */
@media (max-width: 767px) {
	.psc-header { padding-left: 20px !important; padding-right: 20px !important; }
	.psc-header-inner {
		flex-direction: row !important;
		flex-wrap: wrap;
		gap: 12px;
		justify-content: space-between;
	}
	/* Phone number and the booking CTA drop below the lockup + burger row */
	.psc-nav-wrap {
		width: 100%;
		justify-content: space-between;
		flex-wrap: wrap;
		gap: 12px !important;
	}
	/* §4: the booking CTA is full-width and 56px tall on mobile */
	.psc-nav-wrap .elementor-widget-button { width: 100%; }
	.psc-footer { padding-left: 20px !important; padding-right: 20px !important; }
	/* Columns stack: links -> contact -> hours */
	.psc-footer .e-con > .e-con,
	.psc-footer .e-con-inner > .e-con { width: 100% !important; }
}
/* PSC-CHROME-END */
/* PSC-WIRE-START */
.psc-wire {
	border: 1px dashed var(--e-global-color-hairline);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}
.psc-wire .psc-wire-label {
	font-family: "Karla", sans-serif;
	font-weight: 600;
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--e-global-color-warmgrey);
}
.psc-on-cypress .psc-wire { border-color: rgba(240,230,218,.35); }

/* Compound .elementor-kit-5 + literal hex. Four identical sibling placeholders
   resolved the var()-based .psc-placeholder rule inconsistently (two painted
   the hatch, two computed background-image:none) with no competing rule and
   identical custom-property values. Unexplained; this rule sidesteps it. */
.psc-wire.psc-placeholder {
	background-image: repeating-linear-gradient(45deg, #E3D8CA 0 10px, #F2E7DA 10px 20px);
}
.psc-on-cypress .psc-wire.psc-placeholder {
	background-image: repeating-linear-gradient(45deg, rgba(240,230,218,.10) 0 10px, rgba(240,230,218,.04) 10px 20px);
}
.psc-on-cypress .psc-wire .psc-wire-label { color: var(--e-global-color-sand); }

/* Page header: gradient scrim only where type sits, per the photo policy */
.psc-page-header { position: relative; }
.psc-page-header::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(18,63,60,.93) 0%, rgba(18,63,60,.78) 26%, rgba(18,63,60,.34) 44%, rgba(18,63,60,0) 58%);
	pointer-events: none;
}
.psc-page-header > * { position: relative; z-index: 1; }

@media (max-width: 1024px) {
	.psc-page-header::after {
		background: linear-gradient(90deg, rgba(18,63,60,.93) 0%, rgba(18,63,60,.82) 55%, rgba(18,63,60,.45) 100%);
	}
}
@media (max-width: 767px) {
	.psc-row-wrap { flex-direction: column !important; }
	.psc-row-wrap > .e-con { width: 100% !important; }
	/* ELEMENTOR-BUILD.md §5: four-up grids go 2-up on mobile, not 1-up.
	   The column rule above has to be reversed for these, or they stack. */
	.psc-grid-4 { flex-direction: row !important; flex-wrap: wrap !important; }
	.psc-grid-4 > .e-con { width: calc(50% - 8px) !important; }
	.psc-grid-3 > .e-con { width: 100% !important; }
}
/* PSC-WIRE-END *//* End custom CSS */