/* logiXweb popups v3.2 — enquiry, course and plan popups (Contact Form 7 inside).
   Scoped to .lxw-plan-modal only. !important is used on form controls so the theme's
   button / input styles (Astra, Elementor kit) can't turn them red or uppercase. */

html.lxw-modal-open { overflow: hidden; }
.lxw-plan-modal {
	--lxp-navy: #040F2E; --lxp-ink: #0E1424; --lxp-blue: #1657FF; --lxp-blue2: #0B3BD9;
	--lxp-muted: #5B6478; --lxp-line: #D9E1EE; --lxp-field: #F5F7FB;
	position: fixed; inset: 0; z-index: 999999; display: flex; align-items: center; justify-content: center; padding: 20px;
	font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
}
.lxw-plan-modal[hidden] { display: none !important; }
.lxw-plan-modal__bg { position: absolute; inset: 0; background: rgba(3, 8, 24, .64); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); animation: lxpFade .25s ease; }
.lxw-plan-modal__box {
	position: relative; width: 100%; max-width: 600px; max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px);
	overflow: auto; overscroll-behavior: contain; scrollbar-width: thin;
	background: #fff; border-radius: 24px; padding: 0 !important; color: var(--lxp-ink);
	box-shadow: 0 40px 100px -24px rgba(2, 8, 30, .6), 0 0 0 1px rgba(255, 255, 255, .06);
	animation: lxpIn .34s cubic-bezier(.16, 1, .3, 1);
}
@keyframes lxpIn { from { opacity: 0; transform: translateY(16px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes lxpFade { from { opacity: 0; } to { opacity: 1; } }

/* Close button */
.lxw-plan-modal .lxw-plan-modal__x {
	position: absolute; top: 14px; right: 14px; z-index: 3; width: 38px; height: 38px; padding: 0 !important; margin: 0 !important;
	display: flex; align-items: center; justify-content: center; border-radius: 12px !important; cursor: pointer;
	background: rgba(255, 255, 255, .1) !important; color: #fff !important; border: 1px solid rgba(255, 255, 255, .18) !important;
	box-shadow: none !important; transition: background .2s ease, transform .2s ease;
}
.lxw-plan-modal .lxw-plan-modal__x:hover { background: rgba(255, 255, 255, .2) !important; transform: rotate(90deg); }
.lxw-plan-modal.is-sent .lxw-plan-modal__x { background: #EEF2F9 !important; color: var(--lxp-ink) !important; border-color: transparent !important; }

/* Dark brand header */
.lxw-pop__head {
	position: relative; overflow: hidden; padding: 30px 30px 24px; color: #fff;
	background: radial-gradient(110% 130% at 100% 0%, rgba(22, 87, 255, .5) 0%, rgba(22, 87, 255, 0) 58%), linear-gradient(160deg, #0A1A4A 0%, #040F2E 72%);
}
.lxw-pop__head > * { position: relative; z-index: 1; }
.lxw-pop__mark { position: absolute !important; z-index: 0 !important; right: -26px; bottom: -34px; width: 190px; height: auto; opacity: .07; transform: rotate(-8deg); pointer-events: none; }
.lxw-pop__chip {
	display: inline-flex; align-items: center; gap: 8px; margin: 0 0 14px !important; padding: 6px 12px; border-radius: 999px;
	background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .14);
	font: 700 .68rem/1.2 Inter, system-ui, sans-serif; letter-spacing: .09em; text-transform: uppercase; color: #CFE0FF;
	max-width: calc(100% - 48px);
}
.lxw-pop__dot { width: 7px; height: 7px; border-radius: 50%; background: #34D399; box-shadow: 0 0 0 4px rgba(52, 211, 153, .18); flex: none; }
.lxw-plan-modal .lxw-pop__head h3 {
	margin: 0 0 8px !important; padding-right: 36px; color: #fff !important;
	font: 700 1.55rem/1.22 Outfit, Inter, system-ui, sans-serif !important; letter-spacing: -.01em; text-transform: none !important;
}
.lxw-plan-modal .lxw-pop__head .lxw-plan-modal__price {
	display: inline-block; margin: 2px 0 10px !important; padding: 5px 11px; border-radius: 9px;
	background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .16); color: #fff; font-weight: 700; font-size: .9rem;
}
.lxw-plan-modal .lxw-plan-modal__price[hidden] { display: none !important; }
.lxw-plan-modal .lxw-pop__head .lxw-plan-modal__text { margin: 0 !important; color: #B9C5DF; font-size: .93rem; line-height: 1.55; }
.lxw-pop__trust { list-style: none !important; margin: 16px 0 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 8px 18px; }
.lxw-pop__trust li { display: inline-flex; align-items: center; gap: 7px; margin: 0 !important; padding: 0 !important; color: #E1E9FB; font-size: .8rem; font-weight: 500; }
.lxw-pop__trust li::before, .lxw-pop__trust li::marker { content: none; }
.lxw-pop__trust svg { color: #4ADE80; flex: none; }

/* Form body */
.lxw-pop__body { padding: 24px 30px 24px; }
.lxw-plan-modal .wpcf7 { margin: 0; }
.lxw-plan-modal .wpcf7-form { display: flex; flex-wrap: wrap; gap: 0 14px; margin: 0 !important; }
.lxw-plan-modal .wpcf7-form > * { flex: 1 1 100%; min-width: 0; margin: 0 0 14px !important; }
.lxw-plan-modal .wpcf7-form > p:has(input[type=text]), .lxw-plan-modal .wpcf7-form > p:has(input[type=email]),
.lxw-plan-modal .wpcf7-form > p:has(input[type=tel]), .lxw-plan-modal .wpcf7-form > p:has(select),
.lxw-plan-modal .wpcf7-form > label:has(input[type=text]), .lxw-plan-modal .wpcf7-form > label:has(input[type=email]),
.lxw-plan-modal .wpcf7-form > label:has(input[type=tel]), .lxw-plan-modal .wpcf7-form > label:has(select) { flex: 1 1 calc(50% - 7px); }
.lxw-plan-modal .wpcf7-form > p:not(.lxw-grc-note):not(:has(label, textarea, select, button, input:not([type=hidden]))),
.lxw-plan-modal .wpcf7-form > br, .lxw-plan-modal .hidden-fields-container { display: none !important; }
.lxw-plan-modal .wpcf7-form > .lxw-hp, .lxw-plan-modal .lxw-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; margin: 0 !important; }

.lxw-plan-modal .wpcf7-form label {
	display: block; margin: 0 !important; color: #334059 !important;
	font: 600 .78rem/1.3 Inter, system-ui, sans-serif !important; text-transform: none !important; letter-spacing: 0 !important;
}
.lxw-plan-modal .wpcf7-form label br { display: none; }
.lxw-plan-modal .wpcf7-form-control-wrap { display: block; margin-top: 6px; }

.lxw-plan-modal .wpcf7-form input:not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),
.lxw-plan-modal .wpcf7-form textarea,
.lxw-plan-modal .wpcf7-form select {
	display: block; width: 100% !important; max-width: 100% !important; height: 48px; margin: 0 !important; padding: 0 14px !important; box-sizing: border-box;
	border: 1px solid var(--lxp-line) !important; border-radius: 12px !important; background-color: var(--lxp-field) !important;
	color: var(--lxp-ink) !important; font: 500 .95rem/1.3 Inter, system-ui, sans-serif !important; text-transform: none !important; letter-spacing: 0 !important;
	box-shadow: none !important; outline: 0; transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.lxw-plan-modal .wpcf7-form textarea { height: auto; min-height: 96px; padding: 12px 14px !important; resize: vertical; }
.lxw-plan-modal .wpcf7-form select {
	-webkit-appearance: none; appearance: none; padding-right: 40px !important; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 7.5l5 5 5-5' fill='none' stroke='%235B6478' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important; background-position: right 14px center !important; background-size: 16px !important;
}
.lxw-plan-modal .wpcf7-form input::placeholder, .lxw-plan-modal .wpcf7-form textarea::placeholder { color: #98A2B8; opacity: 1; }
.lxw-plan-modal .wpcf7-form input:not([type=submit]):focus, .lxw-plan-modal .wpcf7-form textarea:focus, .lxw-plan-modal .wpcf7-form select:focus {
	border-color: var(--lxp-blue) !important; background-color: #fff !important; box-shadow: 0 0 0 4px rgba(22, 87, 255, .14) !important;
}
.lxw-plan-modal .wpcf7-form input:-webkit-autofill { -webkit-box-shadow: 0 0 0 40px #EEF3FD inset !important; -webkit-text-fill-color: var(--lxp-ink); }

/* Checkbox / acceptance */
.lxw-plan-modal .wpcf7-form .wpcf7-list-item { margin: 0 !important; }
.lxw-plan-modal .wpcf7-form .wpcf7-list-item label { display: inline-flex; align-items: flex-start; gap: 8px; font-weight: 500 !important; color: var(--lxp-muted) !important; }
.lxw-plan-modal .wpcf7-form input[type=checkbox] { width: 17px; height: 17px; margin: 1px 0 0 !important; accent-color: var(--lxp-blue); }

/* Submit */
.lxw-plan-modal .wpcf7-form > p:has([type=submit]), .lxw-plan-modal .wpcf7-form > :has(> [type=submit]) { position: relative; margin-bottom: 0 !important; }
.lxw-plan-modal .wpcf7-form input[type=submit], .lxw-plan-modal .wpcf7-form button[type=submit] {
	display: block; width: 100% !important; height: 54px; margin: 4px 0 0 !important; padding: 0 20px !important; cursor: pointer;
	border: 0 !important; border-radius: 14px !important; background: linear-gradient(135deg, #2366FF 0%, var(--lxp-blue2) 100%) !important;
	color: #fff !important; font: 700 1rem/1 Inter, system-ui, sans-serif !important; text-transform: none !important; letter-spacing: .01em !important;
	box-shadow: 0 14px 30px -12px rgba(22, 87, 255, .7) !important; transition: transform .15s ease, box-shadow .2s ease, filter .2s ease;
}
.lxw-plan-modal .wpcf7-form input[type=submit]:hover, .lxw-plan-modal .wpcf7-form button[type=submit]:hover { transform: translateY(-1px); filter: brightness(1.06); box-shadow: 0 18px 36px -12px rgba(22, 87, 255, .8) !important; }
.lxw-plan-modal .wpcf7-form input[type=submit]:focus-visible { outline: 3px solid rgba(22, 87, 255, .35); outline-offset: 3px; }
.lxw-plan-modal .wpcf7-form.submitting input[type=submit], .lxw-plan-modal .wpcf7-form.submitting button[type=submit] { opacity: .8; pointer-events: none; }
.lxw-plan-modal .wpcf7-spinner { position: absolute !important; right: 16px; top: 50%; margin: -10px 0 0 !important; background-color: rgba(255, 255, 255, .3) !important; }
.lxw-plan-modal .wpcf7-spinner::before { background-color: #fff !important; }

/* Messages */
.lxw-plan-modal .wpcf7-not-valid-tip { display: block; margin-top: 5px; color: #D92D20; font-size: .75rem; font-weight: 500; }
.lxw-plan-modal .wpcf7-form input.wpcf7-not-valid:not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),
.lxw-plan-modal .wpcf7-form textarea.wpcf7-not-valid, .lxw-plan-modal .wpcf7-form select.wpcf7-not-valid { border-color: #F97066 !important; background-color: #FFF8F7 !important; }
.lxw-plan-modal .wpcf7 form .wpcf7-response-output {
	flex: 1 1 100%; margin: 14px 0 0 !important; padding: 11px 14px !important; border-radius: 12px !important;
	border: 1px solid transparent !important; font-size: .86rem; line-height: 1.5; text-align: left;
}
.lxw-plan-modal .wpcf7 form.failed .wpcf7-response-output, .lxw-plan-modal .wpcf7 form.aborted .wpcf7-response-output { background: #FEF3F2; border-color: #FECDCA !important; color: #B42318; }
.lxw-plan-modal .wpcf7 form.spam .wpcf7-response-output { background: #FFF6ED; border-color: #FED7AA !important; color: #B54708; }
.lxw-plan-modal .wpcf7 form.invalid .wpcf7-response-output, .lxw-plan-modal .wpcf7 form.unaccepted .wpcf7-response-output { background: #FFFAEB; border-color: #FEDF89 !important; color: #93370D; }
.lxw-plan-modal .wpcf7 form.sent .wpcf7-response-output { background: #ECFDF3; border-color: #ABEFC6 !important; color: #067647; }

/* Footer line */
.lxw-pop__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; margin-top: 16px; padding-top: 14px; border-top: 1px solid #EDF1F7; font-size: .78rem; color: var(--lxp-muted); }
.lxw-pop__safe { display: inline-flex; align-items: center; gap: 6px; }
.lxw-pop__safe svg { color: #8A94A8; }
.lxw-plan-modal .lxw-pop__wa { display: inline-flex; align-items: center; gap: 6px; color: #128C4A !important; font-weight: 600; text-decoration: none !important; }
.lxw-plan-modal .lxw-pop__wa:hover { text-decoration: underline !important; }
.lxw-plan-modal .lxw-pop__wa[hidden] { display: none !important; }
.lxw-plan-modal .lxw-grc-note { flex: 1 1 100%; margin: 10px 0 0 !important; text-align: center; }

/* Thank-you state */
.lxw-plan-modal__sent { display: none; padding: 48px 32px 34px; text-align: center; }
.lxw-plan-modal.is-sent .lxw-plan-modal__form { display: none; }
.lxw-plan-modal.is-sent .lxw-plan-modal__sent { display: block; }
.lxw-plan-modal .lxw-plan-modal__tick {
	width: 68px; height: 68px; margin: 0 auto 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
	background: linear-gradient(135deg, #22C55E, #0E9F55); color: #fff; box-shadow: 0 0 0 8px rgba(34, 197, 94, .14), 0 16px 30px -12px rgba(14, 159, 85, .7);
	animation: lxpPop .45s cubic-bezier(.34, 1.56, .64, 1);
}
@keyframes lxpPop { from { transform: scale(.4); opacity: 0; } to { transform: none; opacity: 1; } }
.lxw-plan-modal .lxw-plan-modal__sent h3 { margin: 0 0 8px !important; color: var(--lxp-ink) !important; font: 700 1.45rem/1.25 Outfit, Inter, system-ui, sans-serif !important; text-transform: none !important; }
.lxw-plan-modal .lxw-plan-modal__sent p { margin: 0 auto !important; max-width: 380px; color: var(--lxp-muted); font-size: .94rem; line-height: 1.55; }
.lxw-plan-modal .lxw-plan-modal__wa {
	display: inline-flex; align-items: center; gap: 9px; margin: 20px 0 6px; padding: 13px 22px; border-radius: 13px;
	background: #25D366 !important; color: #fff !important; font-weight: 700; text-decoration: none !important; box-shadow: 0 12px 26px -12px rgba(37, 211, 102, .8);
}
.lxw-plan-modal .lxw-plan-modal__wa[hidden] { display: none !important; }
.lxw-plan-modal .lxw-plan-modal__done {
	display: block; margin: 10px auto 0 !important; padding: 6px 10px !important; border: 0 !important; background: none !important; box-shadow: none !important;
	color: var(--lxp-muted) !important; font: 500 .9rem Inter, system-ui, sans-serif !important; text-transform: none !important; text-decoration: underline; cursor: pointer;
}

/* Phones: bottom sheet */
@media (max-width: 600px) {
	.lxw-plan-modal { align-items: flex-end; padding: 0; }
	.lxw-plan-modal__box { max-width: 100%; max-height: 92vh; max-height: 92dvh; border-radius: 24px 24px 0 0; animation: lxpSheet .32s cubic-bezier(.16, 1, .3, 1); }
	.lxw-pop__head { padding: 26px 20px 20px; }
	.lxw-pop__head::before { content: ""; position: absolute; top: 8px; left: 50%; width: 40px; height: 4px; margin-left: -20px; border-radius: 4px; background: rgba(255, 255, 255, .28); }
	.lxw-plan-modal .lxw-pop__head h3 { font-size: 1.32rem !important; }
	.lxw-pop__trust { gap: 6px 14px; }
	.lxw-pop__trust li:nth-child(3) { display: none; }
	.lxw-pop__body { padding: 20px 20px calc(18px + env(safe-area-inset-bottom)); }
	.lxw-plan-modal .wpcf7-form > * { flex-basis: 100% !important; }
	.lxw-plan-modal .lxw-plan-modal__x { top: 12px; right: 12px; }
}
@keyframes lxpSheet { from { transform: translateY(48px); opacity: .5; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .lxw-plan-modal__box, .lxw-plan-modal__bg, .lxw-plan-modal .lxw-plan-modal__tick { animation: none !important; } }

/* reCAPTCHA: badge hidden, Google's required text shown under each form instead */
.lxw-grc-hide .grecaptcha-badge { visibility: hidden !important; }
.lxw-grc-note { margin: 10px 0 0; font-size: .72rem; line-height: 1.5; color: #8A94A8; }
.lxw-grc-note a { color: inherit !important; text-decoration: underline; }
