/* Ventiv Forms (snippet 2540). Scoped to .vf so theme and Elementor styles can't leak in. */
.vf {
	--vf-charcoal: #343434; --vf-alt: #2d2d2d; --vf-line: #4d4d4d; --vf-ink: #ffffff; --vf-muted: #b3b3b3;
	--vf-grey: #858585; --vf-yellow: #e5e538;
	--vf-font: "articulat-cf", Manrope, Inter, "Helvetica Neue", Arial, sans-serif;
	font-family: var(--vf-font); color: var(--vf-ink); text-align: left; -webkit-font-smoothing: antialiased;
}
.vf *, .vf *::before, .vf *::after { box-sizing: border-box; }
.vf [hidden] { display: none !important; }
.vf p { margin: 0; line-height: 1.55; color: inherit; }
.vf a, .vf .vf-note a, .vf .vf-done a { color: var(--vf-ink); text-decoration: underline; text-decoration-line: underline; text-decoration-color: var(--vf-yellow); text-underline-offset: 3px; }
.vf a:hover, .vf a:focus, .vf .vf-note a:hover, .vf .vf-note a:focus, .vf .vf-done a:hover, .vf .vf-done a:focus { color: var(--vf-yellow); }

/* Fields */
.vf .vf-form { display: grid; gap: 18px; margin: 0; padding: 0; }
.vf .vf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.vf .vf-field { display: grid; gap: 8px; margin: 0; }
.vf .vf-label { display: block; font-family: var(--vf-font); font-size: 15px; font-weight: 600; line-height: 1.3; color: var(--vf-ink); padding: 0; margin: 0; }
.vf .vf-opt { font-weight: 400; color: var(--vf-muted); }
.vf .vf-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.vf input[type=text], .vf input[type=email], .vf input[type=tel], .vf textarea {
	-webkit-appearance: none; appearance: none; display: block; width: 100%; height: auto; margin: 0;
	font-family: var(--vf-font); font-size: 16px; line-height: 1.4; padding: 13px 15px; border-radius: 8px;
	border: 1.5px solid var(--vf-line); background: var(--vf-alt); color: var(--vf-ink); box-shadow: none; outline: none; }
.vf textarea { min-height: 130px; resize: vertical; }
.vf input[type=text]:focus, .vf input[type=email]:focus, .vf input[type=tel]:focus, .vf textarea:focus { border-color: var(--vf-grey); background: var(--vf-alt); color: var(--vf-ink); }
.vf input::placeholder, .vf textarea::placeholder { color: var(--vf-grey); opacity: 1; }

/* Tick-box pills, as on the Ventiv Productions forms */
.vf .vf-group { border: 0; margin: 0; padding: 0; min-width: 0; }
.vf .vf-group legend { margin-bottom: 10px; float: none; width: auto; }
.vf .vf-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.vf .vf-pill { position: relative; display: inline-flex; align-items: center; gap: 10px; margin: 0; padding: 9px 14px; border: 1.5px solid var(--vf-line); border-radius: 8px; font-size: 15px; font-weight: 500; line-height: 1.2; color: var(--vf-ink); cursor: pointer; background: transparent; transition: border-color .15s, background-color .15s; }
.vf .vf-pill:hover { border-color: var(--vf-grey); }
.vf .vf-pill input { -webkit-appearance: none; appearance: none; flex: none; width: 18px; height: 18px; margin: 0; border: 1.5px solid var(--vf-grey); border-radius: 4px; background: transparent; display: grid; place-items: center; cursor: pointer; }
.vf .vf-pill input[type=radio] { border-radius: 50%; }
.vf .vf-pill input:checked { background: var(--vf-yellow); border-color: var(--vf-yellow); }
.vf .vf-pill input[type=checkbox]:checked::after { content: ""; width: 9px; height: 5px; border-left: 2px solid var(--vf-charcoal); border-bottom: 2px solid var(--vf-charcoal); transform: translateY(-1px) rotate(-45deg); }
.vf .vf-pill input[type=radio]:checked::after { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--vf-charcoal); }
.vf .vf-pill:has(input:checked) { border-color: var(--vf-yellow); background: rgba(229, 229, 56, .08); }
.vf .vf-pill input:focus-visible { outline: 2px solid var(--vf-yellow); outline-offset: 2px; }

.vf .vf-consent { display: flex; gap: 12px; align-items: flex-start; margin: 0; font-size: 15px; line-height: 1.5; color: var(--vf-muted); cursor: pointer; }
.vf .vf-consent input { -webkit-appearance: none; appearance: none; flex: none; margin: 3px 0 0; width: 18px; height: 18px; border: 1.5px solid var(--vf-grey); border-radius: 4px; background: transparent; display: grid; place-items: center; cursor: pointer; }
.vf .vf-consent input:checked { background: var(--vf-yellow); border-color: var(--vf-yellow); }
.vf .vf-consent input:checked::after { content: ""; width: 9px; height: 5px; border-left: 2px solid var(--vf-charcoal); border-bottom: 2px solid var(--vf-charcoal); transform: translateY(-1px) rotate(-45deg); }
.vf .vf-consent input:focus-visible { outline: 2px solid var(--vf-yellow); outline-offset: 2px; }
.vf .vf-note { font-size: 14px; color: var(--vf-muted); }
.vf .vf-error { font-size: 15px; color: var(--vf-yellow); min-height: 0; }
.vf .vf-error:empty { display: none; }
.vf .vf-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Button: yellow fill, charcoal text. Reset theme button styles first. */
.vf .vf-btn, .vf .vf-btn:visited {
	-webkit-appearance: none; appearance: none; display: inline-flex; align-items: center; justify-content: center; margin: 0;
	font-family: var(--vf-font); font-size: 16px; font-weight: 600; line-height: 1; letter-spacing: 0; text-transform: none; text-decoration: none; white-space: nowrap;
	padding: 15px 24px; border-radius: 8px; border: 1.5px solid var(--vf-yellow); background: var(--vf-yellow); color: var(--vf-charcoal); box-shadow: none; cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s; }
