/* =========================================================================
   Elsner Footer
   Scoped entirely under .site-footer (parent class).
   Markup it targets:
     site-footer > container > footer-wrapper > row > col-*
   Grid / responsiveness handled by Bootstrap (row / col); this file only
   themes the sections.
   ========================================================================= */

.site-footer {
	position: relative;
	background: linear-gradient(180deg, #FEF6F2 4.28%, rgba(254, 246, 242, 0) 100%);

	color: #000;
	padding-top: 80px;
	font-size: 14px;
	line-height: 1.6;
}

/* Vertical rhythm between the wrapped grid lines (top block -> columns ->
   locations -> copyright). This reimplements Bootstrap's own gy-* gutter
   mechanism by hand (row gets a negative top margin, matched by a positive
   one on the blocks below, which cancels out for the first line and shows
   up as a gap for every wrapped line after it) instead of using the `gy-4
   gy-lg-5` utility classes or the `--bs-gutter-y` custom property directly —
   this site's global stylesheet has repeatedly been found stripping/
   resetting Bootstrap gutter values elsewhere in this theme (see the
   `.features-grid-list` fix in home.css for the same class of collision),
   so the hardcoded, ``-guarded values below are kept in the same
   place and changed together, rather than trusting a variable that
   something else on the page could silently zero out.

   Deliberately targets each block by name instead of a blanket `.row > *`:
   `.footer-locations` and `.footer-copyright` already carry their own
   distinct spacing below (they're not part of this shared rhythm), so a
   blanket rule would need `` fights to carve them back out —
   listing only the blocks that actually share this gutter avoids that. */


.site-footer .footer-col,
.site-footer .footer-contact {
	margin-top: 5rem;
}

/* ------------------------------------------------------------------ Branding */
.site-footer .footer-logo {
	display: inline-block;
	margin-bottom: 22px;
}

.site-footer .footer-logo img {
	max-width: 160px;
	height: auto;
}

.site-footer .footer-desc {
	max-width: 340px;
	margin: 0 0 30px;
	font-weight: 400;
	font-size: 16px;
	color: #000;
}

/* ------------------------------------------------------------------- Social */
.site-footer .footer-social {
	gap: 12px;
	margin: 0;
	padding: 0;
	flex-wrap: wrap;
}

.site-footer .footer-social__item {
	list-style: none;
}

.site-footer .footer-social a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: #111111;
	color: #ffffff;
	font-size: 15px;
	text-decoration: none;
	transition: background .2s ease, transform .2s ease;
}

.site-footer .footer-social a:hover {
	background: #f26522;
	transform: translateY(-2px);
}

.site-footer .footer-social a i {
	color: #ffffff;
	line-height: 1;
}

.site-footer .footer-social a img {
	width: 16px;
	height: 16px;
	object-fit: contain;
}

/* --------------------------------------------------------------- Newsletter */
.site-footer .footer-newsletter__heading {
	color: #000;
	font-size: 16px;
	font-weight: 500;
	margin: 0 0 16px;
}

.site-footer .footer-newsletter__form {
	display: flex;
	align-items: center;
	width: 100%;
	max-width: 440px;
	background: #ffffff;
	border: 1px solid #f0ddd0;
	border-radius: 999px;
	padding: 6px 6px 6px 24px;
	box-shadow: 0 12px 30px rgba(242, 101, 34, .07);
}

.site-footer .footer-newsletter__form input {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	background: transparent;
	outline: none;
	font-size: 15px;
	color: #000;
}

.site-footer .footer-newsletter__form input::placeholder {
	color: #9a9a9a;
}

.site-footer .footer-newsletter__form button {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border: 0;
	cursor: pointer;
	background: #f26522;
	color: #fff;
	font-size: 14px;
	font-weight: 500;
	border-radius: 999px;
	padding: 12px 26px;
	transition: background .2s ease;
}

.site-footer .footer-newsletter__form button:hover {
	background: #d9531a;
}

.site-footer .footer-newsletter__form button::after {
	content: "\2192";
	/* → arrow to match the design */
	font-size: 15px;
	line-height: 1;
}
.footer-newsletter__form {
    display: flex;
    align-items: center;
    gap: 0;
    width: 100%;
    max-width: 430px;
    height: 60px;
    padding: 5px;
    margin: 0;
    border: 1px solid #f1d8cf;
    border-radius: 50px;
    background: #fff;
    box-sizing: border-box;
}

