/* LA Home Remodelers – Site: header and footer. Tokens come from base.css. */

/* ---------------------------------------------------------------- resets (themes style buttons, links and headings) */
.lahr-hdr, .lahr-ftr, .lahr-callbar { font-family: var(--lahr-font-body); -webkit-font-smoothing: antialiased; box-sizing: border-box; }
.lahr-hdr *, .lahr-hdr *::before, .lahr-hdr *::after,
.lahr-ftr *, .lahr-ftr *::before, .lahr-ftr *::after { box-sizing: border-box; }
.lahr-hdr ul, .lahr-ftr ul { list-style: none; margin: 0; padding: 0; }
.lahr-hdr li, .lahr-ftr li { margin: 0; padding: 0; }
.lahr-hdr a, .lahr-ftr a { text-decoration: none; box-shadow: none; }
.lahr-hdr button, .lahr-ftr button {
	-webkit-appearance: none; appearance: none; background: none; border: 0; border-radius: 0; box-shadow: none; margin: 0; padding: 0;
	color: inherit; font: inherit; letter-spacing: inherit; text-transform: none; text-decoration: none; line-height: inherit;
	cursor: pointer; min-height: 0; width: auto; white-space: nowrap;
}
/* Themes recolour buttons on hover/focus; ours take their colour from the parent. */
.lahr-hdr button[type=button]:hover, .lahr-hdr button[type=button]:focus, .lahr-hdr button[type=button]:active,
.lahr-ftr button[type=button]:hover, .lahr-ftr button[type=button]:focus, .lahr-ftr button[type=button]:active {
	background: none; color: inherit; text-decoration: none; box-shadow: none; border: 0;
}
.lahr-hdr a:focus-visible, .lahr-hdr button:focus-visible,
.lahr-ftr a:focus-visible, .lahr-ftr button:focus-visible { outline: 2px solid var(--lahr-blue); outline-offset: 3px; }
.lahr-ftr a:focus-visible, .lahr-ftr button:focus-visible { outline-color: var(--lahr-amber); }

/* ---------------------------------------------------------------- header bar */
.lahr-hdr {
	position: relative; z-index: 1000; background: #fff; border-bottom: 1px solid #E4EAF3;
	transition: box-shadow .2s ease;
}
.lahr-hdr.is-sticky { position: -webkit-sticky; position: sticky; top: 0; }
.admin-bar .lahr-hdr.is-sticky { top: 32px; }
.lahr-hdr.has-shadow.is-scrolled, .lahr-hdr.has-open { box-shadow: 0 6px 24px rgba(12, 44, 90, .08); }
.lahr-hdr__in {
	max-width: calc(var(--lahr-container) + 48px); margin: 0 auto; padding: 0 24px; height: 88px;
	display: flex; align-items: center; justify-content: space-between; gap: 24px;
}

