/* ==========================================================================
   R LaBrie Construction – global design system for Divi
   Colours, fonts, spacing and module styling are set in Divi (Customizer +
   module Design tabs). This file only adds what Divi has no setting for:
   layout helpers, form label behaviour, card/hover micro-interactions,
   motion, and the mobile CTA bar. Every rule is scoped to an lc-* class.
   Breakpoints follow Divi: phone ≤767px · tablet 768–980px · desktop ≥981px
   ========================================================================== */

:root {
	--lc-navy: #062d50;
	--lc-navy-900: #032844;
	--lc-red: #f50a0a;
	--lc-red-700: #d40808;
	--lc-slate: #40556a;
	--lc-line: #dbe4eb;
	--lc-input-line: #cfdbe5;
	--lc-star: #ffb000;
	--lc-star-off: #d5dee6;
	--lc-shadow-sm: 0 4px 16px rgba(16, 45, 71, .07);
	--lc-shadow-lg: 0 18px 40px rgba(16, 45, 71, .14);
	--lc-ease: cubic-bezier(.2, .7, .2, 1);
	--lc-header-h: 96px;
}

html { scroll-behavior: smooth; }
.et_pb_section[id],
.et_pb_column[id] { scroll-margin-top: var(--lc-header-h); }

/* --------------------------------------------------------------------------
   Layout helpers
   -------------------------------------------------------------------------- */
@media (min-width: 981px) {
	.lc-row-center { display: flex; align-items: center; }
	.lc-row-center::after { display: none; }
}

/* Buttons: shared micro-interaction (lift + arrow nudge) */
[class*="lc-"] .et_pb_button {
	transition: transform .25s var(--lc-ease), box-shadow .25s var(--lc-ease), background-color .2s, color .2s, border-color .2s !important;
}
[class*="lc-"] .et_pb_button:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 22px rgba(245, 10, 10, .18);
}
[class*="lc-"] .et_pb_button:active { transform: translateY(0); }
.et_pb_button.lc-btn-arrow::after { transition: transform .25s var(--lc-ease) !important; }
.et_pb_button.lc-btn-arrow:hover::after { transform: translateX(5px); }
[class*="lc-"] .et_pb_button:focus-visible { outline: 3px solid rgba(245, 10, 10, .35); outline-offset: 3px; }

/* JS-driven states: GSAP owns transform while these classes are present */
.lc-revealing { transition: none !important; }
[class*="lc-"] .et_pb_button.lc-magnetic { transition-property: box-shadow, background-color, color, border-color !important; }
[class*="lc-"] .et_pb_button.lc-magnetic:hover { transform: none; }

/* Full-width button (module class on the button) */
.et_pb_button.lc-btn-block { display: block; width: 100%; text-align: center; }

/* Text link with arrow */
.lc-link-arrow { white-space: nowrap; text-underline-offset: 5px; text-decoration-thickness: 2px; }
.lc-link-arrow span { display: inline-block; margin-left: 6px; transition: transform .25s var(--lc-ease); }
.lc-link-arrow:hover span { transform: translateX(5px); }

/* Blurbs used as left-aligned rows: stop Divi centring the 550px content box */
.lc-trust .et_pb_blurb_content,
.lc-reason .et_pb_blurb_content,
.lc-service .et_pb_blurb_content,
.lc-area__title .et_pb_blurb_content { max-width: none; margin-left: 0; margin-right: 0; }

/* --------------------------------------------------------------------------
   Header (Divi Library: "Labri – Global Header")
   -------------------------------------------------------------------------- */