/* Remove CF7 default paragraph spacing */
.footer-newsletter__form p {
    display: contents;
    margin: 0;
    padding: 0;
}

/* CF7 field wrapper */
.footer-newsletter__form .wpcf7-form-control-wrap {
    flex: 1;
    width: 100%;
    margin: 0;
}

/* Email input */
.footer-newsletter__form input[type="email"] {
    display: block;
    width: 100%;
    height: 50px;
    padding: 0 20px;
    margin: 0;
	margin-bottom: 0 !important;
    border: 0;
    outline: 0;
    background: transparent;
    box-shadow: none;
    color: #1a1a1a;
    font-size: 14px;
    font-weight: 400;
    box-sizing: border-box;
}
.footer-newsletter__form span.wpcf7-not-valid-tip {
    margin-top: 12px;
	position: absolute;
}
.footer-newsletter__form input[type="email"]::placeholder {
    color: #999;
    opacity: 1;
}

.footer-newsletter__form input[type="email"]:focus {
    border: 0;
    outline: 0;
    box-shadow: none;
}

/* Submit button */
.footer-newsletter__form input[type="submit"] {
    flex: 0 0 120px;
    width: 120px;
    height: 50px;
    padding: 0 20px;
    margin: 0;
    border: 0;
    border-radius: 50px;
    background: #ff6335;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    text-align: center;
    cursor: pointer;
    box-shadow: none;
    transition: background-color 0.3s ease;
}

.footer-newsletter__form input[type="submit"]:hover {
    background: #e95429;
}

/* Hide CF7 spinner */
.footer-newsletter__form .wpcf7-spinner {
    display: none;
}

/* Hide accessibility label visually */
.footer-newsletter__form .screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
/* ------------------------------------------------------- Link / info columns */
/* Only at lg+ (992px, where footer-col goes 4-across via col-lg-3 in
   footer.php) — below that the columns stack 1-up or 2x2 (col-12/col-sm-6),
   where narrowing + right-pushing just the last one breaks the row instead
   of aligning it.

   `:last-of-type`, not `:last-child` — .footer-col is only ever applied to
   <nav> elements (Services/Company/Information), while the "Get in touch"
   column between Company and Information is a <div> (.footer-contact).
   `:last-child` requires literal last position among ALL siblings
   (including footer-contact, footer-locations, footer-copyright after it),
   which no .footer-col ever is — so that selector matched nothing at all.
   `:last-of-type` counts siblings by tag, so it correctly finds the last
   <nav> regardless of the <div> sitting in between. */
@media (min-width: 992px) {
	.site-footer .footer-col:last-of-type {
		max-width: 160px;

		margin-left: auto;
	}
}

.site-footer .footer-col__title {
	color: #000;
	font-size: 18px;
	font-weight: 600;
	margin: 0 0 16px;
}

.site-footer .footer-links,
.site-footer .footer-contact__list {
	margin: 0;
	padding: 0;
}

.site-footer .footer-links li {
	margin-bottom: 10px;
	font-size: 16px;
}

.site-footer .footer-links li:last-child {
	margin-bottom: 0;
}

.site-footer .footer-links a {
	color: #000;
	font-weight: 400;
	text-decoration: none;
	transition: color .2s ease;
}

.site-footer .footer-links a:hover {
	color: #FB6617;
}

/* ------------------------------------------------------------- Contact info */
.site-footer .footer-contact__item {
	margin-bottom: 10px;
	font-size: 16px;
	font-weight: 400;
}

.site-footer .footer-contact__item:last-child {
	margin-bottom: 0;
}

.site-footer .footer-contact__item a,
.site-footer .footer-contact__item span {
	color: #000;
	text-decoration: none;
	transition: color .2s ease;
}

.site-footer .footer-contact__item a:hover {
	color: #f26522;
}

.site-footer .footer-contact__item.is-address span {
	display: block;
	/* address wraps onto its own lines */
}

/* --------------------------------------------------------------- Locations */
.site-footer .footer-locations {
	margin-top: 4rem;
}

.site-footer .footer-locations__heading {
	display: block;
	text-align: center;
	color: #000;
	font-weight: 500;
	margin-bottom: 14px;
}

.site-footer .footer-locations__list {
	margin: 0;
	padding: 0;
	row-gap: 16px;
}