/* logo */
.lahr-logo { display: flex; align-items: center; gap: 12px; flex-shrink: 0; color: var(--lahr-navy); }
.lahr-logo__img { display: block; width: auto; max-width: 100%; height: var(--lahr-logo-h, 48px); transition: height .2s ease; }
.lahr-hdr.is-sticky.is-scrolled .lahr-logo__img { height: min(var(--lahr-logo-h, 48px), 44px); }
.lahr-logo__tile { width: 48px; height: 48px; background: var(--lahr-blue); border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.lahr-logo__text { display: flex; flex-direction: column; }
.lahr-logo__name { font-family: var(--lahr-font-head); font-size: 23px; font-weight: 800; color: var(--lahr-navy); line-height: 1.1; letter-spacing: -.01em; }
.lahr-logo__name span { color: var(--lahr-red); }
.lahr-logo__tag { font-size: 11px; color: var(--lahr-muted); letter-spacing: .14em; text-transform: uppercase; margin-top: 3px; line-height: 1.4; }

/* desktop menu */
.lahr-nav { align-self: stretch; display: flex; min-width: 0; }
.lahr-menu { display: flex; align-items: stretch; gap: 30px; }
.lahr-menu__item { position: relative; display: flex; align-items: center; }
.lahr-menu__row { display: flex; align-items: center; gap: 6px; padding: 8px 0; border-bottom: 2px solid transparent; color: var(--lahr-navy); }
.lahr-hdr .lahr-menu__link, .lahr-hdr button.lahr-menu__link[type=button] {
	display: flex; align-items: center; gap: 6px; font-family: var(--lahr-font-head); font-size: 14px; font-weight: 600; line-height: 1.5;
	color: inherit; white-space: nowrap;
}
.lahr-hdr .lahr-menu__tg { display: flex; align-items: center; justify-content: center; color: inherit; }
.lahr-hdr .lahr-menu__tg .lahr-ic { transition: transform .2s ease; }
.lahr-menu__row:hover, .lahr-menu__item.is-current > .lahr-menu__row, .lahr-menu__item.is-open > .lahr-menu__row { color: var(--lahr-red-text); }
.lahr-menu__item.is-current > .lahr-menu__row, .lahr-menu__item.is-open > .lahr-menu__row { border-bottom-color: var(--lahr-red); }
.lahr-hdr .lahr-menu__link:hover, .lahr-hdr .lahr-menu__link:focus { color: inherit; }
.lahr-menu__item.is-open .lahr-menu__tg .lahr-ic { transform: rotate(180deg); }

/* dropdown */
.lahr-dd {
	position: absolute; top: 100%; left: -25px; width: 300px; padding-top: 7px; z-index: 5;
	visibility: hidden; opacity: 0; transform: translateY(6px); pointer-events: none;
	transition: opacity .16s ease, transform .16s ease, visibility 0s linear .16s;
}
.lahr-menu__item.is-open > .lahr-dd,
html:not(.lahr-js) .lahr-menu__item.has-dd:hover > .lahr-dd,
html:not(.lahr-js) .lahr-menu__item.has-dd:focus-within > .lahr-dd {
	visibility: visible; opacity: 1; transform: none; pointer-events: auto; transition-delay: 0s;
}
.lahr-dd__list { background: #fff; border-radius: var(--lahr-radius-card); box-shadow: 0 24px 60px rgba(12, 44, 90, .18); border: 1px solid #E4EAF3; padding: 10px; }
.lahr-hdr .lahr-dd__link {
	display: flex; align-items: center; gap: 12px; padding: 11px 14px; border-radius: 9px;
	font-family: var(--lahr-font-body); font-size: 15px; font-weight: 500; line-height: 1.25; color: var(--lahr-navy);
}
.lahr-hdr .lahr-dd__link:hover, .lahr-hdr .lahr-dd__link:focus, .lahr-hdr .lahr-dd__link.is-current { background: var(--lahr-light); color: var(--lahr-red-text); }
.lahr-hdr .lahr-dd__gl { font-family: var(--lahr-font-head); font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--lahr-muted); padding: 10px 14px 6px; line-height: 1.4; }
.lahr-hdr .lahr-dd__sep { height: 1px; background: var(--lahr-line-soft); margin: 6px 8px !important; }
.lahr-hdr .lahr-dd__all { font-family: var(--lahr-font-head); font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--lahr-red); gap: 8px; }
.lahr-hdr .lahr-dd__all:hover, .lahr-hdr .lahr-dd__all:focus-visible { color: var(--lahr-red-text); }

