/**
 * File: assets/css/reine-frontend.css
 * Location: /wp-content/plugins/reine-expo-lead-capture/assets/css/reine-frontend.css
 * Purpose: All visitor-facing styling. Scoped entirely under #reineExpo2026
 *          so it can never bleed into (or be overridden by) the active
 *          WordPress theme or Elementor's own styles.
 * Installation: Enqueued automatically by class-reine-shortcode.php on any
 *          page containing the [reine_expo_registration] shortcode.
 * Dependencies: None (plain CSS, no preprocessor).
 * Configuration: Colors/spacing are defined once as CSS variables at the top
 *          of #reineExpo2026 — change them there to re-theme the whole flow.
 * Security: N/A (no executable code).
 * Testing: Load the page at 320px, 360px, 375px, 390px and 414px widths
 *          (Chrome DevTools device toolbar) and confirm no horizontal scroll
 *          and no overlapping elements at any size.
 */

#reineExpo2026 {
	--re-navy: #0E3A5F;
	--re-navy-dark: #0A2740;
	--re-teal: #12857C;
	--re-gold: #F2A93B;
	--re-red: #B00020;
	--re-green: #1E8E3E;
	--re-bg: #F5F9FA;
	--re-card: #FFFFFF;
	--re-text: #1B2B34;
	--re-grey: #5B6B73;
	--re-border: #E1EAEC;

	all: initial;
	box-sizing: border-box;
	display: block;
	max-width: 480px;
	margin: 0 auto;
	padding: 16px;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
	color: var(--re-text) !important;
	background: var(--re-bg) !important;
	min-height: 100vh;
}

#reineExpo2026 *,
#reineExpo2026 *::before,
#reineExpo2026 *::after {
	box-sizing: border-box !important;
	font-family: inherit !important;
	line-height: 1.45 !important;
}

#reineExpo2026 .re-card {
	background: var(--re-card) !important;
	border-radius: 16px !important;
	padding: 24px 20px !important;
	box-shadow: 0 2px 16px rgba(14, 58, 95, 0.08) !important;
}

#reineExpo2026 .re-header {
	text-align: center !important;
	margin-bottom: 20px !important;
}
#reineExpo2026 .re-logo {
	font-weight: 700 !important;
	font-size: 18px !important;
	letter-spacing: 1px !important;
	color: var(--re-navy) !important;
}
#reineExpo2026 .re-tagline {
	font-size: 13px !important;
	color: var(--re-grey) !important;
	margin-top: 4px !important;
}

#reineExpo2026 .re-section {
	display: none !important;
}
#reineExpo2026 .re-section.is-active {
	display: block !important;
	animation: reineFadeIn 0.25s ease !important;
}
@keyframes reineFadeIn {
	from { opacity: 0; transform: translateY(6px); }
	to   { opacity: 1; transform: translateY(0); }
}

#reineExpo2026 .re-title {
	font-size: 20px !important;
	font-weight: 700 !important;
	color: var(--re-navy) !important;
	margin: 0 0 4px 0 !important;
}
#reineExpo2026 .re-sub {
	font-size: 13.5px !important;
	color: var(--re-grey) !important;
	margin: 0 0 18px 0 !important;
}

#reineExpo2026 .re-field {
	margin-bottom: 14px !important;
}
#reineExpo2026 .re-field label {
	display: block !important;
	font-size: 12.5px !important;
	font-weight: 600 !important;
	color: var(--re-navy) !important;
	margin-bottom: 5px !important;
}
#reineExpo2026 .re-field input {
	width: 100% !important;
	padding: 13px 14px !important;
	font-size: 16px !important; /* 16px prevents iOS auto-zoom on focus */
	border: 1.5px solid var(--re-border) !important;
	border-radius: 10px !important;
	background: #FFFFFF !important;
	color: var(--re-text) !important;
	outline: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}
