:root {
	--lme-wine: #5b0f22;
	--lme-rose: #7a4548;
	--lme-cream: #fef9f6;
	--lme-white: #fff;
	--lme-text: #3b2428;
	--lme-border: #ded0ca;
	--lme-success: #2f6b4f;
	--lme-shadow: 0 16px 44px rgba(59, 36, 40, 0.08);
}

.lme-configurator,
.lme-participation,
.lme-account {
	box-sizing: border-box;
	max-width: 980px;
	margin: 32px auto;
	color: var(--lme-text);
	font-family: inherit;
}

.lme-configurator *,
.lme-participation *,
.lme-account * { box-sizing: border-box; }

.lme-configurator,
.lme-configurator h1,
.lme-configurator h2,
.lme-configurator h3,
.lme-configurator header,
.lme-configurator fieldset,
.lme-configurator legend,
.lme-configurator label,
.lme-configurator button,
.lme-configurator .lme-card,
.lme-configurator .lme-option,
.lme-configurator .lme-progress,
.lme-configurator .lme-price,
.lme-configurator .lme-important,
.lme-configurator .lme-section-heading,
.lme-configurator [data-summary],
.lme-configurator .lme-base-summary,
.lme-configurator .lme-summary-total {
	-webkit-user-select: none;
	user-select: none;
}

.lme-configurator input,
.lme-configurator textarea,
.lme-configurator select,
.lme-configurator .lme-error-box,
.lme-configurator .lme-diagnostic-code,
.lme-configurator .lme-diagnostic-code code {
	-webkit-user-select: text;
	user-select: text;
}