/* buttons */
.lahr-hdr__cta { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.lahr-hdr__m { display: none; align-items: center; gap: 8px; flex-shrink: 0; }
.lahr-hdr .lahr-round, .lahr-hdr button.lahr-round[type=button] {
	width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.lahr-hdr .lahr-round--red { background: var(--lahr-red); color: #fff; }
.lahr-hdr .lahr-round--red:hover { background: var(--lahr-red-text); color: #fff; }
.lahr-hdr button.lahr-burger[type=button], .lahr-hdr button.lahr-burger[type=button]:hover, .lahr-hdr button.lahr-burger[type=button]:focus { background: var(--lahr-light); color: var(--lahr-navy); }
.lahr-burger__close, .lahr-burger[aria-expanded="true"] .lahr-burger__open { display: none; }
.lahr-burger[aria-expanded="true"] .lahr-burger__close { display: flex; }
.lahr-burger__open { display: flex; }

/* mobile panel */
.lahr-mnav {
	position: fixed; left: 0; right: 0; top: var(--lahr-mnav-top, 72px); bottom: 0; z-index: 999;
	background: #fff; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; padding: 4px 20px 0;
}
.lahr-mnav[hidden] { display: none !important; }
.lahr-mmenu__item { border-bottom: 1px solid var(--lahr-line-soft); color: var(--lahr-navy); }
.lahr-mmenu__item.is-current, .lahr-mmenu__item.is-open { color: var(--lahr-red-text); }
.lahr-mmenu__row { display: flex; align-items: center; justify-content: space-between; }
.lahr-hdr .lahr-mmenu__link, .lahr-hdr button.lahr-mmenu__link[type=button] {
	display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 16px 0; text-align: left;
	font-family: var(--lahr-font-head); font-size: 16px; font-weight: 600; line-height: 1.4; color: inherit;
}
.lahr-mmenu__row .lahr-mmenu__link { flex: 1 1 auto; width: auto; }
.lahr-hdr button.lahr-mmenu__tg--icon[type=button] { width: 44px; height: 44px; display: flex; align-items: center; justify-content: flex-end; color: inherit; }
.lahr-mmenu__chev { display: flex; transition: transform .2s ease; }
.lahr-mmenu__item.is-open .lahr-mmenu__chev { transform: rotate(180deg); }
.lahr-msub { padding: 0 0 10px 12px !important; }
.lahr-msub[hidden] { display: none; }
.lahr-hdr .lahr-msub__link {
	display: flex; align-items: center; padding: 12px 0; border-bottom: 1px solid #F0F3F8;
	font-family: var(--lahr-font-body); font-size: 15.5px; font-weight: 400; line-height: 1.35; color: var(--lahr-ink);
}
.lahr-hdr .lahr-msub__link:hover, .lahr-hdr .lahr-msub__link.is-current { color: var(--lahr-red-text); }
.lahr-msub__gl {
	display: flex; align-items: center; gap: 10px; margin: 16px 0 2px !important; line-height: 1.4;
	font-family: var(--lahr-font-head); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--lahr-red-text);
}
.lahr-msub__gl.is-first { margin-top: 2px !important; }
.lahr-msub__gl::before { content: ''; width: 22px; height: 3px; background: var(--lahr-red); flex-shrink: 0; }
.lahr-hdr .lahr-msub__all {
	display: flex; align-items: center; gap: 8px; padding: 14px 0 4px;
	font-family: var(--lahr-font-head); font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--lahr-red);
}
.lahr-mnav__cta { display: flex; flex-direction: column; gap: 10px; padding: 22px 0 calc(22px + env(safe-area-inset-bottom, 0px)); }
.lahr-mnav__cta .lahr-btn { width: 100%; }
.lahr-hdr .lahr-mnav__info { margin: 4px 0 0; text-align: center; font-size: 13.5px; color: var(--lahr-muted); line-height: 1.5; }
html.lahr-lock, html.lahr-lock body { overflow: hidden !important; }

/* tighter desktop widths */
@media (max-width: 1280px) {
	.lahr-menu { gap: 22px; }
	.lahr-hdr .lahr-hdr__cta .lahr-btn { padding: 0 18px; letter-spacing: .03em; }
	.lahr-logo__name { font-size: 21px; }
}
@media (max-width: 1180px) {
	.lahr-menu { gap: 18px; }
	.lahr-hdr__in { gap: 16px; }
	.lahr-logo__tag { display: none; }
	.lahr-logo__name { font-size: 19px; }
	.lahr-logo--header .lahr-logo__tile { width: 42px; height: 42px; }
	.lahr-hdr .lahr-hdr__cta { gap: 8px; }
	.lahr-hdr .lahr-hdr__cta .lahr-btn { padding: 0 14px; font-size: 12.5px; }
}

/* phones and tablets */
@media (max-width: 1024px) {
	.lahr-hdr__in { height: 72px; padding: 0 16px; gap: 12px; }
	.lahr-nav, .lahr-hdr__cta { display: none; }
	.lahr-hdr__m { display: flex; }
	.lahr-logo { gap: 12px; min-width: 0; flex-shrink: 1; }
	.lahr-logo__img { height: min(var(--lahr-logo-h, 48px), 40px); }
	.lahr-hdr.is-sticky.is-scrolled .lahr-logo__img { height: min(var(--lahr-logo-h, 48px), 40px); }
	.lahr-logo--header .lahr-logo__tile { width: 40px; height: 40px; }
	.lahr-logo--header .lahr-logo__tile .lahr-ic { width: 21px; height: 21px; }
	.lahr-logo__name { font-size: 19px; }
	.lahr-logo__tag { display: none; }
}
@media (min-width: 1025px) {
	.lahr-mnav { display: none !important; }
}
@media (max-width: 782px) {
	.admin-bar .lahr-hdr.is-sticky { top: 46px; }
}
@media (max-width: 600px) {
	.admin-bar .lahr-hdr.is-sticky { top: 0; }
}
@media (max-width: 380px) {
	.lahr-logo__name { font-size: 17px; }
}

/* ---------------------------------------------------------------- phone call bar (optional) */
.lahr-callbar { display: none; }
@media (max-width: 767px) {
	.lahr-callbar {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 998; display: flex; gap: 8px;
		padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px)); background: #fff; box-shadow: 0 -6px 24px rgba(12, 44, 90, .12);
	}
	.lahr-callbar .lahr-btn { flex: 1 1 0; min-height: 46px; padding: 0 12px; }
	body.lahr-has-callbar { padding-bottom: 72px; }
	html.lahr-lock .lahr-callbar { display: none; }
}