.lc-header { transition: box-shadow .3s var(--lc-ease); }
.lc-header.et_pb_sticky { box-shadow: 0 10px 30px rgba(6, 45, 80, .10); }
.lc-header .lc-header__row { display: flex; align-items: center; transition: padding .3s var(--lc-ease); }
.lc-header .lc-header__row::after { display: none; }
.lc-header.et_pb_sticky .lc-header__row { padding-top: 6px !important; padding-bottom: 6px !important; }
.lc-header .lc-header__brand { flex: 1 1 auto; width: auto !important; margin: 0 !important; }
.lc-header .lc-header__actions {
	display: flex; align-items: center; justify-content: flex-end; gap: 15px;
	width: auto !important; margin: 0 !important; flex: 0 0 auto;
}
.lc-header .lc-header__actions .et_pb_module,
.lc-header .lc-header__actions .et_pb_button_module_wrapper { margin: 0 !important; }
.lc-header__menu .et_pb_menu__wrap { justify-content: center; }
.lc-header__menu .et_pb_menu__menu > nav > ul > li { padding-left: 15px; padding-right: 15px; }
.lc-header__menu .et-menu > li > a { position: relative; }
.lc-header__menu .et-menu > li > a::before {
	content: ""; position: absolute; left: 0; right: 0; bottom: 22px; height: 2px;
	background: var(--lc-red); transform: scaleX(0); transform-origin: left;
	transition: transform .3s var(--lc-ease);
}
.lc-header__menu .et-menu > li > a:hover { opacity: 1; }
.lc-header__menu .et-menu > li > a:hover::before,
.lc-header__menu .et-menu > li.current-menu-item > a::before { transform: scaleX(1); }
.et_pb_button.lc-header__phone { white-space: nowrap; }
.et_pb_button.lc-header__phone:hover { box-shadow: none; color: var(--lc-red) !important; }
.et_pb_button.lc-header__cta { white-space: nowrap; }

@media (max-width: 1240px) and (min-width: 981px) {
	.lc-header__menu .et_pb_menu__menu > nav > ul > li { padding-left: 12px; padding-right: 12px; }
	.lc-header .lc-header__actions { gap: 18px; }
}
@media (max-width: 980px) {
	.lc-header__menu .et_mobile_nav_menu { margin-left: auto; }
	.lc-header .lc-header__actions { gap: 16px; }
}

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.lc-hero .lc-btn-group .et_pb_button_module_wrapper { display: inline-block; margin: 0 16px 16px 0; }
.lc-hero__trust { display: flex; gap: 60px; }
.lc-hero__trust::after { display: none; }
.lc-hero__trust > .et_pb_column { width: auto !important; max-width: 175px; margin: 0 !important; }
.lc-trust .et_pb_main_blurb_image { margin-bottom: 14px; text-align: left; }
.lc-trust .et_pb_module_header { padding-bottom: 0; }

