.elementor-423 .elementor-element.elementor-element-ftbar01{--display:flex;}.elementor-423 .elementor-element.elementor-element-ftbar02{--display:flex;}.elementor-423 .elementor-element.elementor-element-858df78{text-align:start;}.elementor-423 .elementor-element.elementor-element-858df78 img{width:187px;}.elementor-423 .elementor-element.elementor-element-ftgrn01{--display:flex;}.elementor-423 .elementor-element.elementor-element-ftgrn02{--display:flex;}.elementor-423 .elementor-element.elementor-element-ftrow01{--display:flex;}.elementor-423 .elementor-element.elementor-element-ftsoc01{--display:flex;}.elementor-423 .elementor-element.elementor-element-0435364 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(18px/2);}.elementor-423 .elementor-element.elementor-element-0435364 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(18px/2);}.elementor-423 .elementor-element.elementor-element-0435364 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(18px/2);}.elementor-423 .elementor-element.elementor-element-0435364 .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-18px/2);}.elementor-423 .elementor-element.elementor-element-0435364 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-18px/2);}.elementor-423 .elementor-element.elementor-element-0435364 .elementor-icon-list-icon i{color:#00833F;transition:color 0.3s;}.elementor-423 .elementor-element.elementor-element-0435364 .elementor-icon-list-icon svg{fill:#00833F;transition:fill 0.3s;}.elementor-423 .elementor-element.elementor-element-0435364{--e-icon-list-icon-size:20px;--icon-vertical-offset:0px;}.elementor-423 .elementor-element.elementor-element-0435364 .elementor-icon-list-text{transition:color 0.3s;}.elementor-423 .elementor-element.elementor-element-ftrow02{--display:flex;}.elementor-423 .elementor-element.elementor-element-ftcol01{--display:flex;}.elementor-423 .elementor-element.elementor-element-ftcol02{--display:flex;}.elementor-423 .elementor-element.elementor-element-ftcol03{--display:flex;}.elementor-423 .elementor-element.elementor-element-ftnew01{--display:flex;}.elementor-423 .elementor-element.elementor-element-ftrow03{--display:flex;}body.elementor-page-423{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}@media(max-width:767px){.elementor-423 .elementor-element.elementor-element-858df78{text-align:start;}}/* Start custom CSS *//* ===== ANDERSENS FOOTER -- FIGMA REBUILD, 9 September 2026 ==================
   Rebuilt from Figma frames 29:704 (desktop, footer y5271-5919) and 58:1267
   (mobile, y6047-7544). Replaces the 2026 cream footer.

   HAND-SCOPED TO .elementor-423 ON PURPOSE. Do NOT use Elementor's placeholder
   keyword in this document. On an oceanwp_library post it expands to
   body.elementor-page-423, a class that only exists on post 423's own
   permalink, so every rule would compile, ship, and match nothing on the pages
   that actually render the footer. (Caught on staging 14/08, kept here.)

   The two bands break out of OceanWP's width-constrained
   #footer-widgets .container with the calc(50% - 50vw) margin trick: margins
   only, never a viewport unit positioning content.

   ONE DELIBERATE DEVIATION: Figma's mobile frame puts the body copy and the
   "Right at home." badge inside the CREAM band; desktop puts them in the GREEN
   band. Those are separate full-bleed containers, so matching both would mean
   two copies of the same paragraph in the DOM. There is one copy, in the green
   band, which on mobile sits at the top of the green instead of the foot of the
   cream. Flagged rather than duplicated.
   ========================================================================== */

.elementor-423 .elementor-element.elementor-element-ftbar01,
.elementor-423 .elementor-element.elementor-element-ftgrn01 {
	width: auto !important;
	max-width: none !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	--padding-inline-start: 0px; --padding-inline-end: 0px;
}

/* ---------- cream bar ---------- */
.elementor-423 .elementor-element.elementor-element-ftbar01 { background: #F6F5EF; border-radius: 15px 15px 0 0; padding: 45px 30px 42px 30px; }
.elementor-423 .elementor-element.elementor-element-ftbar02 {
	max-width: none; margin: 0;
	flex-direction: row; align-items: center; justify-content: space-between;
	gap: 20px; padding: 0;
}
.elementor-423 .ft-logo { width: auto; }
.elementor-423 .ft-logo img { width: 187px; height: auto; display: block; }
.elementor-423 .ft-actionwrap { width: auto; }
.elementor-423 .ft-actions { display: flex; align-items: center; gap: 14px; }
.elementor-423 .ft-search {
	width: 67px; height: 67px; border-radius: 50%; background: #FFFFFF;
	box-shadow: 0 0 9.3px 0 rgba(255,164,0,.05);
	display: flex; align-items: center; justify-content: center;
	color: #00833F; flex: none; text-decoration: none;
}
.elementor-423 .ft-pill {
	display: flex; align-items: center; background: #FFFFFF;
	box-shadow: 0 0 9.3px 0 rgba(255,164,0,.05);
	border-radius: 34px; height: 67px; padding: 5px 5px 5px 0; flex: none;
}
.elementor-423 .ft-pill-label {
	color: #00833F; font-size: 14px; font-weight: 600; text-decoration: none;
	padding: 0 18px 0 24px; white-space: nowrap;
}
.elementor-423 .ft-pill-btn {
	background: #00833F; color: #FFFFFF; border-radius: 29px; height: 57px;
	display: flex; align-items: center; justify-content: center; padding: 0 25px; min-width: 130px;
	font-size: 14px; font-weight: 600; white-space: nowrap; text-decoration: none;
}
.elementor-423 .ft-pill-btn:hover { background: #00622F; color: #FFFFFF; }
.elementor-423 .ft-search:hover { background: #EDEBE1; }

/* ---------- green band ---------- */
.elementor-423 .elementor-element.elementor-element-ftgrn01 {
	background: #00833F; border-radius: 15px 15px 0 0;
	padding: 30px 30px 37px 30px; color: #FFFFFF;
}
.elementor-423 .elementor-element.elementor-element-ftgrn02 { max-width: none; margin: 0; padding: 0; gap: 0; }

/* Figma puts the "Get social." pill and the "Connect with us." card on the same
   left edge and the same width (both x1076 w334), and the badge on the body
   copy's edge. The pill was in a flex row while the card is a grid column, so
   they only happened to be close. Same grid for both, and they line up by
   construction at any width. */
.elementor-423 .elementor-element.elementor-element-ftrow01 {
	display: grid;
	grid-template-columns: 377fr 130fr 148fr 173fr 218fr 334fr;
	align-items: center;
	gap: 0; padding: 0; margin-bottom: 29px;
}
.elementor-423 .ft-badge { grid-column: 1; justify-self: start; }
.elementor-423 .elementor-element.elementor-element-ftsoc01 { grid-column: 6; }
.elementor-423 .ft-badge {
	border: 1.238px solid #FFFFFF; border-radius: 6.19px;
	display: inline-flex; align-items: center; justify-content: center;
	height: 52px; padding: 0 12.381px; box-sizing: border-box; width: auto;
}
.elementor-423 .ft-badge .elementor-heading-title {
	font-family: "Instrument Serif", Georgia, "Times New Roman", serif !important;
	font-weight: 400; font-size: 29.22px; line-height: .95; color: #FFFFFF; margin: 0;
}
/* Radii here are 10px, NOT a pill. Both 52px-tall boxes -- this pill and the
   newsletter field -- were shipped at 26px, which at that height is a full
   pill. Figma draws them as soft rectangles: 29:963 and 29:957 on desktop,
   58:1562 and 58:1557 on mobile, all rounded-[10px]. The CREAM BAR buttons
   are the exception and stay fully round: 29:714 is 40px on a 67px box and
   29:715 is 103px on a 57px box, both of which clamp to a pill. */
.elementor-423 .elementor-element.elementor-element-ftsoc01 {
	flex-direction: row; align-items: center; justify-content: space-between;
	background: #F6F5EF; border-radius: 10px; width: 100%;
	height: 52px; padding: 0 11px 0 18px; gap: 12px;
}
.elementor-423 .ft-sociallabel { width: auto; }
.elementor-423 .ft-sociallabel .elementor-heading-title {
	font-family: "Instrument Serif", Georgia, "Times New Roman", serif !important;
	white-space: nowrap;
	font-weight: 400; font-size: 32px; line-height: .95; letter-spacing: -.96px; color: #00833F; margin: 0;
}
.elementor-423 .ft-sociallabel .elementor-heading-title span { color: #2BDE81; }
/* the widget wrapper is a flex item and was shrinking to 137 while its list
   needs 155, so the icons overflowed 18px past it and sat 2 from the pill
   edge instead of Figma's 11. */
/* The widget wrapper resists sizing to its own list (it keeps computing 137
   while the four icons need 155), so instead of fighting its intrinsic
   width, let it fill the space left over and right-align the list inside.
   The last icon then lands on the pill's padding edge by definition. */
.elementor-423 .ft-social,
.elementor-423 .ft-social .elementor-widget-container {
	flex: 1 1 auto; width: auto !important; max-width: none !important;
}
/* Elementor's inline icon-list layout puts a negative margin on the <ul>,
   which made it 18px wider than its parent and pushed the last icon past
   the pill's padding. Pin the box explicitly. */
.elementor-423 .ft-social ul {
	width: 100% !important; max-width: 100% !important;
	margin: 0 !important; padding: 0 !important;
	box-sizing: border-box !important;
	justify-content: flex-end;
}
/* the icon list keeps its own per-item spacing, which pushed the fourth icon
   onto a second row and grew the pill from 52 to 69. Force one row. */
.elementor-423 .ft-social ul {
	display: flex !important; flex-wrap: nowrap !important;
	align-items: center; gap: 9px; margin: 0; padding: 0; list-style: none;
}
.elementor-423 .ft-social li { margin: 0 !important; padding: 0 !important;
	width: 32px !important; flex: 0 0 32px;
	display: flex; align-items: center; justify-content: center; }
.elementor-423 .ft-social .elementor-icon-list-item a { padding: 0; display: flex; align-items: center; line-height: 0; }
/* Font Awesome converts some of these to inline SVG and leaves the rest as <i>.
   The SVG carries its own sizing, so both forms have to be pinned or the four
   icons come out at two different sizes (30 and 25). */
.elementor-423 .ft-social svg.svg-inline--fa,
.elementor-423 .ft-social .elementor-icon-list-icon svg {
	width: 32px !important; height: 32px !important;
}
.elementor-423 .ft-social i, .elementor-423 .ft-social svg, .elementor-423 .ft-social .elementor-icon-list-icon i {
	width: 32px; height: 32px; font-size: 22px; line-height: 32px; text-align: center; display: block;
	color: #00833F; fill: #00833F;
}
.elementor-423 .ft-social .elementor-icon-list-item a:hover i { color: #2BDE81 !important; }

/* main row: body | (gap) | three link columns | newsletter */
.elementor-423 .elementor-element.elementor-element-ftrow02 {
	display: grid;
	grid-template-columns: 377fr 130fr 148fr 173fr 218fr 334fr;
	align-items: start; gap: 0; padding: 0;
}
.elementor-423 .ft-body { grid-column: 1; grid-row: 1; }
.elementor-423 .elementor-element.elementor-element-ftcol01 { grid-column: 3; grid-row: 1 / span 2; }
.elementor-423 .elementor-element.elementor-element-ftcol02 { grid-column: 4; grid-row: 1 / span 2; }
.elementor-423 .elementor-element.elementor-element-ftcol03 { grid-column: 5; grid-row: 1 / span 2; }
.elementor-423 .elementor-element.elementor-element-ftnew01 { grid-column: 6; grid-row: 1 / span 2; }

.elementor-423 .ft-body p {
	font-family: "Instrument Serif", Georgia, "Times New Roman", serif !important;
	font-weight: 400; font-size: 24px; line-height: 1.15; color: #FFFFFF; margin: 0;
}
.elementor-423 .elementor-element.elementor-element-ftcol01,
.elementor-423 .elementor-element.elementor-element-ftcol02,
.elementor-423 .elementor-element.elementor-element-ftcol03 { padding: 0; gap: 0; }
.elementor-423 .ft-colhead .elementor-heading-title {
	font-family: "Inter", -apple-system, "system-ui", "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
	font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase;
	color: #2BDE81; margin: 0 0 10px 0; line-height: .95;
}
.elementor-423 .ft-collinks p { margin: 0; }
.elementor-423 .ft-collinks a {
	display: block; color: #FFFFFF; text-decoration: none;
	font-size: 16px; line-height: 1.8; white-space: nowrap;
}
.elementor-423 .ft-collinks a:hover { color: #2BDE81; }

/* newsletter card */
.elementor-423 .elementor-element.elementor-element-ftnew01 {
	border: 1px solid #FFFFFF; border-radius: 10px;
	padding: 14px 10px 18px 18px; gap: 0;
}
.elementor-423 .ft-newshead .elementor-heading-title {
	font-family: "Instrument Serif", Georgia, "Times New Roman", serif !important;
	white-space: nowrap;
	font-weight: 400; font-size: 32px; line-height: .95; letter-spacing: -.96px; color: #FFFFFF; margin: 0 0 8px 0;
}
.elementor-423 .ft-newshead .elementor-heading-title span { color: #2BDE81; }
.elementor-423 .ft-newscopy p { font-size: 14px; line-height: 21px; color: #FFFFFF; margin: 0 0 14px 0; max-width: 265px; }
.elementor-423 .ft-newsfield { display: flex; align-items: center; background: #F6F5EF; border-radius: 10px; height: 52px; padding: 0 8px 0 18px; }
.elementor-423 .ft-newsfield input {
	flex: 1 1 auto; min-width: 0; border: 0; background: transparent; outline: none;
	font-size: 14px; color: #1A1A1A; height: 100%;
}
.elementor-423 .ft-submit {
	text-transform: none;
	letter-spacing: normal;
	display: flex; align-items: center; gap: 8px; border: 0; background: transparent;
	color: #00833F; font-size: 12px; font-weight: 600; cursor: pointer; padding: 0 10px;
}
.elementor-423 .ft-newstcs p { font-size: 10px; line-height: 1.5; color: #FFFFFF; margin: 10px 0 0 0; }
.elementor-423 .ft-newstcs a { color: #FFFFFF; text-decoration: underline; }

/* legal row */
.elementor-423 .elementor-element.elementor-element-ftrow03 {
	flex-direction: row; align-items: center; justify-content: space-between;
	gap: 20px; padding: 0; margin-top: 44px;
}
.elementor-423 .ft-copy p,
.elementor-423 .ft-legallinks p { font-size: 10px; line-height: 15px; color: #FFFFFF; margin: 0; }
.elementor-423 .ft-copy { width: auto; }
.elementor-423 .ft-legallinks { width: auto; }
.elementor-423 .ft-legallinks a { color: #FFFFFF; text-decoration: underline; margin-left: 13px; }
.elementor-423 .ft-legallinks a:first-child { margin-left: 0; }


/* ---- phone, left column under the body copy -------------------------------
   Restored 9 September 2026 at Bron's request. Figma's footer drops it, but a
   consistent name/address/phone on every page is what local search reads, so
   the number goes back. Kept as a tel: link so it dials from a phone. The head
   office address is still out; recommend it goes back too.
   -------------------------------------------------------------------------- */
.elementor-423 .elementor-element.elementor-element-ftphn01 {
	grid-column: 1;
	grid-row: 2;
	margin-top: 26px;
}
.elementor-423 .ft-phone-label {
	font-family: "Inter", -apple-system, "system-ui", "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
	font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase;
	color: #2BDE81; line-height: 1; margin: 0 0 8px 0;
}
.elementor-423 .ft-phone-num { margin: 0; }
.elementor-423 .ft-phone-num a {
	font-family: "Instrument Serif", Georgia, "Times New Roman", serif !important;
	font-weight: 400; font-size: 42px; line-height: 46px;
	color: #FFFFFF; text-decoration: none; letter-spacing: 0;
}
.elementor-423 .ft-phone-num a:hover { color: #2BDE81; }

/* ---------- tablet ---------- */
@media (max-width: 1199px) {
	.elementor-423 .elementor-element.elementor-element-ftrow01 { display: flex; flex-direction: column; align-items: stretch; gap: 20px; }
	.elementor-423 .ft-badge { align-self: flex-start; }
	.elementor-423 .elementor-element.elementor-element-ftsoc01 { width: 100%; }
	.elementor-423 .elementor-element.elementor-element-ftrow02 {
		grid-template-columns: 1fr 1fr 1fr;
		gap: 34px 24px;
	}
	.elementor-423 .ft-body { grid-column: 1 / -1; }
	.elementor-423 .ft-body,
	.elementor-423 .elementor-element.elementor-element-ftphn01,
	.elementor-423 .elementor-element.elementor-element-ftcol01,
	.elementor-423 .elementor-element.elementor-element-ftcol02,
	.elementor-423 .elementor-element.elementor-element-ftcol03,
	.elementor-423 .elementor-element.elementor-element-ftnew01 { grid-row: auto !important; }
	.elementor-423 .elementor-element.elementor-element-ftcol01 { grid-column: 1; }
	.elementor-423 .elementor-element.elementor-element-ftcol02 { grid-column: 2; }
	.elementor-423 .elementor-element.elementor-element-ftcol03 { grid-column: 3; }
	.elementor-423 .elementor-element.elementor-element-ftnew01 { grid-column: 1 / -1; }
}

/* ---------- mobile ---------- */
@media (max-width: 767px) {
	.elementor-423 .elementor-element.elementor-element-ftbar01 { padding: 36px 20px 30px 20px; }
	.elementor-423 .elementor-element.elementor-element-ftbar02 { flex-direction: column; align-items: stretch; gap: 24px; }
	.elementor-423 .ft-logo img { width: 187px; }
	/* Figma's phone frame (58:1520) drops the search circle and runs the pill
	   the full 362 of content. Keeping the circle overflowed the pill by 23px
	   because the label and button both carry white-space: nowrap. */
	.elementor-423 .ft-search { display: none; }
	.elementor-423 .ft-actions { gap: 0; }
	.elementor-423 .ft-pill { flex: 1 1 auto; min-width: 0; justify-content: space-between; }
	.elementor-423 .ft-pill-label { padding: 0 12px 0 18px; }
	.elementor-423 .ft-pill-btn { padding: 0 30px; }

	.elementor-423 .elementor-element.elementor-element-ftgrn01 { padding: 27px 20px 30px 20px; }
	.elementor-423 .elementor-element.elementor-element-ftrow01 { display: flex; flex-direction: column; align-items: stretch; gap: 20px; margin-bottom: 24px; }
	.elementor-423 .ft-badge { align-self: flex-start; }
	.elementor-423 .elementor-element.elementor-element-ftsoc01 { width: 100%; }

	.elementor-423 .elementor-element.elementor-element-ftrow02 { grid-template-columns: 1fr 1fr; gap: 28px 20px; }
	.elementor-423 .ft-body { grid-column: 1 / -1; order: 1; }
	.elementor-423 .ft-body,
	.elementor-423 .elementor-element.elementor-element-ftphn01,
	.elementor-423 .elementor-element.elementor-element-ftcol01,
	.elementor-423 .elementor-element.elementor-element-ftcol02,
	.elementor-423 .elementor-element.elementor-element-ftcol03,
	.elementor-423 .elementor-element.elementor-element-ftnew01 { grid-row: auto !important; }
	/* Figma declares 24/1.15 on mobile too (58:1541), so no size step-down. */
	.elementor-423 .elementor-element.elementor-element-ftphn01 { grid-column: 1 / -1; order: 1; margin-top: 22px; }
	.elementor-423 .elementor-element.elementor-element-ftnew01 { grid-column: 1 / -1; order: 2; }
	.elementor-423 .elementor-element.elementor-element-ftcol01,
	.elementor-423 .elementor-element.elementor-element-ftcol02,
	.elementor-423 .elementor-element.elementor-element-ftcol03 { grid-column: 1 / -1; order: 3; }
	.elementor-423 .ft-collinks { columns: 2; column-gap: 20px; }

	.elementor-423 .elementor-element.elementor-element-ftrow03 { flex-direction: column; align-items: flex-start; gap: 10px; margin-top: 34px; }
	.elementor-423 .ft-legallinks a { margin-left: 0; margin-right: 22px; }
}

/* === FT BADGE VCENTRE START === */
/* The badge text sat at the TOP of its shape: 1px above, 23.24px below.
   `.ft-badge` is display:flex with align-items:center, but its single child
   `.elementor-widget-container` is given a DEFINITE height by a rule scoped
   under `.elementor-widget-heading`. Verified by probe: an empty div with
   that class stretches to 50px inside the badge and computes 0px inside a
   plain div, so it is not a flex stretch and align-items cannot shrink it.
   Figma 29:1151 puts the text frame at y=12.048 inside the 52px badge.
   Restoring height:auto lets the existing centring do its job: measured
   12.12 above / 12.13 below, i.e. symmetric and 0.07px off the Figma y.
   Added 10 September 2026. */
.elementor-423 .ft-badge .elementor-widget-container { height: auto; }
/* === FT BADGE VCENTRE END === */


/* === FT SEARCH ICON START === */
/* The footer search glyph is an inline  inside HTML widget ftact01.
   KSES strips  whenever _elementor_data is saved without unfiltered_html
   (wp eval-file runs as user 0), which is how .ft-search became an empty white
   circle on production. Redrawn here from CSS, where KSES cannot reach it,
   using the original path as a mask filled with currentColor so the inherited
   green and any hover state keep working for free.
   Two constraints this block obeys, both learned the hard way:
   - NO child combinator anywhere in a body.elementor-page-423. Elementor encodes it to an
     entity on save and an invalid body.elementor-page-423 kills the entire rule.
   - mask LONGHANDS only. background-color:currentColor is silently swallowed
     when written next to the -webkit-mask shorthand.
   If the inline svg is ever restored properly, the second rule hides it so
   exactly one glyph paints in either DOM. Added 17 September 2026. */
.elementor-423 .ft-search::before{
	content:"";
	display:block;
	width:22px;
	height:22px;
	background-color:currentColor;
	-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22' fill='none'%3E%3Ccircle cx='9.5' cy='9.5' r='7.5' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M15.5 15.5L20 20' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
	mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22' fill='none'%3E%3Ccircle cx='9.5' cy='9.5' r='7.5' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M15.5 15.5L20 20' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
	-webkit-mask-repeat:no-repeat;
	mask-repeat:no-repeat;
	-webkit-mask-position:center center;
	mask-position:center center;
	-webkit-mask-size:22px 22px;
	mask-size:22px 22px;
}
.elementor-423 .ft-search svg{display:none;}
/* === FT SEARCH ICON END === *//* End custom CSS */