.vf .vf-btn:hover, .vf .vf-btn:focus { background: var(--vf-ink); border-color: var(--vf-ink); color: var(--vf-charcoal); }
.vf .vf-btn:focus-visible { outline: 2px solid var(--vf-yellow); outline-offset: 2px; }
.vf .vf-btn[disabled] { opacity: .55; cursor: wait; }
.vf .vf-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }

/* Thank-you panel */
.vf .vf-done { display: grid; gap: 10px; color: var(--vf-muted); font-size: 16px; outline: none; }
.vf .vf-done-title { font-size: 22px; font-weight: 700; line-height: 1.25; color: var(--vf-ink); letter-spacing: -0.01em; }

/* Newsletter: shared */
.vf .vf-eyebrow { font-size: 14px; font-weight: 600; letter-spacing: .04em; color: var(--vf-muted); margin: 0 0 12px; }
.vf .vf-h2 { font-family: var(--vf-font); font-size: clamp(28px, 4vw, 40px); font-weight: 800; letter-spacing: -0.02em; line-height: 1.08; color: var(--vf-ink); margin: 0; padding: 0; text-transform: none; }
.vf .vf-stop { color: var(--vf-yellow); }
.vf .vf-lede { font-size: 17px; line-height: 1.55; color: var(--vf-muted); margin-top: 14px; max-width: 560px; }
.vf .vf-nl-form { gap: 10px; }
.vf .vf-nl-row { display: grid; grid-template-columns: 1fr 1.4fr auto; gap: 10px; align-items: stretch; }

/* Newsletter: home page section */
.vf.vf-nl--section { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; max-width: none; margin: 0; }
.vf.vf-nl--section .vf-nl-row { grid-template-columns: 1fr 1fr; }
.vf.vf-nl--section .vf-nl-row .vf-btn { grid-column: 1 / -1; justify-self: start; }

/* Newsletter: footer band */
.vf.vf-nl--footer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 32px; align-items: center; padding: 0 0 40px; margin: 0 0 40px; border-bottom: 1px solid var(--vf-line); }
.vf .vf-nl-title { font-size: 20px; font-weight: 700; color: var(--vf-ink); line-height: 1.25; }
.vf .vf-nl-text { font-size: 15px; color: var(--vf-muted); margin-top: 6px; }
.vf.vf-nl--footer .vf-note { font-size: 13px; }

/* Newsletter: form on its own, inside the Elementor pop-up */
.vf.vf-nl--bare .vf-nl-row { grid-template-columns: 1fr; }
.vf.vf-nl--bare .vf-btn { width: 100%; }

@media (max-width: 900px) {
	.vf.vf-nl--section { grid-template-columns: 1fr; gap: 28px; }
	.vf.vf-nl--footer { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 640px) {
	.vf .vf-row, .vf .vf-nl-row, .vf.vf-nl--section .vf-nl-row { grid-template-columns: 1fr; }
	.vf .vf-btn { width: 100%; }
}

/* The Elementor pop-up (1014). Elementor doesn't load the styles of its newer V4 blocks inside pop-ups yet,
   so the card is styled here. The words are still edited in Elementor. */
#elementor-popup-modal-1014 .dialog-widget-content { overflow: hidden; }
#elementor-popup-modal-1014 .elementor-1014 > .e-con { display: flex; flex-direction: column; align-items: stretch; gap: 12px; margin: 0; padding: 40px 36px 32px; background: #343434; border-top: 4px solid #e5e538; text-align: left; }
#elementor-popup-modal-1014 .elementor-1014 > .e-con > p, #elementor-popup-modal-1014 .elementor-1014 > .e-con > h2 { font-family: "articulat-cf", Manrope, Inter, "Helvetica Neue", Arial, sans-serif; margin: 0; padding: 0; text-transform: none; -webkit-font-smoothing: antialiased; }
#elementor-popup-modal-1014 .elementor-1014 > .e-con > p:first-child { font-size: 14px; font-weight: 600; letter-spacing: .04em; line-height: 1.4; color: #b3b3b3; }
#elementor-popup-modal-1014 .elementor-1014 > .e-con > h2 { font-size: 34px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.08; color: #ffffff; padding-right: 24px; }
#elementor-popup-modal-1014 .elementor-1014 > .e-con > p:not(:first-child) { font-size: 17px; line-height: 1.55; color: #b3b3b3; margin-bottom: 12px; }
@media (max-width: 640px) {
	#elementor-popup-modal-1014 .elementor-1014 > .e-con { padding: 32px 22px 24px; }
	#elementor-popup-modal-1014 .elementor-1014 > .e-con > h2 { font-size: 28px; }
}
