/* Fashion RSVP System - Public Styles */

.frsvp-wrap {
	max-width: 560px;
	margin: 0 auto;
	font-family: inherit;
}

.frsvp-form {
	background: #fff;
	border-radius: 10px;
	padding: 36px;
	box-shadow: 0 4px 20px rgba(0,0,0,.10);
}

.frsvp-title {
	margin: 0 0 8px;
	font-size: 24px;
	color: #333;
}

.frsvp-desc {
	margin: 0 0 24px;
	color: #666;
	font-size: 15px;
}

.frsvp-field {
	margin-bottom: 18px;
}

.frsvp-field label {
	display: block;
	font-weight: 600;
	margin-bottom: 6px;
	color: #444;
	font-size: 14px;
}

.frsvp-field .required {
	color: #e53e3e;
	margin-left: 2px;
}

.frsvp-field input[type="text"],
.frsvp-field input[type="email"],
.frsvp-field input[type="tel"],
.frsvp-field select {
	width: 100%;
	padding: 10px 14px;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 15px;
	color: #333;
	background: #fafafa;
	box-sizing: border-box;
	transition: border-color .2s;
}

.frsvp-field input:focus,
.frsvp-field select:focus {
	outline: none;
	border-color: #667eea;
	background: #fff;
}

.frsvp-field-error {
	color: #e53e3e;
	font-size: 13px;
	margin-top: 4px;
	display: block;
}

.frsvp-btn {
	width: 100%;
	padding: 13px;
	background: linear-gradient(135deg, #667eea, #764ba2);
	color: #fff;
	border: none;
	border-radius: 6px;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	transition: opacity .2s;
}

.frsvp-btn:hover { opacity: .9; }
.frsvp-btn:disabled { opacity: .6; cursor: not-allowed; }

.frsvp-success {
	background: #f0fff4;
	border: 1px solid #9ae6b4;
	color: #276749;
	padding: 16px;
	border-radius: 6px;
	margin-bottom: 16px;
	display: none;
}

.frsvp-error-general {
	background: #fff5f5;
	border: 1px solid #feb2b2;
	color: #c53030;
	padding: 16px;
	border-radius: 6px;
	margin-bottom: 16px;
	display: none;
}

.frsvp-ticket-info {
	margin-top: 12px;
	padding: 12px;
	background: #ebf4ff;
	border-radius: 6px;
	font-size: 14px;
}

.frsvp-ticket-info strong {
	font-size: 18px;
	letter-spacing: 2px;
	color: #2b6cb0;
}

/* Social sharing */
.frsvp-social {
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid #eee;
	text-align: center;
}

.frsvp-social p {
	margin: 0 0 12px;
	font-weight: 600;
	color: #555;
}

.frsvp-social-btns {
	display: flex;
	gap: 10px;
	justify-content: center;
	flex-wrap: wrap;
}

.frsvp-share-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	border-radius: 6px;
	font-size: 14px;
	font-weight: 600;
	color: #fff;
	text-decoration: none;
	cursor: pointer;
	border: none;
}

.frsvp-share-btn.whatsapp  { background: #25d366; }
.frsvp-share-btn.facebook  { background: #1877f2; }
.frsvp-share-btn.twitter   { background: #1da1f2; }
.frsvp-share-btn.copy-link { background: #718096; }

/* Guest name fields */
#frsvp-guest-names { margin-top: 6px; }

/* Loading state */
.frsvp-form.loading .frsvp-btn::after {
	content: ' ...';
}