.lme-hero {
	padding: clamp(28px, 6vw, 64px);
	border-radius: 28px;
	background: linear-gradient(135deg, var(--lme-wine), #40101c);
	color: var(--lme-white);
	box-shadow: var(--lme-shadow);
}

.lme-hero h1 { margin: 6px 0 12px; color: inherit; font-size: clamp(2rem, 6vw, 4rem); line-height: 1; }
.lme-hero p { max-width: 720px; margin-bottom: 0; font-size: 1.05rem; }
.lme-eyebrow,
.lme-kicker { margin: 0 0 6px; font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.lme-progress { overflow-x: auto; margin: 24px 0; }
.lme-progress ol { display: flex; min-width: 620px; margin: 0; padding: 0; list-style: none; counter-reset: step; }
.lme-progress li { position: relative; flex: 1; padding-top: 36px; color: var(--lme-rose); font-size: .82rem; text-align: center; counter-increment: step; }
.lme-progress li::before { position: absolute; z-index: 2; top: 0; left: calc(50% - 14px); display: grid; width: 28px; height: 28px; place-items: center; border: 2px solid var(--lme-border); border-radius: 50%; background: var(--lme-white); content: counter(step); font-weight: 800; }
.lme-progress li::after { position: absolute; top: 13px; left: -50%; width: 100%; height: 2px; background: var(--lme-border); content: ""; }
.lme-progress li:first-child::after { display: none; }
.lme-progress button { width: 100%; padding: 0 4px; border: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.lme-progress button:focus-visible { outline: 3px solid rgba(91, 15, 34, .25); outline-offset: 4px; border-radius: 4px; }
.lme-progress li:has(button[aria-current="step"])::before,
.lme-progress li.is-complete::before { border-color: var(--lme-wine); background: var(--lme-wine); color: var(--lme-white); }
.lme-progress li:has(button[aria-current="step"]) { color: var(--lme-wine); font-weight: 800; }
.lme-card { margin: 18px 0; padding: clamp(22px, 4vw, 38px); border: 1px solid var(--lme-border); border-radius: 22px; background: var(--lme-white); box-shadow: var(--lme-shadow); }
.lme-card--accent { background: var(--lme-cream); }
.lme-card h2,
.lme-card h3,
.lme-section-heading h2 { margin: 0 0 14px; color: var(--lme-wine); }
.lme-card legend { float: left; width: 100%; margin: 0 0 18px; color: var(--lme-wine); font-size: 1.35rem; font-weight: 800; }
.lme-card legend + * { clear: both; }
.lme-important { padding: 14px 16px; border-left: 4px solid var(--lme-wine); background: var(--lme-white); font-weight: 700; }
.lme-grid { display: grid; gap: 18px; }
.lme-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lme-card label > span:first-child,
.lme-month > span { display: block; margin-bottom: 7px; font-weight: 700; }
.lme-card input[type="text"],
.lme-card input[type="email"],
.lme-card input[type="password"],
.lme-card input[type="number"],
.lme-card select,
.lme-card textarea {
	width: 100%;
	min-height: 46px;
	padding: 10px 12px;
	border: 1px solid var(--lme-border);
	border-radius: 9px;
	background: var(--lme-white);
	color: var(--lme-text);
	font: inherit;
}
.lme-card input:focus,
.lme-card select:focus,
.lme-card textarea:focus { outline: 3px solid rgba(91, 15, 34, .18); border-color: var(--lme-wine); }
.lme-options { display: grid; gap: 12px; }
.lme-options--terms { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lme-option { display: flex; align-items: center; gap: 12px; min-height: 74px; padding: 14px; border: 1px solid var(--lme-border); border-radius: 14px; background: var(--lme-white); cursor: pointer; }
.lme-option:has(input:checked) { border-color: var(--lme-wine); box-shadow: inset 0 0 0 1px var(--lme-wine); }
.lme-option input[type="radio"] { flex: 0 0 auto; width: 20px; height: 20px; accent-color: var(--lme-wine); }
.lme-option__body { flex: 1; min-width: 0; }
.lme-option__image { flex: 0 0 64px; width: 64px; height: 64px; overflow: hidden; border-radius: 10px; background: var(--lme-cream); }
.lme-option__image img { width: 100%; height: 100%; object-fit: cover; }
.lme-option__body strong,
.lme-option__body small { display: block; }
.lme-option__body small { margin-top: 4px; color: var(--lme-rose); }
.lme-price { flex: 0 0 auto; color: var(--lme-wine); font-weight: 800; }
.lme-option--quantity input { flex: 0 0 74px; max-width: 74px; text-align: center; }
.lme-month { display: block; max-width: 340px; margin-top: 18px; }
.lme-mode { margin: 20px 0; padding: 0; border: 0; }
.lme-mode legend { font-size: 1rem; }
.lme-mode label { display: block; margin: 10px 0; }
.lme-mode input { accent-color: var(--lme-wine); }
.lme-guest-selection { padding-top: 22px; border-top: 1px solid var(--lme-border); }
.lme-guest-selection > label { display: block; margin-bottom: 14px; }
.lme-guest-terms { margin: 0 0 18px; padding: 0; border: 0; }
.lme-guest-terms > legend { margin-bottom: 12px; font-size: 1rem; }
.lme-guest-selection details { margin: 10px 0; border: 1px solid var(--lme-border); border-radius: 12px; }
.lme-guest-selection summary { padding: 14px; color: var(--lme-wine); font-weight: 800; cursor: pointer; }
.lme-options--compact { padding: 0 12px 12px; }
.lme-section-heading { margin: 28px 0; }
.lme-base-summary,
.lme-summary-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 0; border-bottom: 1px solid var(--lme-border); }
.lme-base-summary { color: var(--lme-wine); }
.lme-summary-row span strong,
.lme-summary-row span small { display: block; }
.lme-summary-row small { margin-top: 4px; color: var(--lme-rose); }
.lme-participant-summary { margin-top: 18px; padding: 18px; border: 1px solid var(--lme-border); border-radius: 14px; background: var(--lme-cream); }
.lme-participant-summary h3 { margin: 0 0 10px; color: var(--lme-wine); }
.lme-participant-summary ul { margin: 0; padding: 0; list-style: none; }
.lme-participant-summary li,
.lme-participant-subtotal,
.lme-summary-total { display: flex; justify-content: space-between; gap: 18px; padding: 8px 0; }
.lme-participant-summary li span:last-child { color: var(--lme-wine); font-weight: 700; text-align: right; }
.lme-participant-subtotal { margin-top: 8px; padding-top: 12px; border-top: 1px solid var(--lme-border); }
.lme-summary-total { margin-top: 16px; padding: 16px 0 0; border-top: 2px solid var(--lme-border); color: var(--lme-wine); }
.lme-summary-total--final { font-size: 1.15rem; }
.lme-error-box { margin: 20px 0; padding: 18px; border: 1px solid #b42318; border-radius: 12px; background: #fff2f0; color: #7a271a; }
.lme-error-box:focus { outline: 3px solid rgba(180, 35, 24, .2); outline-offset: 2px; }
.lme-error-box ul { margin: 8px 0 0; padding-left: 22px; }
.lme-configurator [aria-invalid="true"] { border-color: #b42318 !important; box-shadow: 0 0 0 2px rgba(180, 35, 24, .15); }
.lme-actions { position: sticky; z-index: 5; bottom: 16px; display: flex; justify-content: flex-end; gap: 12px; margin-top: 20px; padding: 14px; border: 1px solid var(--lme-border); border-radius: 16px; background: rgba(254, 249, 246, .96); box-shadow: var(--lme-shadow); backdrop-filter: blur(12px); }
.lme-button { min-height: 48px; padding: 12px 22px; border: 2px solid var(--lme-wine); border-radius: 999px; background: var(--lme-wine); color: var(--lme-white); font: inherit; font-weight: 800; cursor: pointer; }
.lme-button:hover { background: #40101c; color: var(--lme-white); }
.lme-button:focus { outline: 3px solid rgba(91, 15, 34, .25); outline-offset: 2px; }
.lme-button--secondary { background: transparent; color: var(--lme-wine); }
.lme-button:disabled { opacity: .6; cursor: wait; }
.lme-message { max-width: 780px; margin: 32px auto; padding: 18px; border-radius: 12px; }
.lme-message--error { border: 1px solid #b42318; background: #fff2f0; color: #7a271a; }
.lme-message--success { border: 1px solid var(--lme-success); background: #effaf4; color: #214e3a; }
.lme-configurator-error { display: block; width: min(100%, 780px); margin: 32px auto; padding: 18px; border: 1px solid #b42318; border-radius: 12px; background: #fff2f0; color: #7a271a; }
.lme-consent { display: flex; align-items: flex-start; gap: 10px; margin: 18px 0; }
.lme-consent input { flex: 0 0 auto; margin-top: 4px; accent-color: var(--lme-wine); }
.lme-guest-list { margin: 0; padding: 0; list-style: none; }
.lme-guest-list li { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--lme-border); }
.lme-guest-list form { margin: 0; }
.lme-guest-list .lme-button { min-height: 38px; padding: 7px 14px; }
[hidden] { display: none !important; }

@media (max-width: 700px) {
	.lme-configurator,
	.lme-participation,
	.lme-account { margin: 14px auto; }
	.lme-grid--2,
	.lme-options--terms { grid-template-columns: 1fr; }
	.lme-option { align-items: flex-start; flex-wrap: wrap; }
	.lme-option--quantity input { margin-left: auto; }
	.lme-actions { bottom: 8px; }
	.lme-button { flex: 1; padding-inline: 12px; }
}