/* ---------------------------------------------------------------- footer */
.lahr-ftr { background: var(--lahr-navy-deep); color: var(--lahr-footer-text); font-size: 15px; line-height: 1.5; clear: both; }
.lahr-ftr__in {
	max-width: calc(var(--lahr-container) + 48px); margin: 0 auto; padding: 72px 24px 64px;
	display: grid; grid-template-columns: 300px 210px 250px minmax(0, 1fr); gap: 52px; align-items: start;
}
.lahr-ftr a { color: var(--lahr-footer-text); transition: color .15s; }
.lahr-ftr a:hover { color: #fff; }

.lahr-ftr__brand { display: flex; flex-direction: column; gap: 20px; }
.lahr-logo--footer .lahr-logo__tile { width: 40px; height: 40px; }
.lahr-logo--footer .lahr-logo__tile .lahr-ic { width: 21px; height: 21px; }
.lahr-logo--footer .lahr-logo__name { font-size: 19px; color: #fff; }
.lahr-logo--footer .lahr-logo__name span { color: #FF6B6F; }
.lahr-logo--footer .lahr-logo__img { height: 44px; }
.lahr-logo__img--white { filter: brightness(0) invert(1); }
.lahr-ftr .lahr-ftr__about { margin: 0; font-size: 15px; line-height: 1.7; color: var(--lahr-footer-text); }
.lahr-ftr__badges { display: flex; flex-wrap: wrap; gap: 8px; }
.lahr-badge { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; line-height: 1.3; color: #DCE7F5; background: #123566; border-radius: 999px; padding: 7px 12px !important; }
.lahr-ftr__soc { display: flex; gap: 10px; }
.lahr-ftr__soc--d { margin-top: 4px; }
.lahr-ftr__soc--m { display: none; }
.lahr-ftr a.lahr-soc { width: 40px; height: 40px; border-radius: 50%; background: #163C70; display: flex; align-items: center; justify-content: center; color: #fff; transition: background-color .15s; }
.lahr-ftr a.lahr-soc:hover { background: var(--lahr-red); color: #fff; }

.lahr-ftr .lahr-ftr__h {
	margin: 0 0 18px; padding: 0; font-family: var(--lahr-font-head); font-size: 16px; font-weight: 600; line-height: 1.4;
	color: #fff; letter-spacing: 0; text-transform: none;
}
.lahr-ftr .lahr-ftr__tg { display: flex; align-items: center; justify-content: space-between; width: 100%; color: #fff; cursor: default; text-align: left; }
.lahr-ftr__tg .lahr-ic { display: none; transition: transform .2s ease; }
.lahr-ftr__links { display: flex; flex-direction: column; gap: 12px; }
.lahr-ftr__links a { font-size: 15px; line-height: 1.4; }
.lahr-ftr__contact { display: flex; flex-direction: column; gap: 16px; }
.lahr-ftr__contact li > a, .lahr-ftr__contact li > span { display: flex; align-items: center; gap: 12px; font-size: 15px; line-height: 1.4; }
.lahr-ftr .lahr-ftr__contact a.is-call { color: #fff; font-weight: 600; }
.lahr-ftr .lahr-ftr__est { margin-top: 22px; }
.lahr-ftr__map .lahr-map--footer { border: 1px solid #1C4478; border-radius: 14px; }
.lahr-ftr .lahr-ftr__open { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; font-size: 14.5px; font-weight: 600; color: #fff; }
.lahr-ftr .lahr-ftr__open:hover { color: var(--lahr-amber); }

.lahr-ftr__bar { background: var(--lahr-navy-bottom); }
.lahr-ftr__bar-in {
	max-width: calc(var(--lahr-container) + 48px); margin: 0 auto; padding: 0 24px; min-height: 64px;
	display: flex; align-items: center; justify-content: space-between; gap: 12px 24px;
}
.lahr-ftr .lahr-ftr__copy { margin: 0; font-size: 13.5px; color: var(--lahr-footer-dim); line-height: 1.5; }
.lahr-ftr__legal ul { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.lahr-ftr .lahr-ftr__legal a { font-size: 13.5px; color: var(--lahr-footer-dim); }
.lahr-ftr .lahr-ftr__legal a:hover { color: #fff; }

@media (max-width: 1280px) and (min-width: 1025px) {
	.lahr-ftr__in { grid-template-columns: 260px 200px 240px minmax(0, 1fr); gap: 36px; }
	.lahr-ftr__bar-in { flex-wrap: wrap; justify-content: center; padding-top: 14px; padding-bottom: 14px; }
}

@media (max-width: 1024px) {
	.lahr-ftr__in { grid-template-columns: minmax(0, 1fr); gap: 0; padding: 44px 16px 32px; }
	.lahr-ftr__brand { gap: 18px; max-width: 640px; }
	.lahr-badge .lahr-ic { display: none; }
	.lahr-ftr__soc--d { display: none; }
	.lahr-ftr__soc--m { display: flex; justify-content: center; margin: 30px 0 -8px; }
	.lahr-ftr__acc { border-bottom: 1px solid #1C4478; }
	.lahr-ftr__brand + .lahr-ftr__acc { margin-top: 26px; border-top: 1px solid #1C4478; }
	.lahr-ftr .lahr-ftr__acc .lahr-ftr__h { margin: 0; }
	.lahr-ftr .lahr-ftr__tg { padding: 16px 0; cursor: pointer; }
	.lahr-ftr__tg .lahr-ic { display: block; }
	.lahr-ftr__acc.is-open .lahr-ftr__tg .lahr-ic { transform: rotate(180deg); }
	.lahr-ftr__body { padding: 0 0 16px; }
	.lahr-js .lahr-ftr__acc:not(.is-open) .lahr-ftr__body { display: none; }
	.lahr-ftr__links { gap: 0; }
	.lahr-ftr__links a { display: block; padding: 7px 0; }
	.lahr-ftr .lahr-ftr__est { margin-top: 22px; }
	.lahr-ftr__map { margin-top: 26px; }
	.lahr-ftr__map .lahr-ftr__h { margin-bottom: 14px; }
	.lahr-ftr__map .lahr-map--footer { --lahr-map-h: 240px !important; }
	.lahr-ftr .lahr-ftr__open { margin-top: 12px; }
	.lahr-ftr__bar-in { flex-direction: column-reverse; justify-content: center; text-align: center; padding: 18px 16px 22px; gap: 12px; }
	.lahr-ftr__legal ul { justify-content: center; gap: 10px 18px; }
	.lahr-ftr .lahr-ftr__copy, .lahr-ftr .lahr-ftr__legal a { font-size: 13px; }
}
@media (min-width: 640px) and (max-width: 1024px) {
	.lahr-ftr__map .lahr-map--footer { --lahr-map-h: 320px !important; }
}