.site-footer .footer-locations__list li {
	position: relative;
	padding: 0 24px;
	line-height: 1;
}

.site-footer .footer-locations__list li:not(:last-child)::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
	height: 14px;
	background: #e6e1dd;
}

.site-footer .footer-locations__list a,
.site-footer .footer-locations__list span {
	color: #000;
	font-size: 16px;
	text-decoration: none;
	cursor:text;
	pointer-events: none;
	transition: color .2s ease;
}

.site-footer .footer-locations__list a:hover {
	color: #000;
}

/* --------------------------------------------------------------- Copyright */
.site-footer .footer-copyright {
	margin-top: 3rem;
	padding: 22px 0;
	border-top: 1px solid #DADADA;
	text-align: center;
}

.site-footer .footer-copyright p {
	margin: 0;
	font-size: 14px;
	color: #000000;
}

/* --------------------------------------------------- Scroll-to-top (optional) */
.site-footer #scroll-to-top-button {
	position: fixed;
	right: 24px;
	bottom: 24px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #f26522;
	cursor: pointer;
	z-index: 60;
	display: none;
	/* your JS toggles this on scroll */
}

.site-footer #scroll-to-top-button::before {
	content: "\2191";
	color: #fff;
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
}

.footer-newsletter {
	max-width: 460px;
	margin-left: auto;
}

/* ============================ Responsive tweaks ============================ */
/* Bootstrap already stacks the grid (branding/newsletter go full-width below
   lg; the four nav columns — see footer.php's `col-12 col-sm-6 col-lg-3` —
   go 1-up below sm, 2x2 between sm and lg, then 4-across at lg+); these only
   fine-tune spacing/type per tier. */

/* Laptop (Bootstrap lg only, ~992-1199px): the container is narrower here
   than on a full desktop monitor, so the desktop spacing values (built for
   a wide, roomy row) read as slightly oversized — tighten them down a step
   rather than letting four columns' worth of desktop padding fight for a
   laptop's screen width. */
@media (min-width: 992px) and (max-width: 1199.98px) {

	.site-footer .footer-branding,
	.site-footer .footer-newsletter,
	.site-footer .footer-col,
	.site-footer .footer-contact {
		margin-top: 2.5rem;
	}

	.site-footer .footer-desc {
		max-width: 280px;
	}

	.site-footer .footer-newsletter__form {
		max-width: 380px;
	}
}

/* Tablet (below lg: nav columns become a 2x2 grid, branding/newsletter stack
   full-width). */
@media (max-width: 991.98px) {
	.site-footer {
		padding-top: 48px;
	}

	.site-footer .footer-branding,
	.site-footer .footer-newsletter,
	.site-footer .footer-col,
	.site-footer .footer-contact {
		margin-top: 2.25rem;
	}

	/* Overrides the block rule just above (branding and newsletter are
	   already visually one stacked block at this width, so they need a
	   tight gap, not the full inter-section gutter) — needs a more specific
	   selector to win despite both sides using ``. */
	.site-footer .footer-wrapper>.row>.footer-newsletter {
		        margin-top: 40px;
		        margin-bottom: 20px;

        margin-left: 0;
	}

	.site-footer .footer-desc {
		max-width: none;
	}
}

/* Mobile (below sm: nav columns stack 1-up, four full-width rows instead of
   a 2x2 grid — tighten the row gutter and heading margins so that doesn't
   read as an overly long, loosely-spaced list). */
@media (max-width: 575.98px) {

	.site-footer .footer-branding,
	.site-footer .footer-newsletter,
	.site-footer .footer-col,
	.site-footer .footer-contact {
		margin-top: 1.75rem;
	}

	.site-footer .footer-col__title {
		font-size: 16px;
		margin-bottom: 16px;
	}

	/* Both need `` here too, since the base rules for these two
	   are `` as well (they're deliberately excluded from the
	   shared block-gutter rule above, so this is the only place their
	   spacing is set) — without it, this override can never win regardless
	   of viewport width. */

	.site-footer .footer-locations__list li {
		padding: 0 14px;
	}

	.site-footer .footer-newsletter__form {
		max-width: none;
		padding-left: 18px;
	}

	.site-footer .footer-newsletter__form button {
		padding: 11px 18px;
	}

	.site-footer .footer-copyright {
		margin-top: 1.75rem;
	}
}