/**
 * WhatsApp Lead Form — frontend styles.
 * Color/size/position values come from CSS variables injected inline.
 */

.wlf-wrap{font-family:var(--wlf-font,inherit);}
.wlf-wrap *{box-sizing:border-box;}

/* Launcher button */
.wlf-launcher{
	position:fixed;
	z-index:99998;
	width:var(--wlf-btn-size,60px);
	height:var(--wlf-btn-size,60px);
	border:none;
	border-radius:50%;
	background:var(--wlf-btn-bg,#25D366) !important;
	color:var(--wlf-btn-icon,#fff);
	cursor:pointer;
	display:flex;
	align-items:center;
	justify-content:center;
	box-shadow:0 6px 18px rgba(0,0,0,.25);
	transition:transform .2s ease, box-shadow .2s ease;
	padding:0;
}
.wlf-launcher:hover,.wlf-launcher:focus,.wlf-launcher:active{background:var(--wlf-btn-bg,#25D366) !important;color:var(--wlf-btn-icon,#fff) !important;transform:scale(1.06);box-shadow:0 8px 24px rgba(0,0,0,.3);}
.wlf-launcher:focus-visible{outline:3px solid rgba(255,255,255,.7);outline-offset:2px;}
.wlf-launcher-icon{width:60%;height:60%;}
.wlf-launcher-icon-img{width:64%;height:64%;object-fit:contain;border-radius:50%;}

/* Tooltip */
.wlf-tooltip{
	position:fixed;
	z-index:99998;
	bottom:calc(var(--wlf-offset-y,24px) + var(--wlf-btn-size,60px) + 14px);
	background:#fff;
	color:#1f2937;
	padding:10px 30px 10px 14px;
	border-radius:10px;
	box-shadow:0 6px 20px rgba(0,0,0,.18);
	font-size:14px;
	max-width:230px;
	line-height:1.35;
	animation:wlf-fade-in .35s ease;
}
.wlf-launcher ~ .wlf-tooltip,.wlf-tooltip{}
.wlf-wrap .wlf-tooltip{right:var(--wlf-offset-x,24px);}
.wlf-tooltip-close{
	position:absolute;top:4px;right:6px;border:none;background:none;
	font-size:16px;line-height:1;cursor:pointer;color:#9ca3af;padding:2px;
}
.wlf-tooltip-close:hover{color:#4b5563;}

/* Popup */
.wlf-popup{
	position:fixed;
	z-index:99999;
	width:360px;
	max-width:calc(100vw - 32px);
	max-height:calc(100vh - 120px);
	overflow-y:auto;
	background:var(--wlf-popup-bg,#fff);
	color:var(--wlf-popup-text,#1f2937);
	border-radius:var(--wlf-popup-radius,14px);
	box-shadow:0 20px 50px rgba(0,0,0,.3);
	animation:wlf-pop-in .25s ease;
}
.wlf-popup[hidden]{display:none;}

.wlf-popup-header{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:10px;
	padding:18px 18px 8px;
	background:var(--wlf-accent,#25D366);
	color:#fff;
	border-radius:var(--wlf-popup-radius,14px) var(--wlf-popup-radius,14px) 0 0;
}
.wlf-popup-title{margin:0;font-size:18px;font-weight:700;line-height:1.25;}
.wlf-popup-subtitle{margin:4px 0 0;font-size:13px;opacity:.92;}
.wlf-close{
	border:none;
	background:rgba(255,255,255,.2);
	color:#fff;
	width:30px;
	height:30px;
	min-width:30px;
	border-radius:50%;
	font-size:22px;
	line-height:1;
	cursor:pointer;
	flex:0 0 auto;
	padding:0;
	margin:0;
	display:flex;
	align-items:center;
	justify-content:center;
}
.wlf-close:hover{background:rgba(255,255,255,.35);}

/* Form */
.wlf-form{padding:16px 18px 18px;}
.wlf-field{margin-bottom:12px;}
.wlf-wrap .wlf-label{
	display:block;
	font-size:13px;
	font-weight:600;
	margin:0 0 5px;
	padding:0;
	color:var(--wlf-popup-text,#1f2937) !important;
	text-transform:none;
	letter-spacing:normal;
	line-height:1.3;
	text-indent:0;
	opacity:1;
	visibility:visible;
}
.wlf-req{color:#e11d48;}
.wlf-wrap .wlf-input{
	width:100%;
	padding:10px 12px;
	border:1px solid #d1d5db;
	border-radius:var(--wlf-field-radius,8px);
	font-size:14px;
	font-family:inherit;
	color:var(--wlf-popup-text,#1f2937) !important;
	background:#fff !important;
	background-color:#fff !important;
	color-scheme:light; /* keep native date/time pickers light, not dark */
	transition:border-color .15s ease, box-shadow .15s ease;
}
/* Force native date & time controls to render light (some themes set color-scheme:dark). */
.wlf-wrap input[type="date"].wlf-input,
.wlf-wrap input[type="time"].wlf-input{
	color-scheme:light;
	background:#fff !important;
	color:var(--wlf-popup-text,#1f2937) !important;
}
.wlf-wrap input[type="date"].wlf-input::-webkit-calendar-picker-indicator,
.wlf-wrap input[type="time"].wlf-input::-webkit-calendar-picker-indicator{
	filter:none;
	opacity:.7;
	cursor:pointer;
}
.wlf-input:focus{
	outline:none;
	border-color:var(--wlf-accent,#25D366);
	box-shadow:0 0 0 3px color-mix(in srgb,var(--wlf-accent,#25D366) 25%,transparent);
}
textarea.wlf-input{resize:vertical;min-height:74px;}
.wlf-choices{display:flex;flex-wrap:wrap;gap:8px 16px;}
.wlf-choice{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:400;}

.wlf-field.wlf-invalid .wlf-input{border-color:#e11d48;}
.wlf-error{display:none;color:#e11d48;font-size:12px;margin-top:4px;}
.wlf-field.wlf-invalid .wlf-error{display:block;}

.wlf-form-status{font-size:13px;margin:4px 0 10px;min-height:0;}
.wlf-form-status.wlf-ok{color:#15803d;}
.wlf-form-status.wlf-err{color:#e11d48;}
.wlf-form-status:empty{display:none;}

/* Submit */
.wlf-submit{
	width:100%;
	border:none;
	border-radius:999px;
	background:var(--wlf-accent,#25D366);
	color:#fff;
	font-size:15px;
	font-weight:700;
	padding:12px 18px;
	cursor:pointer;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	transition:filter .15s ease;
}
.wlf-submit:hover{filter:brightness(.95);}
.wlf-submit:disabled{opacity:.7;cursor:default;}
.wlf-spinner{
	width:16px;height:16px;border-radius:50%;
	border:2px solid rgba(255,255,255,.5);
	border-top-color:#fff;
	display:none;
	animation:wlf-spin .7s linear infinite;
}
.wlf-submit.wlf-loading .wlf-spinner{display:inline-block;}

.wlf-credit{text-align:center;font-size:11px;margin:12px 0 0;opacity:.65;}
.wlf-credit a{color:inherit;}

/* Device visibility */
@media (max-width:782px){
	.wlf-device-desktop{display:none !important;}
	.wlf-popup{width:320px;}
}
@media (min-width:783px){
	.wlf-device-mobile{display:none !important;}
}

/* Animations */
@keyframes wlf-pop-in{from{opacity:0;transform:translateY(12px) scale(.98);}to{opacity:1;transform:none;}}
@keyframes wlf-fade-in{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
@keyframes wlf-spin{to{transform:rotate(360deg);}}

@media (prefers-reduced-motion:reduce){
	.wlf-popup,.wlf-tooltip,.wlf-launcher,.wlf-spinner{animation:none;transition:none;}
}

/* ---- Inline form (shortcode / Elementor) ---- */
.wlf-inline{
	position:static;
	display:block;
	width:100%;
	max-width:520px;
	font-family:var(--wlf-font,inherit);
	color:var(--wlf-popup-text,#1f2937);
	background:var(--wlf-popup-bg,#fff);
	border-radius:var(--wlf-popup-radius,14px);
	padding:22px;
	box-shadow:0 4px 18px rgba(0,0,0,.08);
}
.wlf-inline .wlf-inline-title{
	margin:0 0 4px;
	font-size:20px;
	font-weight:700;
	line-height:1.25;
	color:var(--wlf-popup-text,#1f2937);
}
.wlf-inline .wlf-inline-subtitle{
	margin:0 0 16px;
	font-size:14px;
	opacity:.8;
}
.wlf-inline .wlf-form{padding:0;}
.wlf-inline .wlf-credit{display:none;}

/* ---- Defensive spacing, sizing & responsiveness (overrides theme styling) ---- */

/* Consistent vertical rhythm between fields (popup + inline). */
.wlf-wrap .wlf-fields{display:block;}
.wlf-wrap .wlf-field{
	margin:0 0 18px !important;
	padding:0 !important;
	width:100%;
	clear:both;
}
.wlf-wrap .wlf-field:last-child{margin-bottom:14px !important;}

.wlf-wrap .wlf-label{
	display:block !important;
	margin:0 0 6px !important;
	padding:0 !important;
	font-size:14px !important;
	font-weight:600 !important;
	line-height:1.3 !important;
	width:100%;
}

/* Normalize every input/select/textarea so theme padding/height can't distort them. */
.wlf-wrap .wlf-input{
	display:block !important;
	width:100% !important;
	max-width:100% !important;
	box-sizing:border-box !important;
	margin:0 !important;
	padding:10px 12px !important;
	font-size:16px !important;      /* 16px prevents zoom-on-focus on iOS */
	line-height:1.4 !important;
	height:auto !important;
	min-height:0 !important;
	vertical-align:middle;
}
/* Uniform single-line control height (fixes the over-tall native date box). */
.wlf-wrap input.wlf-input,
.wlf-wrap select.wlf-input{height:46px !important;}
.wlf-wrap textarea.wlf-input{height:auto !important;min-height:90px !important;}

.wlf-wrap .wlf-choices{margin-top:2px;}
.wlf-wrap .wlf-error{margin-top:5px;}

/* Inline wrapper: fluid and centered, with comfortable padding. */
.wlf-inline{
	box-sizing:border-box;
	width:100%;
	max-width:520px;
	margin:0 auto;
}
.wlf-inline .wlf-submit{margin-top:4px;}

/* Responsive breakpoints. */
@media (max-width:600px){
	.wlf-inline{padding:16px;border-radius:12px;}
	.wlf-wrap .wlf-field{margin-bottom:16px !important;}
	.wlf-popup{width:auto;left:12px !important;right:12px !important;max-width:none;}
}
@media (max-width:400px){
	.wlf-inline{padding:14px;}
	.wlf-wrap input.wlf-input,.wlf-wrap select.wlf-input{height:44px !important;}
}

/* ============================================================
   v1.2 — Tabs, icons, counter, enhanced popup (fixed header)
   ============================================================ */

/* Popup as a flex column so the header stays fixed while the body scrolls. */
.wlf-popup{
	display:flex;
	flex-direction:column;
	overflow:hidden;
	padding:0;
	width:370px;
}
.wlf-popup-header{
	position:relative;
	flex:0 0 auto;
	align-items:center;
	gap:12px;
	padding:18px 18px;
	border-radius:var(--wlf-popup-radius,16px) var(--wlf-popup-radius,16px) 0 0;
	box-shadow:0 2px 10px rgba(0,0,0,.06);
	z-index:2;
}
.wlf-popup-header-icon{
	flex:0 0 auto;
	width:40px;height:40px;border-radius:50%;
	background:rgba(255,255,255,.22);
	color:#fff;
	display:flex;align-items:center;justify-content:center;
}
.wlf-popup-header-text{flex:1 1 auto;min-width:0;}
.wlf-popup-body{
	flex:1 1 auto;
	overflow-y:auto;
	-webkit-overflow-scrolling:touch;
	padding:16px 18px 18px;
}
.wlf-popup-body .wlf-form{padding:0;}

/* Tabs nav (pill style, like the reference). */
.wlf-tabs-nav{
	display:flex;
	gap:4px;
	background:rgba(0,0,0,.05);
	border-radius:999px;
	padding:4px;
	margin:0 0 16px;
}
.wlf-tab-btn{
	flex:1 1 0;
	border:none;
	background:transparent;
	color:var(--wlf-popup-text,#1f2937);
	font-family:inherit;
	font-size:14px;
	font-weight:600;
	padding:9px 10px;
	border-radius:999px;
	cursor:pointer;
	transition:background .15s ease, box-shadow .15s ease;
}
.wlf-tab-btn.is-active{
	background:var(--wlf-popup-bg,#fff);
	box-shadow:0 2px 6px rgba(0,0,0,.12);
}
.wlf-tab-btn:focus-visible{outline:2px solid var(--wlf-accent,#25D366);outline-offset:1px;}

/* Show/hide fields per active tab. */
.wlf-form.wlf-tab-now .wlf-field:not(.wlf-in-now){display:none !important;}
.wlf-form.wlf-tab-plans .wlf-field:not(.wlf-in-plans){display:none !important;}

/* Inline icon inside inputs. */
.wlf-input-wrap{position:relative;display:block;width:100%;}
.wlf-input-wrap.has-ico .wlf-input{padding-left:40px !important;}
.wlf-ico{
	position:absolute;
	left:13px;top:50%;
	transform:translateY(-50%);
	width:18px;height:18px;
	color:var(--wlf-accent,#25D366);
	opacity:.85;
	pointer-events:none;
	display:flex;
}
.wlf-ico .wlf-ico-svg{width:18px;height:18px;}
.wlf-field-textarea .wlf-input-wrap.has-ico .wlf-ico{top:22px;transform:none;}
.wlf-field-select .wlf-input-wrap.has-ico .wlf-input{padding-right:28px !important;}

/* Icon shown beside labels for choice/counter fields. */
.wlf-wrap .wlf-label{display:flex !important;align-items:center;gap:7px;}
.wlf-label-ico{display:inline-flex;width:16px;height:16px;color:var(--wlf-accent,#25D366);}
.wlf-label-ico .wlf-ico-svg{width:16px;height:16px;}

/* Passenger counter. */
.wlf-counter{
	display:inline-flex;
	align-items:center;
	gap:0;
	border:1px solid #d1d5db;
	border-radius:999px;
	overflow:hidden;
	background:#fff;
}
.wlf-counter-btn{
	width:42px;height:46px;
	border:none;background:transparent;
	font-size:22px;line-height:1;
	color:var(--wlf-accent,#25D366);
	cursor:pointer;
	display:flex;align-items:center;justify-content:center;
	transition:background .15s ease;
}
.wlf-counter-btn:hover{background:rgba(0,0,0,.05);}
.wlf-wrap .wlf-counter .wlf-counter-input{
	width:56px !important;
	height:46px !important;
	border:none !important;
	border-left:1px solid #eee !important;
	border-right:1px solid #eee !important;
	border-radius:0 !important;
	text-align:center !important;
	padding:0 !important;
	font-weight:600;
	background:#fff !important;
	-moz-appearance:textfield;
}
.wlf-counter .wlf-counter-input::-webkit-outer-spin-button,
.wlf-counter .wlf-counter-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}

/* Submit button with icon. */
.wlf-submit{gap:9px;}
.wlf-submit-ico{display:inline-flex;align-items:center;}
.wlf-wa-glyph{width:18px;height:18px;}

/* Footer note. */
.wlf-footer-note{
	text-align:center;
	font-size:12.5px;
	margin:12px 0 0;
	opacity:.75;
}

/* Inline wrapper tabs spacing. */
.wlf-inline .wlf-tabs-nav{margin-bottom:16px;}

/* Small-screen popup adjustments. */
@media (max-width:600px){
	.wlf-popup{width:auto;left:10px !important;right:10px !important;max-width:none;max-height:82vh;}
	.wlf-popup-header{padding:16px 14px;}
	.wlf-popup-body{padding:14px;}
}
