/* Attendee Registration for WooCommerce - form styling.
 * Most values can be changed in WooCommerce > Form Style. Every var(--wcar-...) below
 * falls back to the default after the comma when no setting has been saved. */
.wcar-form {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--wcar-max-width, 100%);
	flex: 0 0 100%;
	clear: both;
	margin: 0 var(--wcar-margin-x, 0) 2em;
	padding: var(--wcar-form-pad, 0);
	background: var(--wcar-form-bg, transparent);
	border-radius: var(--wcar-radius, 10px);
	color: var(--wcar-text, inherit);
	font-size: var(--wcar-font-size, inherit);
}
.wcar-form *, .wcar-form *::before, .wcar-form *::after { box-sizing: border-box; }
.wcar-form [hidden] { display: none !important; }

/* Let the form use the full width even when the theme squeezes the add-to-cart area. */
form.cart:has(.wcar-form) { display: block; width: 100%; max-width: 100%; }

.wcar-count { margin: 0 0 12px; }
.wcar-count select { margin-left: 10px; min-width: 80px; }
.wcar-note { margin: 0 0 24px; opacity: .8; }
.wcar-req { color: #b32d2e; }

/* One box per attendee */
.wcar-attendee {
	border: 1px solid var(--wcar-card-border, #d9dde3);
	border-radius: var(--wcar-radius, 10px);
	padding: var(--wcar-card-padding, 24px);
	margin: 0 0 var(--wcar-card-gap, 28px);
	background: var(--wcar-card-bg, #f7f8fa);
}
.wcar-attendee h3 {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 20px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--wcar-card-border, #d9dde3);
	font-size: var(--wcar-heading-size, 1.15em);
	color: var(--wcar-text, inherit);
}

.wcar-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 var(--wcar-col-gap, 28px);
	align-items: start;
}
.wcar-full { grid-column: 1 / -1; }

.wcar-field { margin: 0 0 var(--wcar-field-gap, 20px); }
.wcar-field label {
	display: block;
	margin: 0 0 6px;
	font-weight: 600;
	line-height: 1.35;
	font-size: var(--wcar-label-size, 1em);
	color: var(--wcar-label, inherit);
}
.wcar-field input[type="text"],
.wcar-field input[type="email"],
.wcar-field select {
	display: block;
	width: 100%;
	max-width: 100%;
	padding: .6em .75em;
	margin: 0;
}

/* Checkbox and radio groups (business designation, first MDEX) */
.wcar-checks { border: 0; padding: 0; margin: 0 0 var(--wcar-field-gap, 20px); min-width: 0; background: transparent; }
.wcar-legend {
	display: block;
	position: static;
	float: none;
	clear: both;
	width: 100%;
	height: auto;
	transform: none;
	padding: 0;
	margin: 0 0 12px;
	border: 0;
	background: transparent !important;
	box-shadow: none;
	font-weight: 600;
	line-height: 1.35;
	font-size: var(--wcar-label-size, 1em);
	color: var(--wcar-label, inherit);
}
.wcar-options { display: flex; flex-wrap: wrap; gap: 12px 36px; }
.wcar-options label {
	background: transparent;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-weight: 400;
	line-height: 1.35;
	color: var(--wcar-text, inherit);
}
.wcar-options input { margin: 0; flex: 0 0 auto; }

/* Business designation: two tidy columns */
.wcar-industry .wcar-options {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px var(--wcar-col-gap, 28px);
}

/* "Is this your first MDEX?" gets breathing room and a divider above it */
.wcar-first {
	margin-top: 8px;
	margin-bottom: 0;
	padding-top: 20px;
	border-top: 1px solid var(--wcar-card-border, #d9dde3);
}

.wcar-section { margin: 0 0 var(--wcar-field-gap, 20px); }
.wcar-section .wcar-grid { gap: 0 var(--wcar-col-gap, 28px); }
.wcar-section .wcar-field:last-child,
.wcar-section .wcar-checks:last-child { margin-bottom: 0; }

/* Space above the Register button */
form.cart:has(.wcar-form) .single_add_to_cart_button { margin-top: 8px; }

@media (max-width: 700px) {
	.wcar-attendee { padding: 16px; }
	.wcar-grid,
	.wcar-industry .wcar-options { grid-template-columns: 1fr; }
	.wcar-options { gap: 12px 24px; }
}

/* ---- Touch-friendly sizing ---- */
.wcar-form input[type="text"],
.wcar-form input[type="email"],
.wcar-form select { min-height: 44px; }
.wcar-form .wcar-copy { min-height: 40px; }
.wcar-field label,
.wcar-legend { overflow-wrap: anywhere; }
.wcar-options input[type="checkbox"],
.wcar-options input[type="radio"] { width: 20px; height: 20px; }
.wcar-options label { min-height: 32px; }

@media (max-width: 700px) {
	/* 16px stops iOS from zooming the page when a field is tapped */
	.wcar-form input[type="text"],
	.wcar-form input[type="email"],
	.wcar-form select { font-size: 16px; }
	.wcar-count select { display: block; margin: 8px 0 0; width: 100%; }
	.wcar-attendee h3 .wcar-copy { width: 100%; }
	.wcar-submit,
	form.cart:has(.wcar-form) .single_add_to_cart_button { width: 100%; min-height: 48px; }
}

/* ---- Registration form from the shortcode ---- */
.wcar-page-form { margin: 0; }
.wcar-submit { margin-top: 8px; cursor: pointer; }
.wcar-closed { padding: 16px; border: 1px solid #d9dde3; border-radius: 8px; background: #f7f8fa; text-align: center; }

/* ---- Full-width page layout (product option) ---- */
body.wcar-landing .woocommerce-product-gallery,
body.wcar-landing .woocommerce-tabs,
body.wcar-landing .related.products,
body.wcar-landing .up-sells,
body.wcar-landing .product_meta,
body.wcar-landing .woocommerce-product-rating,
body.wcar-landing span.onsale,
body.wcar-landing .summary .price,
body.wcar-landing .summary .woocommerce-product-details__short-description,
body.wcar-landing .wp-block-woocommerce-product-image-gallery,
body.wcar-landing .wp-block-woocommerce-related-products,
body.wcar-landing .wp-block-woocommerce-product-details,
body.wcar-landing .wp-block-woocommerce-product-price,
body.wcar-landing .wp-block-woocommerce-product-meta,
body.wcar-landing .wp-block-woocommerce-product-rating,
body.wcar-landing .wp-block-woocommerce-product-summary { display: none !important; }

body.wcar-landing div.product { display: block; }
body.wcar-landing div.product div.summary,
body.wcar-landing div.product .entry-summary,
body.wcar-landing .wp-block-woocommerce-add-to-cart-form {
	float: none;
	width: 100%;
	max-width: var(--wcar-page-width, 960px);
	margin-left: auto;
	margin-right: auto;
	padding-left: 16px;
	padding-right: 16px;
}
body.wcar-landing .product_title,
body.wcar-landing h1.wp-block-post-title { text-align: center; }

.wcar-intro { margin: 0 0 28px; line-height: 1.6; }
.wcar-intro img { max-width: 100%; height: auto; }
.wcar-intro > :first-child { margin-top: 0; }
