/* ==========================================================================
   Event Landing template – Lead Science
   Scoped to .ls-ev so it can't leak into (or be overridden by) the site theme.
   Brand tokens: home services green + franchise pink.
   ========================================================================== */

.ls-ev {
	/* Accent colors. Set per page from the "Accent colors" fields
	   (printed as an inline style on .ls-ev by inc/event-landing.php). */
	--ls-accent: #B3E891;            /* main accent (green by default)       */
	--ls-accent-2: #F09F96;          /* secondary accent (pink by default)   */
	--ls-on-accent: #000000;         /* text on accent backgrounds           */
	--ls-accent-dark: color-mix(in srgb, var(--ls-accent) 88%, #000);   /* button hover */
	--ls-accent-ink: color-mix(in srgb, var(--ls-accent) 35%, #000);    /* accent-tinted text on white */
	--ls-accent-tint: color-mix(in srgb, var(--ls-accent) 18%, #fff);   /* light accent background */
	--ls-black: #000000;
	--ls-ink: #111111;
	--ls-body: #3d3d3d;
	--ls-muted: #4a4a4a;
	--ls-font: 'Urbane', 'Helvetica Neue', Helvetica, Arial, sans-serif;
	--ls-mono: 'Chakra Petch', ui-monospace, monospace;
	--ls-max: 1240px;
	--ls-gutter: 32px;

	font-family: var(--ls-font);
	color: var(--ls-ink);
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	box-sizing: border-box;
	width: 100%;
	text-align: left;
}

.ls-ev *,
.ls-ev *::before,
.ls-ev *::after { box-sizing: border-box; }

/* Defensive resets against site/theme typography */
.ls-ev h1, .ls-ev h2, .ls-ev h3,
.ls-ev p, .ls-ev figure, .ls-ev blockquote {
	margin: 0;
	padding: 0;
	font-family: inherit;
	color: inherit;
	text-transform: none;
}
.ls-ev blockquote { border: 0; font-style: normal; quotes: none; background: none; }
.ls-ev blockquote::before, .ls-ev blockquote::after { content: none; }
.ls-ev img { max-width: 100%; height: auto; }
.ls-ev a { color: var(--ls-black); }
.ls-ev a:hover { color: var(--ls-accent-ink); }
.ls-ev svg.ls-ev-icon { stroke: var(--ls-accent); flex: none; display: block; }
.ls-ev .ls-ev-accent-fill { fill: var(--ls-accent-2); stroke: var(--ls-accent-2); }
.ls-ev .ls-ev-accent-stroke { stroke: var(--ls-accent-2); }

/* Page shell (template only) */
html:has(body.ls-event-template) { scroll-behavior: smooth; }
body.ls-event-template { margin: 0; background: #ffffff; }
.ls-event-template .ls-ev-main { display: block; }
.ls-ev-skip {
	position: absolute; left: -9999px; top: 0; z-index: 1000;
	background: #000; color: #fff; padding: 12px 16px; font-family: 'Helvetica Neue', Arial, sans-serif;
}
.ls-ev-skip:focus { left: 8px; top: 8px; }

/* Layout */
.ls-ev .ls-ev-inner {
	max-width: var(--ls-max);
	margin: 0 auto;
	padding: 96px var(--ls-gutter);
}
.ls-ev .ls-ev-stack { display: flex; flex-direction: column; gap: 48px; }
.ls-ev .ls-ev-stack--lg { gap: 56px; }

/* Type */
.ls-ev .ls-ev-eyebrow {
	font-family: var(--ls-mono);
	font-weight: 600;
	font-size: 14px;
	line-height: 1.5;
	letter-spacing: 2px;
	color: var(--ls-accent);
}
.ls-ev .ls-ev-eyebrow--tag { color: var(--ls-on-accent); }
.ls-ev .ls-ev-eyebrow--tag span { background: var(--ls-accent); padding: 4px 8px; }

.ls-ev .ls-ev-h2 {
	font-size: 44px;
	line-height: 1.1;
	font-weight: 800;
	letter-spacing: -1px;
}
.ls-ev .ls-ev-h3 { font-size: 22px; line-height: 1.3; font-weight: 800; }
.ls-ev .ls-ev-lead { font-size: 19px; line-height: 1.6; color: var(--ls-body); }
.ls-ev .ls-ev-section-head {
	display: flex;
	flex-direction: column;
	gap: 18px;
	max-width: 820px;
}

/* Buttons */
.ls-ev .ls-ev-btn {
	height: 60px;
	background: var(--ls-accent);
	color: var(--ls-on-accent);
	text-decoration: none;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 17px;
	font-weight: 800;
	letter-spacing: 0.2px;
	transition: background-color .15s ease;
}
.ls-ev .ls-ev-btn:hover { background: var(--ls-accent-dark); color: var(--ls-on-accent); }
.ls-ev .ls-ev-btn:focus-visible { outline: 3px solid var(--ls-black); outline-offset: 2px; }

/* ---------------------------------------------------------------- Header */
.ls-ev-header { background: var(--ls-black); border-bottom: 1px solid #2a2a2a; }
.ls-ev-header .ls-ev-inner {
	padding: 22px var(--ls-gutter);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
.ls-ev-header__logo { display: flex; align-items: center; text-decoration: none; }
.ls-ev-header__logo img { height: 52px; width: auto; display: block; }
.ls-ev .ls-ev-header__phone {
	color: var(--ls-accent);
	text-decoration: none;
	font-family: var(--ls-mono);
	font-weight: 600;
	font-size: 18px;
	letter-spacing: 0.5px;
}
.ls-ev .ls-ev-header__phone:hover { color: #ffffff; }

/* ------------------------------------------------------------------ Hero */
.ls-ev-hero {
	color: #ffffff;
	background-color: var(--ls-black);
	background-image:
		linear-gradient(90deg, rgba(0,0,0,0.88) 0%, rgba(0,0,0,0.74) 48%, rgba(0,0,0,0.42) 100%),
		var(--ls-ev-hero-img, none);
	background-size: cover;
	background-position: center 40%;
	background-repeat: no-repeat;
}
.ls-ev-hero .ls-ev-inner {
	padding: 88px var(--ls-gutter) 104px;
	display: flex;
	flex-wrap: wrap;
	gap: 56px;
	align-items: flex-start;
}
.ls-ev-hero__copy { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 28px; }
.ls-ev .ls-ev-hero__title {
	font-size: 56px;
	line-height: 1.04;
	font-weight: 800;
	letter-spacing: -1.5px;
	color: #ffffff;
}
.ls-ev .ls-ev-hero__title span { color: var(--ls-accent); }
.ls-ev .ls-ev-hero__intro { font-size: 20px; line-height: 1.55; color: #d6d6d6; max-width: 600px; }

.ls-ev-badges { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 4px; }
.ls-ev-badge {
	display: flex;
	align-items: center;
	gap: 10px;
	border: 1px solid #3a3a3a;
	padding: 12px 16px;
	font-size: 15px;
	font-weight: 600;
}

.ls-ev-hero__card {
	flex: 1 1 400px;
	min-width: 0;
	max-width: 480px;
	background: #ffffff;
	color: var(--ls-ink);
	padding: 36px 32px;
	border-top: 8px solid var(--ls-accent);
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.ls-ev-hero__card-head { display: flex; flex-direction: column; gap: 10px; }
.ls-ev .ls-ev-hero__card-title { font-size: 28px; line-height: 1.2; font-weight: 800; letter-spacing: -0.5px; color: var(--ls-ink); }
.ls-ev .ls-ev-hero__card p { font-size: 16px; line-height: 1.55; color: var(--ls-muted); }
.ls-ev .ls-ev-hero__card .ls-ev-hero__note { font-size: 13px; line-height: 1.5; text-align: center; }

/* ---------------------------------------------------- Problem cards (gap) */
.ls-ev-gap { background: #ffffff; }
.ls-ev-cards { display: flex; flex-wrap: wrap; gap: 24px; }
.ls-ev-card {
	flex: 1 1 300px;
	min-width: 0;
	border: 2px solid var(--ls-black);
	padding: 32px 28px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.ls-ev .ls-ev-card__num { font-family: var(--ls-mono); font-size: 40px; font-weight: 700; line-height: 1; }
.ls-ev .ls-ev-card h3 { font-size: 22px; line-height: 1.3; font-weight: 800; }
.ls-ev .ls-ev-card p { font-size: 16px; line-height: 1.6; color: var(--ls-body); }

/* ------------------------------------------------------- What we review */
.ls-ev-review { background: #f2f2f2; }
.ls-ev-review-list {
	display: flex;
	flex-direction: column;
	gap: 2px;
	background: var(--ls-black);
	border: 2px solid var(--ls-black);
}
.ls-ev-review-item {
	background: #ffffff;
	padding: 32px;
	display: flex;
	flex-wrap: wrap;
	gap: 28px;
	align-items: flex-start;
}
.ls-ev-review-item__icon {
	flex: 0 0 88px;
	height: 88px;
	background: var(--ls-black);
	display: flex;
	align-items: center;
	justify-content: center;
}
.ls-ev-review-item__body { flex: 1 1 400px; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.ls-ev .ls-ev-review-item h3 { font-size: 24px; line-height: 1.25; font-weight: 800; }
.ls-ev .ls-ev-review-item p { font-size: 17px; line-height: 1.6; color: var(--ls-body); }
.ls-ev .ls-ev-promise {
	background: var(--ls-accent);
	padding: 28px 32px;
	font-size: 19px;
	line-height: 1.55;
	color: var(--ls-on-accent);
}
.ls-ev .ls-ev-promise strong { font-weight: 800; }

/* ------------------------------------------------------------- Proof */
.ls-ev-proof { background: var(--ls-black); color: #ffffff; }
.ls-ev-proof__top { display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-end; }
.ls-ev-proof__copy { flex: 1 1 520px; min-width: 0; }
.ls-ev-proof .ls-ev-lead { color: #d6d6d6; }
.ls-ev-stats { flex: 1 1 360px; min-width: 0; display: flex; gap: 16px; }
.ls-ev-stat {
	flex: 1 1 0;
	min-width: 0;
	border: 2px solid var(--ls-accent);
	padding: 20px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.ls-ev .ls-ev-stat__value { font-family: var(--ls-mono); font-size: 52px; font-weight: 500; line-height: 1; color: var(--ls-accent); }
.ls-ev .ls-ev-stat__label { font-size: 14px; line-height: 1.4; color: #d6d6d6; }

.ls-ev-testimonials { display: flex; flex-direction: column; gap: 24px; }
.ls-ev-testimonials__grid { display: flex; flex-wrap: wrap; gap: 24px; }
.ls-ev .ls-ev-quote {
	flex: 1 1 320px;
	min-width: 0;
	background: #161616;
	border-top: 4px solid var(--ls-accent-2);
	padding: 32px 28px;
	display: flex;
	flex-direction: column;
	gap: 24px;
	justify-content: space-between;
}
.ls-ev .ls-ev-quote blockquote { font-size: 17px; line-height: 1.6; color: #f0f0f0; }
.ls-ev .ls-ev-quote figcaption { font-size: 14px; line-height: 1.5; color: #bdbdbd; }
.ls-ev .ls-ev-quote figcaption strong { color: #ffffff; }

/* --------------------------------------------------------- Booking form */
.ls-ev-booking { background: var(--ls-accent); color: var(--ls-on-accent); scroll-margin-top: 0; }
.ls-ev-booking .ls-ev-inner {
	display: flex;
	flex-wrap: wrap;
	gap: 56px;
	align-items: flex-start;
	justify-content: space-between;
}
.ls-ev-booking__copy { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 16px; padding-top: 8px; }
.ls-ev-booking .ls-ev-lead { color: var(--ls-on-accent); }

.ls-ev-formcard {
	flex: 1 1 480px;
	min-width: 0;
	max-width: 600px;
	background: #ffffff;
	color: var(--ls-ink);
	padding: 36px 32px;
	border-top: 8px solid var(--ls-black);
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.ls-ev .ls-ev-formcard__note { font-size: 13px; color: var(--ls-muted); }
.ls-ev .ls-ev-placeholder { font-size: 15px; color: var(--ls-muted); border: 2px dashed #c9c9c9; padding: 24px; }

/* Contact Form 7 inside the card */
.ls-ev-formcard .wpcf7 { margin: 0; }
.ls-ev-formcard .wpcf7-form { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.ls-ev-formcard .wpcf7-form > p,
.ls-ev-formcard .ls-ev-field > p,
.ls-ev-formcard .ls-ev-row p { margin: 0; display: contents; }
.ls-ev-formcard .wpcf7-form br { display: none; }
.ls-ev-formcard .hidden-fields-container,
.ls-ev-formcard .wpcf7-form > div[style*="display: none"],
.ls-ev-formcard .wpcf7-form > fieldset.hidden-fields-container { display: none; }

.ls-ev-formcard .ls-ev-row { display: flex; flex-wrap: wrap; gap: 16px; }
.ls-ev-formcard .ls-ev-field { flex: none; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.ls-ev-formcard .ls-ev-row > .ls-ev-field { flex: 1 1 200px; }
.ls-ev-formcard label { font-size: 13px; font-weight: 700; color: var(--ls-ink); margin: 0; }
.ls-ev-formcard .wpcf7-form-control-wrap { display: block; }

.ls-ev-formcard input[type="text"],
.ls-ev-formcard input[type="email"],
.ls-ev-formcard input[type="tel"],
.ls-ev-formcard input[type="url"],
.ls-ev-formcard select,
.ls-ev-formcard textarea {
	width: 100%;
	height: 48px;
	border: 1px solid #8a8a8a;
	border-radius: 0;
	background: #ffffff;
	color: var(--ls-ink);
	padding: 0 14px;
	font-size: 16px;
	font-family: inherit;
	line-height: 1.4;
	box-shadow: none;
	margin: 0;
	-webkit-appearance: none;
	appearance: none;
}
.ls-ev-formcard textarea { height: auto; min-height: 112px; padding: 12px 14px; resize: vertical; }
.ls-ev-formcard input:focus,
.ls-ev-formcard textarea:focus,
.ls-ev-formcard select:focus { outline: 3px solid var(--ls-black); outline-offset: 1px; }

.ls-ev-formcard input[type="submit"],
.ls-ev-formcard .ls-ev-submit {
	width: 100%;
	min-height: 60px;
	height: auto;
	margin-top: 8px;
	background: var(--ls-black);
	color: #ffffff;
	border: none;
	border-radius: 0;
	padding: 16px 24px;
	font-size: 17px;
	font-weight: 800;
	font-family: inherit;
	letter-spacing: 0.2px;
	line-height: 1.3;
	cursor: pointer;
	white-space: normal;
	-webkit-appearance: none;
	appearance: none;
	transition: background-color .15s ease;
}
.ls-ev-formcard input[type="submit"]:hover,
.ls-ev-formcard .ls-ev-submit:hover { background: #262626; }
.ls-ev-formcard input[type="submit"]:focus-visible { outline: 3px solid var(--ls-accent); outline-offset: 2px; }
.ls-ev-formcard input[type="submit"]:disabled { opacity: .6; cursor: progress; }

.ls-ev-formcard .wpcf7-spinner { display: none; }
.ls-ev-formcard .wpcf7 form.submitting .wpcf7-spinner { display: block; visibility: visible; margin: 8px auto 0; }
.ls-ev-formcard .wpcf7-not-valid { border-color: #b00020; }
.ls-ev-formcard .wpcf7-not-valid-tip { font-size: 13px; color: #b00020; margin-top: 4px; }
.ls-ev-formcard .wpcf7 form .wpcf7-response-output {
	margin: 0;
	padding: 12px 16px;
	font-size: 14px;
	line-height: 1.5;
	border-width: 2px;
}
.ls-ev-formcard .wpcf7 form.init .wpcf7-response-output,
.ls-ev-formcard .wpcf7 form.resetting .wpcf7-response-output,
.ls-ev-formcard .wpcf7 form.submitting .wpcf7-response-output { display: none; }
.ls-ev-formcard .wpcf7 form.sent .wpcf7-response-output { border-color: var(--ls-accent-ink); background: var(--ls-accent-tint); }

/* ---------------------------------------------------------------- Footer */
.ls-ev-footer { background: var(--ls-black); color: #bdbdbd; }
.ls-ev-footer .ls-ev-inner {
	padding: 48px var(--ls-gutter);
	display: flex;
	flex-direction: column;
	gap: 20px;
	font-size: 14px;
	line-height: 1.6;
}
.ls-ev-footer strong { color: #ffffff; }
.ls-ev-footer a { color: var(--ls-accent); }

/* ---------------------------------------------------------------- Mobile */
@media (max-width: 720px) {
	.ls-ev { --ls-gutter: 20px; }
	.ls-ev .ls-ev-inner { padding-top: 56px; padding-bottom: 56px; }
	.ls-ev-header .ls-ev-inner { padding-top: 18px; padding-bottom: 18px; }
	.ls-ev-header__logo img { height: 40px; }
	.ls-ev-hero .ls-ev-inner { padding-top: 56px; padding-bottom: 56px; gap: 40px; }
	.ls-ev-hero { background-image: linear-gradient(rgba(0,0,0,0.80), rgba(0,0,0,0.80)), var(--ls-ev-hero-img, none); }
	.ls-ev .ls-ev-hero__title { font-size: 38px; letter-spacing: -0.8px; }
	.ls-ev .ls-ev-hero__intro { font-size: 18px; }
	.ls-ev .ls-ev-h2 { font-size: 30px; }
	.ls-ev-hero__card,
	.ls-ev-formcard { padding: 28px 20px; }
	.ls-ev-review-item { padding: 24px 20px; gap: 20px; }
	.ls-ev .ls-ev-promise { padding: 24px 20px; font-size: 17px; }
	.ls-ev-footer .ls-ev-inner { padding-top: 40px; padding-bottom: 40px; }
}
@media (max-width: 420px) {
	.ls-ev .ls-ev-stat__value { font-size: 40px; }
}

@media (prefers-reduced-motion: reduce) {
	html:has(body.ls-event-template) { scroll-behavior: auto; }
}
#frame{
	height: 500px;
}

@media(max-width: 568px){
	#frame{
		height: 700px;
	}
}
.ls-ev-hero__copy .ls-ev-badges a {
    color: #fff;
    text-decoration: none;
}