@media (max-width: 980px) {
	.lc-hero__trust { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
	.lc-hero__trust > .et_pb_column { max-width: none; }
}
@media (max-width: 767px) {
	.lc-hero .lc-btn-group .et_pb_button_module_wrapper { display: block; margin: 0 0 12px; }
	.lc-hero .lc-btn-group .et_pb_button { display: block; width: 100%; text-align: center; }
	.lc-hero__trust { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 18px; }
	.lc-hero__trust > .et_pb_column { max-width: none; }
}

/* --------------------------------------------------------------------------
   Rating stars (fill animates in; 4.5 rating fills 90%)
   -------------------------------------------------------------------------- */
.lc-stars {
	--lc-fill: 100%;
	position: relative; display: inline-block; margin: 0 0 6px; padding: 0;
	font-size: 36px; line-height: 1; letter-spacing: 2px; color: var(--lc-star-off);
}
.lc-rating .lc-stars { --lc-fill: 90%; }
.lc-stars::before {
	content: "\2605\2605\2605\2605\2605"; position: absolute; inset: 0 auto 0 0;
	width: var(--lc-fill); overflow: hidden; white-space: nowrap; color: var(--lc-star);
	transition: width 1.2s var(--lc-ease) .15s;
}
.lc-js .lc-stars:not(.is-inview)::before { width: 0; }
.lc-stars--sm { font-size: 24px; }

/* Proof strip: content-sized columns on desktop (logo · rating · quote · link) */
@media (min-width: 981px) {
	.lc-proof__row { gap: 56px; }
	.lc-proof__row > .et_pb_column { width: auto !important; margin-right: 0 !important; flex: 0 0 auto; }
	.lc-proof__row > .et_pb_column:nth-child(3) { flex: 1 1 auto; max-width: 690px; }
	.lc-proof__row > .et_pb_column:last-child { margin-left: auto; }
}

/* Form card 754px + 28.6px gap + panel 648px on the 1430px row (desktop) */
@media (min-width: 981px) {
	.lc-contact__row { gap: 28.6px; }
	.lc-contact__row::before, .lc-contact__row::after { display: none; }
	.lc-contact__row > .lc-form-card { width: 52.7% !important; flex: 0 0 52.7%; margin-right: 0 !important; }
	.lc-contact__row > .lc-why { width: auto !important; flex: 1 1 0; margin-right: 0 !important; }
}

/* --------------------------------------------------------------------------
   Estimate form – Gravity Forms (shortcode in Text module .lc-gf, theme="gravity-theme")
   Pixel values from the Figma frame "Form" (754 × 770). Scoped to .lc-form-card so other
   Gravity Forms on the site keep their own look. !important is used only where the
   gravity-theme stylesheet uses higher-specificity selectors for the same property.
   -------------------------------------------------------------------------- */
.lc-form-card .gform_wrapper.gravity-theme { margin: 0 !important; font-family: inherit; }
.lc-form-card .gform_wrapper.gravity-theme .gform_body { margin: 0; }
.lc-form-card .gform_wrapper.gravity-theme .gform_fields {
	grid-column-gap: 30.65px !important; grid-row-gap: 24.5px !important;
}
.lc-form-card .gform_wrapper.gravity-theme .gfield { margin: 0; padding: 0; }

/* Labels: Inter 700 14.3px #062d50, 10px above the field; red bold-italic asterisk */
.lc-form-card .gform_wrapper.gravity-theme .gfield_label,
.lc-form-card .gform_wrapper.gravity-theme .gform-field-label {
	display: block; margin: 0 0 10px !important; padding: 0 !important;
	font-family: inherit; font-size: 14.3px !important; font-weight: 700 !important; line-height: 18.5px !important;
	color: var(--lc-navy) !important;
}
.lc-form-card .gform_wrapper.gravity-theme .gfield_required {
	display: inline; margin: 0; padding: 0 0 0 .3em !important;
	font-size: 14.3px !important; font-weight: 700; font-style: italic; color: var(--lc-red) !important;
}
.lc-form-card .gform_wrapper.gravity-theme .gfield_required .gfield_required { padding: 0 !important; }

/* Inputs: 53px tall, 2px #cfdbe5 border, 6px radius, 14.3px text, #757575 placeholder */
.lc-form-card .gform_wrapper.gravity-theme .gfield input[type="text"],
.lc-form-card .gform_wrapper.gravity-theme .gfield input[type="tel"],
.lc-form-card .gform_wrapper.gravity-theme .gfield input[type="email"],
.lc-form-card .gform_wrapper.gravity-theme .gfield textarea {
	box-sizing: border-box; width: 100% !important; margin: 0 !important;
	padding: 15px 12px !important; border: 2px solid var(--lc-input-line) !important; border-radius: 6px !important;
	background: #fff !important; box-shadow: none !important;
	font-family: inherit !important; font-size: 14.3px !important; line-height: 19px !important; color: var(--lc-navy) !important;
	transition: border-color .2s, box-shadow .2s;
}
.lc-form-card .gform_wrapper.gravity-theme .gfield input[type="text"],
.lc-form-card .gform_wrapper.gravity-theme .gfield input[type="tel"],
.lc-form-card .gform_wrapper.gravity-theme .gfield input[type="email"] { height: 53px !important; }
.lc-form-card .gform_wrapper.gravity-theme .gfield textarea { display: block; height: 104px !important; min-height: 104px; padding: 12px !important; resize: none; }
.lc-form-card .gform_wrapper.gravity-theme .gfield input:hover,
.lc-form-card .gform_wrapper.gravity-theme .gfield textarea:hover { border-color: #b4c6d6 !important; }
.lc-form-card .gform_wrapper.gravity-theme .gfield input:focus,
.lc-form-card .gform_wrapper.gravity-theme .gfield textarea:focus {
	outline: none; border-color: var(--lc-navy) !important; box-shadow: 0 0 0 4px rgba(6, 45, 80, .08) !important;
}
.lc-form-card .gform_wrapper.gravity-theme .gfield ::placeholder { color: #757575; opacity: 1; }

/* Photo upload = the design's upload card (#f3f7fa, 104px, icon 40px + 28.6px gap).
   The whole card is the drop zone / file picker; selected files list underneath the text. */
.lc-form-card .gform_wrapper.gravity-theme .gfield.lc-gf-upload {
	position: relative; display: grid; grid-template-columns: 40px 1fr; column-gap: 28.6px; align-content: center;
	min-height: 104px; margin-top: -0.5px !important; padding: 20px 32.7px !important;
	border: 2px dashed transparent; border-radius: 6px; background: #f3f7fa; cursor: pointer;
	transition: border-color .25s, background-color .25s;
}
.lc-form-card .gform_wrapper.gravity-theme .gfield.lc-gf-upload::before {
	content: ""; grid-column: 1; grid-row: 1 / span 2; align-self: center; width: 40px; height: 40px;
	background: url("../images/icon-upload.png") center / contain no-repeat;
	transition: transform .35s var(--lc-ease);
}
.lc-form-card .gform_wrapper.gravity-theme .gfield.lc-gf-upload:hover,
.lc-form-card .gform_wrapper.gravity-theme .gfield.lc-gf-upload:focus-within { border-color: var(--lc-input-line); background: #eef4f9; }
.lc-form-card .gform_wrapper.gravity-theme .gfield.lc-gf-upload:hover::before { transform: translateY(-2px); }
.lc-form-card .gform_wrapper.gravity-theme .lc-gf-upload .gfield_label {
	grid-column: 2; margin: 0 0 6px !important; font-size: 16.35px !important; line-height: 20px !important;
}
.lc-form-card .gform_wrapper.gravity-theme .lc-gf-upload .gfield_description {
	grid-column: 2; margin: 0 !important; padding: 0 !important;
	font-size: 14.3px !important; line-height: 17px !important; color: var(--lc-navy) !important;
}
.lc-form-card .gform_wrapper.gravity-theme .lc-gf-upload .ginput_container_fileupload { display: contents; }
.lc-form-card .gform_wrapper.gravity-theme .lc-gf-upload .gform_fileupload_multifile,
.lc-form-card .gform_wrapper.gravity-theme .lc-gf-upload input[type="file"] {
	position: absolute !important; inset: 0; z-index: 2; width: 100% !important; height: 100% !important; margin: 0 !important; opacity: 0; cursor: pointer;
}
.lc-form-card .gform_wrapper.gravity-theme .lc-gf-upload .gform_drop_area {
	width: 100%; height: 100%; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important;
}
.lc-form-card .gform_wrapper.gravity-theme .lc-gf-upload .gform_button_select_files {
	position: absolute !important; inset: 0; width: 100%; height: 100%; margin: 0 !important; opacity: 0; cursor: pointer;
}
.lc-form-card .gform_wrapper.gravity-theme .lc-gf-upload .gform_fileupload_rules {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.lc-form-card .gform_wrapper.gravity-theme .lc-gf-upload .ginput_preview_list,
.lc-form-card .gform_wrapper.gravity-theme .lc-gf-upload [id^="gform_preview_"] {
	grid-column: 2; position: relative; z-index: 3; margin-top: 8px; font-size: 13px; color: var(--lc-navy); cursor: default;
}
.lc-form-card .gform_wrapper.gravity-theme .lc-gf-upload .ginput_preview { margin: 4px 0 0; }
.lc-form-card .gform_wrapper.gravity-theme .lc-gf-upload .gform_delete_file { color: var(--lc-red); }

/* Submit: 69.5px red bar, 27px bold, 8px radius, 18.4px above it */
.lc-form-card .gform_wrapper.gravity-theme .gform_footer { margin: 18.4px 0 0 !important; padding: 0 !important; }
.lc-form-card .gform_wrapper.gravity-theme .gform_footer .gform_button,
.lc-form-card .gform_wrapper.gravity-theme .gform_footer input[type="submit"] {
	display: block; width: 100% !important; height: 69.5px; margin: 0 !important; padding: 0 12px !important;
	border: 0 !important; border-radius: 8px !important; background: var(--lc-red) !important; box-shadow: none;
	color: #fff !important; font-family: Arial, "Liberation Sans", Helvetica, sans-serif !important;
	font-size: 27.18px !important; font-weight: 700 !important; letter-spacing: 0; line-height: 1 !important;
	cursor: pointer; transition: transform .25s var(--lc-ease), box-shadow .25s var(--lc-ease), background-color .2s;
}
.lc-form-card .gform_wrapper.gravity-theme .gform_footer .gform_button:hover {
	background: var(--lc-red-700) !important; transform: translateY(-2px); box-shadow: 0 10px 22px rgba(245, 10, 10, .18);
}
.lc-form-card .gform_wrapper.gravity-theme .gform_footer .gform_button:active { transform: none; }
.lc-form-card .gform_wrapper.gravity-theme .gform_footer .gform_button:focus-visible { outline: 3px solid rgba(245, 10, 10, .35); outline-offset: 3px; }
.lc-form-card .gform_wrapper.gravity-theme .gform_ajax_spinner { position: absolute; margin: 24px 0 0 -40px; }

/* "Your information is always secure." — 18.4px under the button */
.lc-form-card .lc-gf + .et_pb_text { margin-top: 18.4px !important; }

/* Validation + confirmation */
.lc-form-card .gform_wrapper.gravity-theme .gform_validation_errors {
	margin: 0 0 20px !important; padding: 12px 16px !important; border: 0 !important; border-left: 4px solid var(--lc-red) !important;
	border-radius: 6px !important; background: #fff4f4 !important; box-shadow: none !important;
}
.lc-form-card .gform_wrapper.gravity-theme .gform_validation_errors > h2 {
	margin: 0 !important; font-size: 14.3px !important; font-weight: 700; line-height: 1.4; color: #b00000 !important;
}
.lc-form-card .gform_wrapper.gravity-theme .gform_validation_errors > h2 .gform-icon { display: none; }
.lc-form-card .gform_wrapper.gravity-theme .gfield_error input,
.lc-form-card .gform_wrapper.gravity-theme .gfield_error textarea { border-color: var(--lc-red) !important; }
.lc-form-card .gform_wrapper.gravity-theme .gfield_error .gfield_label { color: var(--lc-navy) !important; }
.lc-form-card .gform_wrapper.gravity-theme .gfield_validation_message {
	margin: 6px 0 0 !important; padding: 0 !important; border: 0 !important; background: none !important;
	font-size: 13px !important; color: #b00000 !important;
}
.lc-form-card .gform_confirmation_message .lc-gf-thanks {
	padding: 24px; border-radius: 8px; background: #f0f6fb; color: var(--lc-navy); font-size: 17px; line-height: 1.5;
}
.lc-form-card .gform_confirmation_message .lc-gf-thanks strong { display: block; margin-bottom: 4px; font-size: 20px; }

.lc-ico { display: inline-block; vertical-align: -1px; margin-right: 4px; }

@media (max-width: 640px) {
	.lc-form-card .gform_wrapper.gravity-theme .gform_fields { grid-column-gap: 0 !important; grid-row-gap: 18px !important; }
	.lc-form-card .gform_wrapper.gravity-theme .gfield.lc-gf-upload { column-gap: 16px; padding: 18px 16px !important; }
	.lc-form-card .gform_wrapper.gravity-theme .gform_footer .gform_button { height: 60px; font-size: 22px !important; }
}

/* --------------------------------------------------------------------------
   Why us panel
   -------------------------------------------------------------------------- */
.lc-reason .et_pb_blurb_container { padding-left: 26px; }
.lc-reason .et_pb_module_header { padding-bottom: 4px; }
.lc-reason .et_pb_main_blurb_image img { transition: transform .35s var(--lc-ease); }
.lc-reason:hover .et_pb_main_blurb_image img { transform: scale(1.08) rotate(-4deg); }

/* --------------------------------------------------------------------------
   Service cards
   -------------------------------------------------------------------------- */
.lc-card { overflow: hidden; transition: transform .35s var(--lc-ease), box-shadow .35s var(--lc-ease); }
.lc-card:hover { transform: translateY(-6px); box-shadow: var(--lc-shadow-lg) !important; }
.lc-card__img,
.lc-card__img .et_pb_image_wrap { display: block; height: 133px; overflow: hidden; }
.lc-card__img img { width: 100%; height: 133px; object-fit: cover; transition: transform .6s var(--lc-ease); }
.lc-card:hover .lc-card__img img { transform: scale(1.06); }
.lc-service .et_pb_blurb_content { max-width: none; }
.lc-service .et_pb_blurb_container { padding-left: 20px; }
.lc-service .et_pb_module_header { padding-bottom: 8px; }
.lc-service .et_pb_main_blurb_image .et_pb_only_image_mode_wrap { transition: background-color .3s, transform .35s var(--lc-ease); }
.lc-card:hover .lc-service .et_pb_main_blurb_image .et_pb_only_image_mode_wrap { background-color: var(--lc-red); transform: rotate(-4deg); }
.lc-service ul { margin: 0; padding: 0 0 0 22px !important; list-style: disc; }
.lc-service li { padding: 0; line-height: 1.45; }
.lc-service li::marker { color: #8ea3b6; }

/* --------------------------------------------------------------------------
   Reviews
   -------------------------------------------------------------------------- */
.lc-review { transition: transform .35s var(--lc-ease), box-shadow .35s var(--lc-ease); }
.lc-review:hover { transform: translateY(-4px); box-shadow: var(--lc-shadow-lg) !important; }
.lc-testimonial.et_pb_testimonial { padding: 0 !important; }
.lc-testimonial .et_pb_testimonial_description { margin-left: 0; }
.lc-testimonial .et_pb_testimonial_author { display: block; margin-top: 14px; font-weight: 700; }

/* --------------------------------------------------------------------------
   Service area + CTA
   -------------------------------------------------------------------------- */
.lc-area__title .et_pb_main_blurb_image { margin-top: 6px; }
.lc-area__title .et_pb_blurb_container { padding-left: 18px; }
.lc-area__title .et_pb_module_header { padding-bottom: 0; }
.lc-cities { display: flex; flex-wrap: wrap; gap: 4px 26px; margin: 0; padding: 0 !important; list-style: none !important; }
.lc-cities li { padding: 0; }
.lc-cities li::before { content: "\2022"; margin-right: 6px; }
/* .lc-area__map-col { display: flex; padding: 0 !important; } */
.lc-area__map { flex: 1 1 auto; height: 100%; }
.lc-area__map .et_pb_image_wrap { display: block; height: 100%; }
.lc-area__map img { width: 100%; height: 100%; min-height: 343px; object-fit: cover; }
.lc-cta-panel { position: relative; }
.lc-cta-panel::before {
	content: ""; position: absolute; inset: 20px 22px 20px 20px; z-index: 0;
	background: #fff; border-radius: 10px; box-shadow: var(--lc-shadow-sm);
}
.lc-cta-panel > .et_pb_module,
.lc-cta-panel > .et_pb_button_module_wrapper { position: relative; z-index: 1; }

@media (max-width: 980px) {
	.lc-area__row .et_pb_column { margin-bottom: 0 !important; }
	.lc-area__map img { min-height: 240px; max-height: 320px; }
}
@media (max-width: 767px) {
	.lc-cta-panel::before { inset: 14px; }
}

/* --------------------------------------------------------------------------
   Footer (Divi Library: "Labri – Global Footer")
   -------------------------------------------------------------------------- */
.lc-footer-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 50px; margin: 0; padding: 0 !important; list-style: none !important; }
.lc-footer-nav li { padding: 0; }
.lc-footer-nav a { position: relative; transition: opacity .2s; }
.lc-footer-nav a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 1px; background: currentColor;
	transform: scaleX(0); transform-origin: left; transition: transform .3s var(--lc-ease);
}
.lc-footer-nav a:hover::after { transform: scaleX(1); }
.lc-footer-social li a.icon { transition: transform .25s var(--lc-ease), opacity .2s; }
.lc-footer-social li a.icon:hover { transform: translateY(-3px); opacity: .85; }
.lc-footer-social li { margin-right: 6px; margin-bottom: 0; }

@media (max-width: 980px) {
	.lc-footer-nav { gap: 10px 28px; }
	.lc-footer__top .et_pb_column { margin-bottom: 24px !important; }
}

/* Mobile sticky CTA bar (section hidden on desktop by Divi visibility) */
.lc-mobile-cta {
	position: fixed !important; left: 0; right: 0; bottom: 0; z-index: 9990;
	box-shadow: 0 -8px 24px rgba(6, 45, 80, .14);
	transition: transform .35s var(--lc-ease);
	padding-bottom: env(safe-area-inset-bottom) !important;
}
.lc-js .lc-mobile-cta:not(.is-visible) { transform: translateY(110%); }
.lc-mobile-cta .lc-mobile-cta__row { display: flex; gap: 10px; }
.lc-mobile-cta .lc-mobile-cta__row::after { display: none; }
.lc-mobile-cta .lc-mobile-cta__row > .et_pb_column { width: 50% !important; margin: 0 !important; }

/* --------------------------------------------------------------------------
   Motion – hero entrance (CSS, no JS dependency, never in the Visual Builder)
   Scroll reveals for .lc-reveal are driven by GSAP in labri.js.
   -------------------------------------------------------------------------- */
@keyframes lcRise {
	from { opacity: 0; transform: translate3d(0, 26px, 0); }
	to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: no-preference) {
	body:not(.et-fb) .lc-anim { animation: lcRise .9s var(--lc-ease) both; }
	body:not(.et-fb) .lc-anim--1 { animation-delay: .05s; }
	body:not(.et-fb) .lc-anim--2 { animation-delay: .15s; }
	body:not(.et-fb) .lc-anim--3 { animation-delay: .28s; }
	body:not(.et-fb) .lc-anim--4 { animation-delay: .38s; }
	body:not(.et-fb) .lc-hero .et_pb_button_module_wrapper { animation: lcRise .9s var(--lc-ease) .5s both; }
	body:not(.et-fb) .lc-anim--6 { animation-delay: .65s; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.lc-stars::before { transition: none; }
	[class*="lc-"] * { transition-duration: 0s !important; }
}
