/* Longview Core components. Colors come from the Longview theme's palette, with fallbacks. */
:root {
	--lv-maroon: var(--wp--preset--color--maroon, #2d080a);
	--lv-maroon-2: var(--wp--preset--color--maroon-light, #4a1015);
	--lv-orange: var(--wp--preset--color--orange, #d8662a);
	--lv-orange-dark: var(--wp--preset--color--orange-dark, #b8521f);
	--lv-cream: var(--wp--preset--color--cream, #fffdf6);
	--lv-sand: var(--wp--preset--color--sand, #f5ede0);
	--lv-line: var(--wp--preset--color--line, #e8d8c4);
	--lv-brown: var(--wp--preset--color--brown, #6b4a3a);
	--lv-ui: var(--wp--preset--font-family--ui, "DM Sans", system-ui, sans-serif);
	--lv-display: var(--wp--preset--font-family--display, Nippo, "Helvetica Neue", Helvetica, Arial, sans-serif);
	--lv-wrap: 1200px;
}
.lv-wrap { max-width: var(--lv-wrap); margin: 0 auto; padding: 0 clamp(16px, 3vw, 32px); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }

/* Buttons */
.lv-btn { display: inline-flex; align-items: center; justify-content: center; gap: .4em; background: var(--lv-orange); color: #fff !important; font: 700 .85rem/1.2 var(--lv-ui); letter-spacing: .06em; text-transform: uppercase; text-decoration: none !important; padding: .95em 1.6em; border: 2px solid var(--lv-orange); border-radius: 4px; cursor: pointer; transition: background .15s, border-color .15s; }
.lv-btn:hover, .lv-btn:focus-visible { background: var(--lv-orange-dark); border-color: var(--lv-orange-dark); }
.lv-btn--ghost { background: transparent; color: var(--lv-maroon) !important; border-color: var(--lv-maroon); }
.lv-btn--ghost:hover { background: var(--lv-maroon); color: #fff !important; border-color: var(--lv-maroon); }
.lv-btn--small { padding: .7em 1.1em; font-size: .75rem; }
.lv-btn--block { width: 100%; }
.lv-link-arrow { font: 700 .85rem var(--lv-ui); color: var(--lv-orange); text-decoration: none; }

/* Top bar */
.lv-topbar { background: var(--lv-maroon); color: #f5ede0; font: 600 .78rem/1.3 var(--lv-ui); letter-spacing: .05em; text-transform: uppercase; }
.lv-topbar .lv-wrap { display: flex; gap: .6em; justify-content: center; align-items: center; flex-wrap: wrap; padding-top: .55rem; padding-bottom: .55rem; text-align: center; }
.lv-topbar__alert { color: var(--lv-orange); }
.lv-topbar__phone { color: #fff; text-decoration: none; font-weight: 800; }
@media (max-width: 640px) { .lv-topbar__tag { display: none; } }

/* Header */
.lv-header { background: #fff; border-bottom: 1px solid var(--lv-line); position: sticky; top: 0; z-index: 50; }
.admin-bar .lv-header { top: 32px; }
.lv-header__inner { display: flex; align-items: center; gap: 1.5rem; min-height: 76px; }
.lv-logo { display: inline-flex; align-items: center; text-decoration: none; flex-shrink: 0; }
.lv-logo img { height: 52px; width: auto; display: block; }
.lv-logo__text { font: 700 1.3rem var(--lv-display); color: var(--lv-maroon); }
.lv-nav { margin-left: auto; }
.lv-nav__list, .lv-nav__list ul { list-style: none; margin: 0; padding: 0; }
.lv-nav__list { display: flex; gap: .25rem; align-items: center; }
.lv-nav__list > li { position: relative; }
.lv-nav__list a { display: block; padding: .6rem .8rem; font: 600 .9rem var(--lv-ui); color: var(--lv-maroon); text-decoration: none; border-radius: 4px; }
.lv-nav__list a:hover, .lv-nav__list .is-current > a, .lv-nav__list .current-menu-item > a { color: var(--lv-orange); }
.lv-nav__list .has-sub > a::after, .lv-nav__list .menu-item-has-children > a::after { content: "▾"; margin-left: .35em; font-size: .75em; }
.lv-nav__sub, .lv-nav__list .sub-menu { position: absolute; left: 0; top: 100%; min-width: 250px; background: #fff; border: 1px solid var(--lv-line); border-top: 3px solid var(--lv-orange); box-shadow: 0 12px 30px rgba(45,8,10,.12); padding: .4rem 0; opacity: 0; visibility: hidden; transform: translateY(6px); transition: .15s; }
.lv-nav__list li:hover > .lv-nav__sub, .lv-nav__list li:focus-within > .lv-nav__sub, .lv-nav__list li:hover > .sub-menu, .lv-nav__list li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.lv-nav__sub a, .lv-nav__list .sub-menu a { padding: .55rem 1rem; font-weight: 500; }
.lv-header__phone { background: var(--lv-orange); color: #fff; text-decoration: none; font: 800 .95rem var(--lv-ui); padding: .75rem 1.1rem; border-radius: 4px; white-space: nowrap; }
.lv-header__phone:hover { background: var(--lv-orange-dark); }
.lv-header__phone-label { font-size: .7rem; letter-spacing: .08em; opacity: .85; }
.lv-burger { display: none; margin-left: auto; background: none; border: 0; padding: 10px; cursor: pointer; }
.lv-burger span:not(.screen-reader-text) { display: block; width: 24px; height: 2px; background: var(--lv-maroon); margin: 5px 0; transition: .2s; }
@media (max-width: 960px) {
	.lv-burger { display: block; order: 3; }
	.lv-header__phone { order: 2; margin-left: auto; padding: .6rem .8rem; font-size: .85rem; }
	.lv-header__phone-label { display: none; }
	.lv-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 3px solid var(--lv-orange); max-height: calc(100vh - 120px); overflow: auto; }
	.lv-nav-open .lv-nav { display: block; }
	.lv-nav__list { flex-direction: column; align-items: stretch; padding: .5rem 1rem 1rem; }
	.lv-nav__sub, .lv-nav__list .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 0 1rem; }
	.lv-logo img { height: 42px; }
}
@media (max-width: 420px) { .lv-header__phone { display: none; } }

/* Breadcrumbs */
.lv-crumbs ol { list-style: none; margin: 0 0 1rem; padding: 0; display: flex; flex-wrap: wrap; gap: .4em; font: 500 .8rem var(--lv-ui); }
.lv-crumbs li + li::before { content: "/"; margin-right: .4em; opacity: .5; }
.lv-crumbs a { color: inherit; opacity: .8; text-decoration: none; }
.lv-crumbs a:hover { opacity: 1; text-decoration: underline; }
.lv-crumbs [aria-current] { color: var(--lv-orange); }

/* Footer */
.lv-footer { background: var(--lv-maroon); color: #e8d8c4; font: 400 .9rem/1.6 var(--lv-ui); padding-top: 3.5rem; }
.lv-footer a { color: #fff; text-decoration: none; }
.lv-footer a:hover { color: var(--lv-orange); }
.lv-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2.5rem; padding-bottom: 2.5rem; }
.lv-footer__brand .lv-logo img { background: #fff; padding: 8px 10px; border-radius: 4px; height: 56px; }
.lv-footer__brand .lv-logo__text { color: #fff; }
.lv-footer__h { font: 700 .78rem var(--lv-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--lv-orange); margin: 0 0 1rem; }
.lv-footer ul { list-style: none; margin: 0; padding: 0; }
.lv-footer li { margin: 0 0 .4rem; }
.lv-footer__phone { font: 800 1.35rem var(--lv-ui); }
.lv-footer__certs { border-top: 1px solid rgba(232,216,196,.15); }
.lv-footer__certs .lv-wrap { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; justify-content: center; padding-top: 1rem; padding-bottom: 1rem; font-size: .75rem; letter-spacing: .03em; opacity: .8; }
.lv-footer__bottom { background: #1f0507; font-size: .8rem; }
.lv-footer__bottom .lv-wrap { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem 1rem; padding-top: 1rem; padding-bottom: 1rem; }
.lv-footer__bottom p { margin: 0; }
.lv-footer__legal { display: flex; gap: 1.2rem; flex-wrap: wrap; }
.lv-chips { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; padding: 0; margin: 1rem 0 0; }
.lv-chips li { font: 700 .68rem var(--lv-ui); letter-spacing: .08em; text-transform: uppercase; border: 1px solid rgba(232,216,196,.35); padding: .35em .7em; border-radius: 3px; }
.lv-mobile-call { display: none; }
@media (max-width: 900px) { .lv-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) {
	.lv-footer__grid { grid-template-columns: 1fr; }
	.lv-mobile-call { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: var(--lv-orange); color: #fff !important; text-align: center; font: 800 1rem var(--lv-ui); padding: 1rem; box-shadow: 0 -4px 16px rgba(0,0,0,.2); }
	.lv-footer { padding-bottom: 56px; }
}

/* Location finder */
.lv-finder { max-width: 640px; }
.lv-finder__form { display: flex; gap: .5rem; flex-wrap: wrap; }
.lv-finder__form input { flex: 1 1 260px; min-height: 54px; padding: 0 1rem; font: 500 1rem var(--lv-ui); border: 2px solid var(--lv-line); border-radius: 4px; background: #fff; color: var(--lv-maroon); }
.lv-finder__form input:focus { outline: none; border-color: var(--lv-orange); }
.lv-finder__geo { background: none; border: 0; padding: .6rem 0; color: inherit; font: 600 .85rem var(--lv-ui); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; opacity: .9; }
.lv-finder__result:empty { display: none; }
.lv-finder__card { margin-top: .75rem; background: #fff; color: var(--lv-maroon); border-left: 4px solid var(--lv-orange); border-radius: 4px; padding: 1.25rem 1.5rem; box-shadow: 0 10px 30px rgba(0,0,0,.15); }
.lv-finder__card h3 { margin: .2rem 0 .4rem; font: 700 1.3rem var(--lv-display); color: var(--lv-maroon); }
.lv-finder__card p { margin: .3rem 0; color: var(--lv-brown); }
.lv-finder__card a:not(.lv-btn) { color: var(--lv-orange); }
.lv-finder__note { font: 700 .72rem var(--lv-ui) !important; letter-spacing: .08em; text-transform: uppercase; color: var(--lv-orange) !important; }
.lv-finder__actions { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .9rem !important; }

/* Location cards */
.lv-loc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.25rem; }
.lv-loc-card { background: #fff; border: 1px solid var(--lv-line); border-top: 4px solid var(--lv-orange); border-radius: 6px; padding: 1.5rem; display: flex; flex-direction: column; }
.lv-loc-card__state { font: 700 .72rem var(--lv-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--lv-orange); margin: 0; }
.lv-loc-card__city { font: 700 1.6rem var(--lv-display); margin: .25rem 0 .6rem; }
.lv-loc-card__city a { color: var(--lv-maroon); text-decoration: none; }
.lv-loc-card p { color: var(--lv-brown); margin: 0 0 .6rem; }
.lv-loc-card__addr { font: 500 .85rem var(--lv-ui); }
.lv-loc-card__actions { margin-top: auto !important; display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; padding-top: .5rem; }

/* Lead form */
.lv-lead { background: #fff; border: 1px solid var(--lv-line); border-radius: 6px; padding: clamp(1.25rem, 3vw, 2.25rem); color: var(--lv-maroon); }
.lv-lead h2 { margin-top: .25rem; }
.lv-lead__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
@media (max-width: 600px) { .lv-lead__row { grid-template-columns: 1fr; } }
.lv-lead label { display: block; font: 600 .82rem var(--lv-ui); margin-bottom: .35rem; }
.lv-lead input, .lv-lead select, .lv-lead textarea { width: 100%; box-sizing: border-box; font: 400 1rem var(--lv-ui); padding: .75rem .85rem; border: 1px solid var(--lv-line); border-radius: 4px; background: var(--lv-cream); color: var(--lv-maroon); }
.lv-lead input:focus, .lv-lead select:focus, .lv-lead textarea:focus { outline: 2px solid var(--lv-orange); outline-offset: 0; border-color: transparent; }
.lv-lead__fine { font: 400 .78rem var(--lv-ui); color: var(--lv-brown); }
.lv-lead__thanks { background: var(--lv-sand); border-left: 4px solid var(--lv-orange); padding: 1rem 1.25rem; border-radius: 4px; }
.lv-lead__error { color: #c0392b; font-weight: 600; }
.lv-hp { position: absolute; left: -9999px; }
.lv-eyebrow { font: 700 .75rem var(--lv-ui); letter-spacing: .12em; text-transform: uppercase; color: var(--lv-orange); margin: 0; }
.lv-muted { opacity: .7; }