#reineExpo2026 .re-field input:focus {
	border-color: var(--re-teal) !important;
	box-shadow: 0 0 0 3px rgba(18, 133, 124, 0.15) !important;
}
#reineExpo2026 .re-field input.re-invalid {
	border-color: var(--re-red) !important;
}

#reineExpo2026 .re-consent {
	margin: 4px 0 18px 0 !important;
}
#reineExpo2026 .re-consent label {
	display: flex !important;
	align-items: flex-start !important;
	gap: 8px !important;
	font-size: 12px !important;
	color: var(--re-grey) !important;
}
#reineExpo2026 .re-consent input {
	margin-top: 2px !important;
	flex-shrink: 0 !important;
}

#reineExpo2026 .re-otp-input {
	text-align: center !important;
	letter-spacing: 10px !important;
	font-size: 24px !important;
	font-weight: 700 !important;
}
#reineExpo2026 .re-otp-meta {
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	margin: 10px 0 18px 0 !important;
	font-size: 13px !important;
	color: var(--re-grey) !important;
}

#reineExpo2026 .re-error {
	display: none !important;
	background: #FDECEC !important;
	color: var(--re-red) !important;
	font-size: 13px !important;
	padding: 10px 12px !important;
	border-radius: 8px !important;
	margin-bottom: 14px !important;
}
#reineExpo2026 .re-error.is-visible {
	display: block !important;
}

#reineExpo2026 .re-btn {
	display: block !important;
	width: 100% !important;
	text-align: center !important;
	padding: 15px 16px !important;
	font-size: 15.5px !important;
	font-weight: 700 !important;
	border: none !important;
	border-radius: 10px !important;
	cursor: pointer !important;
	text-decoration: none !important;
	margin-top: 10px !important;
	-webkit-tap-highlight-color: transparent !important;
	min-height: 48px !important;
}
#reineExpo2026 .re-btn-primary {
	background: var(--re-navy) !important;
	color: #FFFFFF !important;
}
#reineExpo2026 .re-btn-primary:active {
	background: var(--re-navy-dark) !important;
}
#reineExpo2026 .re-btn-primary:disabled {
	opacity: 0.6 !important;
	cursor: not-allowed !important;
}
#reineExpo2026 .re-btn-ghost {
	background: transparent !important;
	color: var(--re-grey) !important;
	margin-top: 4px !important;
}
#reineExpo2026 .re-btn-cta {
	background: var(--re-teal) !important;
	color: #FFFFFF !important;
}
#reineExpo2026 .re-btn-cta:nth-of-type(2) {
	background: var(--re-navy) !important;
}
#reineExpo2026 .re-btn-cta:nth-of-type(3) {
	background: var(--re-gold) !important;
	color: var(--re-navy-dark) !important;
}

#reineExpo2026 .re-link {
	background: none !important;
	border: none !important;
	color: var(--re-teal) !important;
	font-weight: 700 !important;
	font-size: 13px !important;
	cursor: pointer !important;
	padding: 4px !important;
}
#reineExpo2026 .re-link:disabled {
	color: var(--re-grey) !important;
	cursor: not-allowed !important;
}

#reineExpo2026 .re-check {
	width: 56px !important;
	height: 56px !important;
	line-height: 56px !important;
	border-radius: 50% !important;
	background: var(--re-teal) !important;
	color: #FFFFFF !important;
	font-size: 28px !important;
	text-align: center !important;
	margin: 0 auto 14px auto !important;
}

#reineExpo2026 .re-cta-list {
	margin-top: 18px !important;
}

#reineExpo2026 .re-banner {
	text-align: center !important;
	font-size: 12px !important;
	color: var(--re-grey) !important;
	margin-top: 14px !important;
	padding: 10px 12px !important;
}
#reineExpo2026 .re-banner strong {
	color: var(--re-navy) !important;
}

@media (min-width: 481px) {
	#reineExpo2026 {
		padding: 32px 16px !important;
	}
}
