.ce-reservas-preview-page .capa {
	display: none;
}

.ce-credit-wallet{margin:22px 0;padding:22px;border:1px solid #eadfd7;border-radius:16px;background:linear-gradient(135deg,#fff 0%,#fbf4ef 100%)}
.ce-credit-wallet h2{margin:4px 0 16px}.ce-credit-wallet-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.ce-credit-wallet article{display:grid;gap:5px;padding:15px;border-radius:12px;background:#fff;border:1px solid #eadfd7}.ce-credit-wallet article strong{letter-spacing:.04em}.ce-credit-wallet article span{font-size:1.35rem;font-weight:700;color:#8c513c}.ce-credit-wallet article small{color:#756a63}
.ce-deposit-upload{margin:18px 0;border-color:#d7b8aa}.ce-deposit-upload summary{background:#fbf4ef;color:#643f31}.ce-deposit-upload input[type=file]{padding:10px;background:#fff}.ce-deposit-upload .ce-field-status.is-success{color:#26703e}.ce-deposit-upload .ce-field-status.is-error{color:#a52a2a}

.ce-booking {
	--ce-ink: #25221f;
	--ce-muted: #706a64;
	--ce-line: #e3ddd7;
	--ce-paper: #fffdfa;
	--ce-accent: #8a5541;
	--ce-accent-dark: #603a2d;
	--ce-soft: #f5eee9;
	max-width: 960px;
	margin: 48px auto;
	padding: clamp(22px, 4vw, 46px);
	border: 1px solid var(--ce-line);
	border-radius: 22px;
	background: var(--ce-paper);
	box-shadow: 0 20px 60px rgba(50, 35, 25, .10);
	color: var(--ce-ink);
}

.ce-booking * {
	box-sizing: border-box;
}

.ce-booking-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 30px;
}

.ce-booking-header h1,
.ce-booking-header h2,
.ce-booking-login h2 {
	margin: 5px 0 8px;
	font-size: clamp(30px, 5vw, 48px);
	line-height: 1.05;
}

.ce-booking-header p,
.ce-booking-login p,
.ce-help {
	color: var(--ce-muted);
}

.ce-kicker {
	display: block;
	color: var(--ce-accent);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.ce-test-badge,
.ce-admin-test-badge {
	display: inline-flex;
	align-items: center;
	padding: 8px 12px;
	border-radius: 999px;
	background: #fff0c9;
	color: #6a4b00;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
}

.ce-progress {
	margin: 0 0 32px;
}

.ce-progress-status {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-bottom: 8px;
	color: var(--ce-accent-dark);
}

.ce-progress-status span {
	font-weight: 750;
}

.ce-progress-track {
	height: 9px;
	overflow: hidden;
	border-radius: 999px;
	background: #eadfd8;
}

.ce-progress-track span {
	display: block;
	width: 13%;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, #b78069, var(--ce-accent-dark));
	transition: width .25s ease;
}

.ce-progress-toggle {
	display: block;
	margin: 8px 0 14px auto;
	padding: 3px 0;
	border: 0;
	background: transparent;
	color: var(--ce-accent-dark);
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	text-decoration: underline;
	cursor: pointer;
}

.ce-steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ce-steps li {
	position: relative;
	min-width: 0;
	padding: 0;
	border: 1px solid var(--ce-line);
	border-radius: 12px;
	background: var(--ce-step-bg, #fff);
	color: var(--ce-muted);
	overflow: hidden;
	text-align: center;
}

.ce-steps li::before { content: none !important; display: none !important; }

.ce-steps li:nth-child(1) { --ce-step-bg: #fbf5f1; }
.ce-steps li:nth-child(2) { --ce-step-bg: #f8eee8; }
.ce-steps li:nth-child(3) { --ce-step-bg: #f4e7df; }
.ce-steps li:nth-child(4) { --ce-step-bg: #efddd3; }
.ce-steps li:nth-child(5) { --ce-step-bg: #e9d3c7; }
.ce-steps li:nth-child(6) { --ce-step-bg: #e2c8ba; }
.ce-steps li:nth-child(7) { --ce-step-bg: #dabdae; }
.ce-steps li:nth-child(8) { --ce-step-bg: #d2af9e; }
.ce-steps li:nth-child(9) { --ce-step-bg: #c99f8c; }

.ce-steps li.is-outside-window { display: none; }
.ce-show-all-steps .ce-steps li.is-outside-window { display: block; }

.ce-steps button {
	display: flex;
	width: 100%;
	min-width: 0;
	min-height: 76px;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 3px;
	padding: 10px 5px;
	border: 0;
	background: linear-gradient(145deg, rgba(255,255,255,.44), rgba(255,255,255,0)), var(--ce-step-bg, #fff);
	color: inherit;
	font: inherit;
	font-weight: 700;
	line-height: 1.15;
	text-align: center;
}

.ce-steps button:not(:disabled) { cursor: pointer; }
.ce-steps button:disabled { cursor: default; opacity: 1; }
.ce-steps button:focus-visible { outline: 3px solid rgba(138, 85, 65, .22); outline-offset: -3px; }

.ce-steps li span {
	display: block;
	font-size: 18px;
}

.ce-steps li small {
	display: block;
	max-width: 100%;
	font-size: 10px;
	line-height: 1.15;
	white-space: nowrap;
}

.ce-steps li.is-complete {
	border-color: var(--ce-accent);
	color: var(--ce-accent-dark);
}

.ce-steps li.is-active {
	border-color: var(--ce-accent-dark);
	background: var(--ce-accent-dark);
	color: #fff;
	box-shadow: 0 7px 18px rgba(96, 58, 45, .28);
}

.ce-steps li.is-active button { background: linear-gradient(145deg, #a56f59, var(--ce-accent-dark)); color: #fff; }

.ce-step-panel {
	margin: 0;
	padding: 0;
	border: 0;
}

.ce-step-panel[hidden] {
	display: none;
}

.ce-step-panel legend {
	width: 100%;
	margin-bottom: 6px;
	font-size: 26px;
	font-weight: 700;
}

.ce-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.ce-form-grid-priority {
	margin-top: 18px;
	padding: 18px;
	border: 1px solid var(--ce-line);
	border-radius: 14px;
	background: linear-gradient(135deg, #fbf5f1, #f4e7df);
}

.ce-form-grid-priority label { margin: 0; }

.ce-date-control {
	display: grid;
	grid-template-columns: minmax(210px, 300px) auto;
	align-items: start;
	gap: 12px;
	max-width: 560px;
	margin-top: 18px;
}

.ce-date-field { margin: 0 !important; }

.ce-calendar-button {
	display: inline-flex;
	min-height: 50px;
	margin-top: 36px;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 11px 16px;
	border: 1px solid var(--ce-accent);
	border-radius: 10px;
	background: var(--ce-soft);
	color: var(--ce-accent-dark);
	font: inherit;
	font-size: 14px;
	font-weight: 750;
	white-space: nowrap;
	cursor: pointer;
}

.ce-calendar-button span[aria-hidden] { font-size: 22px; line-height: 1; }
.ce-date-hint { margin: 8px 0 0; color: var(--ce-muted); font-size: 13px; }

.ce-slot-groups {
	margin: 22px 0;
}

.ce-slot {
	display: flex !important;
	align-items: center;
	gap: 12px;
	margin: 10px 0 !important;
	padding: 15px 16px;
	border: 1px solid var(--ce-line);
	border-radius: 12px;
	background: #fff;
	cursor: pointer;
}

.ce-slot:has(input:checked) {
	border-color: var(--ce-accent);
	background: var(--ce-soft);
}

.ce-slot input {
	width: 20px;
	height: 20px;
	margin: 0;
}

.ce-slot-source { display: none !important; }

.ce-slot span,
.ce-slot strong {
	display: block;
}

.ce-slot strong {
	margin-bottom: 3px;
}

.ce-slot.is-unavailable {
	position: relative;
	border-color: #d8d1cb;
	background: #f5f2ef;
	color: #746b65;
	cursor: not-allowed;
	opacity: .86;
}

.ce-slot.is-unavailable input { accent-color: #9b9189; }

.ce-slot-status {
	margin-left: auto;
	padding: 5px 9px;
	border-radius: 999px;
	background: #dfd8d2;
	color: #5e554f;
	font-size: 12px;
	font-style: normal;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.ce-availability-status {
	min-height: 24px;
	margin: -8px 0 12px;
	color: #4e6757;
	font-size: 14px;
}

.ce-availability-status.is-loading { color: var(--ce-muted); }
.ce-availability-status.is-error { color: #8a2424; }

.ce-waitlist-options {
	margin: 16px 0;
	padding: 17px;
	border: 1px solid #d9c6ba;
	border-radius: 13px;
	background: #fff9f5;
}

.ce-waitlist-options > strong { display: block; margin-bottom: 3px; }
.ce-waitlist-options > p { margin: 0 0 12px; color: var(--ce-muted); }
.ce-waitlist-options > div { display: flex; flex-wrap: wrap; gap: 8px; }

.ce-waitlist-option {
	padding: 9px 12px;
	border: 1px solid var(--ce-accent);
	border-radius: 9px;
	background: #fff;
	color: var(--ce-accent-dark);
	font: inherit;
	font-size: 13px;
	font-weight: 750;
	cursor: pointer;
}

.ce-waitlist-panel {
	margin: 18px 0;
	padding: 20px;
	border: 1px solid var(--ce-accent);
	border-radius: 15px;
	background: #fff;
	box-shadow: 0 12px 28px rgba(78, 52, 39, .08);
}

.ce-waitlist-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.ce-waitlist-heading h3 { margin: 2px 0 4px; }
.ce-waitlist-heading p { margin: 0; color: var(--ce-muted); }
.ce-waitlist-close { border: 0; background: transparent; color: var(--ce-muted); font-size: 28px; line-height: 1; cursor: pointer; }
.ce-waitlist-panel [data-ce-waitlist-form] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 14px; }
.ce-waitlist-panel .ce-consent, .ce-waitlist-message, .ce-waitlist-panel [data-ce-waitlist-submit] { grid-column: 1 / -1; }
.ce-waitlist-message { min-height: 22px; margin: 4px 0 12px; }
.ce-waitlist-message.is-error { color: #8a2424; }
.ce-waitlist-message.is-success { color: #28633f; font-weight: 700; }
.ce-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

.ce-booking label {
	display: block;
	margin: 18px 0;
	font-weight: 650;
}

.ce-booking input[type="text"],
.ce-booking input[type="email"],
.ce-booking input[type="tel"],
.ce-booking input[type="password"],
.ce-booking input[type="date"],
.ce-booking input[type="time"],
.ce-booking input[type="number"],
.ce-booking select,
.ce-booking textarea {
	width: 100%;
	margin-top: 7px;
	padding: 13px 14px;
	border: 1px solid #cfc5bd;
	border-radius: 10px;
	background: #fff;
	color: var(--ce-ink);
	font: inherit;
}

.ce-people-field {
	max-width: 270px;
}

.ce-number-control {
	display: grid;
	grid-template-columns: 46px minmax(82px, 108px) 46px;
	align-items: center;
	gap: 8px;
	margin-top: 7px;
}

.ce-number-control input[type="number"] {
	margin: 0;
	padding-inline: 8px;
	text-align: center;
	-moz-appearance: textfield;
}

.ce-number-control input[type="number"]::-webkit-inner-spin-button,
.ce-number-control input[type="number"]::-webkit-outer-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.ce-number-control button {
	width: 46px;
	height: 48px;
	border: 1px solid var(--ce-accent);
	border-radius: 10px;
	background: var(--ce-soft);
	color: var(--ce-accent-dark);
	font: inherit;
	font-size: 24px;
	font-weight: 750;
	cursor: pointer;
}

.ce-booking input:focus,
.ce-booking select:focus,
.ce-booking textarea:focus {
	border-color: var(--ce-accent);
	outline: 3px solid rgba(138, 85, 65, .16);
}

.ce-booking .has-error {
	border-color: #b32d2e !important;
	outline: 3px solid rgba(179, 45, 46, .12);
}

.ce-field-error,
.ce-field-status {
	display: block;
	margin-top: 6px;
	font-size: 13px;
	font-weight: 500;
}

.ce-field-error { color: #a52222; }
.ce-field-status { color: var(--ce-muted); }

.ce-street-picker {
	display: block;
	margin-top: 12px;
	color: var(--ce-accent-dark);
	font-size: 13px;
	font-weight: 700;
}

.ce-street-picker[hidden] { display: none; }
.ce-street-picker select { margin-top: 6px; }

.ce-inline {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 10px;
	align-items: end;
}

.ce-lookup {
	min-height: 48px;
	padding: 10px 15px;
	border: 1px solid var(--ce-accent);
	border-radius: 10px;
	background: #fff;
	color: var(--ce-accent-dark);
	font-weight: 700;
	cursor: pointer;
}

.ce-discount,
.ce-live-total,
.ce-extension,
.ce-policy-note,
.ce-final-summary,
.ce-empty {
	margin: 16px 0;
	padding: 16px 18px;
	border-radius: 12px;
	background: var(--ce-soft);
}

.ce-discount { color: var(--ce-accent-dark); font-weight: 700; }
.ce-live-total { display: flex; justify-content: space-between; align-items: center; }
.ce-live-total strong { font-size: 22px; }
.ce-extension { border: 1px dashed var(--ce-accent); }
.ce-extension p, .ce-policy-note p, .ce-final-summary p { margin-bottom: 0; }

.ce-summary-section {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	padding: 16px 18px;
	border: 1px solid rgba(138, 85, 65, .12);
	border-radius: 12px;
	background: linear-gradient(110deg, var(--ce-summary-from, #fbf5f1), var(--ce-summary-to, #fffdfa));
}

.ce-summary-date { --ce-summary-from: #fbf5f1; --ce-summary-to: #fffdfa; }
.ce-summary-time { --ce-summary-from: #f7ece5; --ce-summary-to: #fffaf7; }
.ce-summary-event { --ce-summary-from: #f2e3da; --ce-summary-to: #fdf7f3; }
.ce-summary-customer { --ce-summary-from: #ecd9cf; --ce-summary-to: #faf2ed; }
.ce-summary-price { --ce-summary-from: #e5cfc3; --ce-summary-to: #f7ebe5; }
.ce-summary-section h3, .ce-summary-section p { margin: 0 0 5px; }
.ce-summary-section button { display: inline-flex; align-items: center; gap: 5px; flex: 0 0 auto; padding: 6px 9px; border: 1px solid rgba(96,58,45,.28); border-radius: 8px; background: rgba(255,255,255,.72); color: var(--ce-accent-dark); cursor: pointer; font-size: 12px; font-weight: 750; }
.ce-summary-value,
.ce-summary-lines { color: #302a26; font-weight: 650; }
.ce-summary-description { color: var(--ce-muted); font-weight: 500; }
.ce-summary-people { color: #302a26; }
.ce-summary-people strong { color: #302a26; font-weight: 750; }
.ce-summary-lines { margin: 0; padding: 0; list-style: none; }
.ce-summary-lines li::before { content: none !important; display: none !important; }
.ce-summary-hours { display: grid; gap: 5px; }
.ce-summary-hours li { color: var(--ce-muted); font-weight: 500; }
.ce-summary-hours strong { color: #302a26; font-weight: 750; }
.ce-summary-customer-lines { display: grid; gap: 5px; }
.ce-summary-customer-lines li { display: grid; grid-template-columns: 124px minmax(0, 1fr); gap: 12px; }
.ce-summary-customer-lines span { color: var(--ce-muted); font-weight: 500; }
.ce-summary-customer-lines strong { color: #302a26; font-weight: 650; }

.ce-payment-timeline { position: relative; margin: 24px 0; }
.ce-voucher-box { margin: 22px 0; padding: 18px; border: 1px solid rgba(151,91,70,.24); border-radius: 14px; background: #fffaf7; }
.ce-voucher-box > div:first-child p { margin: 5px 0 13px; color: var(--ce-muted); }
.ce-voucher-control { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.ce-voucher-control input { text-transform: uppercase; letter-spacing: .06em; font-weight: 700; }
.ce-voucher-message { min-height: 20px; margin: 9px 0 0; color: var(--ce-muted); font-size: 14px; }
.ce-voucher-message.is-success { color: #267044; font-weight: 650; }
.ce-voucher-message.is-error { color: #a23c32; font-weight: 650; }
.ce-voucher-summary-row { color: #267044; }
.ce-live-total small { display: block; margin-top: 3px; color: #267044; font-size: 12px; font-weight: 650; }
.ce-timeline-item { position: relative; margin-left: 12px; padding: 0 0 24px 28px; border-left: 2px solid var(--ce-line); }
.ce-timeline-item:last-child { padding-bottom: 0; }
.ce-timeline-item::before { content: ''; position: absolute; left: -8px; top: 2px; width: 14px; height: 14px; border-radius: 50%; background: var(--ce-accent); }
.ce-timeline-item span, .ce-timeline-item strong { display: block; }
.ce-timeline-item span { color: var(--ce-muted); font-size: 13px; }
.ce-timeline-item strong { margin: 3px 0; font-size: 20px; }
.ce-timeline-item p { margin: 0; }

.ce-policy-grid,
.ce-payment-methods,
.ce-payment-plans {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.ce-policy-grid .ce-policy-note {
	margin: 0;
}

.ce-payment-methods {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 22px 0;
}

.ce-payment-plans { margin: 22px 0; }
.ce-payment-plans[hidden] { display: none; }

.ce-payment-plan {
	display: flex !important;
	align-items: flex-start;
	gap: 10px;
	margin: 0 !important;
	padding: 18px;
	border: 1px solid var(--ce-line);
	border-radius: 12px;
	background: #fff;
	cursor: pointer;
}

.ce-payment-plan:has(input:checked) {
	border-color: var(--ce-accent);
	background: var(--ce-soft);
	box-shadow: inset 0 0 0 1px var(--ce-accent);
}

.ce-payment-plan input { width: 19px; height: 19px; margin: 2px 0 0; flex: 0 0 auto; }
.ce-payment-plan span, .ce-payment-plan strong, .ce-payment-plan small, .ce-payment-plan em { display: block; }
.ce-payment-plan small { margin-top: 5px; color: var(--ce-muted); font-weight: 500; }
.ce-payment-plan em { width: fit-content; margin-top: 9px; padding: 3px 7px; border-radius: 999px; background: #f1dfc6; color: #6b481e; font-size: 12px; font-style: normal; font-weight: 700; }

.ce-payment-method {
	display: flex !important;
	align-items: flex-start;
	gap: 10px;
	margin: 0 !important;
	padding: 16px;
	border: 1px solid var(--ce-line);
	border-radius: 12px;
	background: #fff;
	cursor: pointer;
}

.ce-payment-method:has(input:checked) {
	border-color: var(--ce-accent);
	background: var(--ce-soft);
	box-shadow: inset 0 0 0 1px var(--ce-accent);
}

.ce-payment-method input {
	width: 19px;
	height: 19px;
	margin: 2px 0 0;
	flex: 0 0 auto;
}

.ce-payment-method span,
.ce-payment-method strong,
.ce-payment-method small {
	display: block;
}

.ce-decoration-choices {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin: 22px 0;
}

.ce-decoration-choice {
	display: flex !important;
	align-items: flex-start;
	gap: 11px;
	margin: 0 !important;
	padding: 18px;
	border: 1px solid var(--ce-line);
	border-radius: 14px;
	background: #fff;
	color: var(--ce-ink);
	text-decoration: none;
	cursor: pointer;
}

.ce-decoration-choice:has(input:checked) {
	border-color: var(--ce-accent);
	background: var(--ce-soft);
	box-shadow: inset 0 0 0 1px var(--ce-accent);
}

.ce-decoration-choice input { width: 20px; height: 20px; margin: 2px 0 0; flex: 0 0 auto; }
.ce-decoration-choice span, .ce-decoration-choice strong, .ce-decoration-choice small, .ce-decoration-choice b { display: block; }
.ce-decoration-choice small { margin: 5px 0 10px; color: var(--ce-muted); font-weight: 500; }
.ce-decoration-choice b { color: var(--ce-accent-dark); font-size: 19px; }
.ce-decoration-custom-choice { border-style: dashed; background: linear-gradient(135deg, #faf4ef, #fff); }

.ce-decoration-details {
	margin: 18px 0;
	padding: 18px;
	border: 1px solid var(--ce-line);
	border-radius: 14px;
	background: #fff;
}

.ce-decoration-details[hidden] { display: none; }
.ce-decoration-details fieldset { margin: 0; padding: 0; border: 0; }
.ce-decoration-details fieldset legend { font-size: 18px; }
.ce-palette-options, .ce-palette-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.ce-palette-option { margin: 8px 0 !important; padding: 12px; border: 1px solid var(--ce-line); border-radius: 11px; background: #fff; cursor: pointer; }
.ce-palette-option:has(input:checked) { border-color: var(--ce-accent); box-shadow: inset 0 0 0 1px var(--ce-accent); }
.ce-palette-option input { position: absolute; opacity: 0; pointer-events: none; }
.ce-palette-option > span, .ce-palette-card > span { display: block; height: 38px; margin-bottom: 8px; border-radius: 8px; background: var(--ce-palette); }
.ce-palette-neutral { --ce-palette: linear-gradient(90deg, #f4eadf, #dfc7ae, #bba486); }
.ce-palette-colourful { --ce-palette: linear-gradient(90deg, #f48fb1, #ffd166, #76c7c0, #8675d9); }
.ce-palette-nature { --ce-palette: linear-gradient(90deg, #dce7cf, #91a77b, #55745d, #e9dfc2); }
.ce-palette-black-gold { --ce-palette: linear-gradient(90deg, #181818, #675128, #d5ae45, #f1df9a); }
.ce-decoration-exclusions { margin: 14px 0 0; padding: 13px 14px; border-left: 4px solid var(--ce-accent); background: var(--ce-soft); }
.ce-decoration-links { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; margin: 18px 0 0; }
.ce-decoration-links a, .ce-inline-link { color: var(--ce-accent-dark); font: inherit; font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }
.ce-inline-link { padding: 0; border: 0; background: none; cursor: pointer; }
.ce-modal[hidden] { display: none; }
.ce-modal { position: fixed; inset: 0; z-index: 99999; display: grid; place-items: center; padding: 24px; }
.ce-modal__backdrop { position: absolute; inset: 0; background: rgba(35, 27, 24, .72); backdrop-filter: blur(4px); }
.ce-modal__dialog { position: relative; z-index: 1; width: min(820px, 100%); max-height: min(88vh, 820px); overflow: auto; padding: clamp(24px, 4vw, 42px); border-radius: 20px; background: #fffdfb; box-shadow: 0 30px 80px rgba(30, 20, 16, .28); }
.ce-modal__dialog h2 { margin: 6px 44px 22px 0; font-size: clamp(28px, 4vw, 42px); }
.ce-modal__close { position: absolute; top: 14px; right: 16px; display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--ce-line); border-radius: 50%; background: #fff; color: var(--ce-accent-dark); font-size: 29px; line-height: 1; cursor: pointer; }
.ce-comparison-wrap { overflow-x: auto; border: 1px solid var(--ce-line); border-radius: 14px; }
.ce-comparison { width: 100%; min-width: 560px; border-collapse: collapse; }
.ce-comparison th, .ce-comparison td { padding: 13px 15px; border-bottom: 1px solid var(--ce-line); text-align: center; }
.ce-comparison th:first-child, .ce-comparison td:first-child { width: 58%; text-align: left; }
.ce-comparison thead th { background: linear-gradient(135deg, #f5e5dc, #fff8f3); color: var(--ce-accent-dark); }
.ce-comparison tbody tr:nth-child(even) { background: #fbf7f4; }
.ce-comparison tbody td:not(:first-child) { color: var(--ce-accent-dark); font-size: 20px; font-weight: 800; }
.ce-feedback-form { display: grid; gap: 18px; margin-top: 26px; }
.ce-feedback-form fieldset { margin: 0; padding: 0; border: 0; }
.ce-feedback-form label { display: grid; gap: 7px; font-weight: 700; }
.ce-feedback-form select, .ce-feedback-form textarea { width: 100%; padding: 13px 14px; border: 1px solid var(--ce-line); border-radius: 10px; background: #fff; color: var(--ce-text); font: inherit; font-weight: 500; }
.ce-feedback-rating { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 10px; }
.ce-feedback-rating label { position: relative; display: block; cursor: pointer; }
.ce-feedback-rating input { position: absolute; opacity: 0; pointer-events: none; }
.ce-feedback-rating span { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid var(--ce-line); border-radius: 50%; background: #fff; color: var(--ce-accent-dark); }
.ce-feedback-rating input:checked + span, .ce-feedback-rating input:focus-visible + span { border-color: var(--ce-accent); background: var(--ce-accent); color: #fff; box-shadow: 0 0 0 3px rgba(155, 96, 72, .18); }
.ce-summary-decoration { --ce-summary-from: #eedcd4; --ce-summary-to: #fbf4ef; }
.ce-summary-price-lines { display: grid; gap: 6px; min-width: min(360px, 60vw); }
.ce-summary-price-lines li { display: flex; justify-content: space-between; gap: 18px; }

.ce-decoration-public-page .faixa { padding-top: 72px; padding-bottom: 88px; }
.ce-decoration-public-page .faixa > .envolve > .legal { max-width: 1120px; }
.ce-decoration-page { max-width: 1120px; overflow: hidden; }
.ce-decoration-hero { display: grid; grid-template-columns: 1.05fr .95fr; gap: 34px; align-items: center; }
.ce-decoration-hero h2 { margin: 7px 0 14px; font-size: clamp(36px, 6vw, 68px); line-height: 1; }
.ce-decoration-hero p { color: var(--ce-muted); font-size: 18px; }
.ce-decoration-hero img, .ce-decoration-package img, .ce-decoration-custom img { width: 100%; height: 100%; object-fit: cover; border-radius: 18px; }
.ce-decoration-hero img { min-height: 440px; }
.ce-decoration-hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.ce-decoration-hero-actions a, .ce-decoration-package a, .ce-decoration-custom a { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.ce-decoration-hero-actions .ce-primary, .ce-decoration-custom .ce-primary { color: #fff !important; }
.ce-decoration-intro { max-width: 760px; margin: 64px auto 28px; text-align: center; }
.ce-decoration-intro h2 { margin: 5px 0 8px; font-size: clamp(30px, 4vw, 44px); }
.ce-decoration-packages { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.ce-decoration-package { overflow: hidden; border: 1px solid var(--ce-line); border-radius: 20px; background: #fff; }
.ce-decoration-package.is-featured { border-color: var(--ce-accent); box-shadow: 0 18px 45px rgba(96,58,45,.13); }
.ce-decoration-package img { height: 300px; border-radius: 0; }
.ce-decoration-package > div { padding: 26px; }
.ce-decoration-package h2 { margin: 6px 0; }
.ce-decoration-package ul { margin: 18px 0 22px; padding-left: 20px; }
.ce-decoration-package a { color: var(--ce-accent-dark); font-weight: 750; }
.ce-decoration-tag { color: var(--ce-accent); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.ce-decoration-price { margin: 7px 0; color: var(--ce-accent-dark); font-size: 30px; font-weight: 800; }
.ce-decoration-price small { font-size: 12px; font-weight: 600; }
.ce-decoration-palettes { margin: 58px 0; }
.ce-palette-card { padding: 15px; border: 1px solid var(--ce-line); border-radius: 14px; background: #fff; }
.ce-palette-card h3 { margin: 0 0 5px; font-size: 17px; }
.ce-palette-card p { margin: 0; color: var(--ce-muted); font-size: 14px; }
.ce-decoration-custom { display: grid; grid-template-columns: .9fr 1.1fr; gap: 30px; align-items: center; padding: 28px; border-radius: 22px; background: linear-gradient(135deg, #f4e2d8, #fbf7f3); }
.ce-decoration-custom img { min-height: 340px; }
.ce-decoration-pdf-note { margin: 26px 0 0; color: var(--ce-muted); font-size: 13px; text-align: center; }

.ce-payment-method small {
	margin-top: 5px;
	color: var(--ce-muted);
	font-weight: 500;
}

.ce-reservation-card { margin: 14px 0; padding: 18px; border: 1px solid var(--ce-line); border-radius: 14px; background: #fff; scroll-margin-top: 24px; }
.ce-reservation-card.is-target { border-color: var(--ce-accent); box-shadow: 0 10px 30px rgba(96, 58, 45, .16); }
.ce-reservation-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.ce-reservation-title h2 { margin: 3px 0 0; font-size: 22px; }
.ce-status-pill { padding: 7px 11px; border-radius: 999px; background: var(--ce-soft); color: var(--ce-accent-dark); font-size: 13px; font-weight: 700; }
.ce-customer-area .ce-summary { margin: 14px 0; }
.ce-customer-area .ce-summary dl {
	overflow: hidden;
	gap: 0;
	border: 1px solid rgba(151, 91, 70, .22);
	border-radius: 12px;
	background: #fff;
}
.ce-customer-area .ce-summary dt,
.ce-customer-area .ce-summary dd {
	padding: 12px 15px;
	border-bottom: 1px solid rgba(151, 91, 70, .14);
}
.ce-customer-area .ce-summary dt {
	color: #5f514b;
	font-weight: 700;
}
.ce-customer-area .ce-summary dd {
	color: #302a26;
	font-weight: 650;
}
.ce-customer-area .ce-summary dt:nth-of-type(odd),
.ce-customer-area .ce-summary dd:nth-of-type(odd) {
	background: linear-gradient(90deg, #fbf4ef 0%, #f5e6de 100%);
}
.ce-customer-area .ce-summary dt:nth-of-type(even),
.ce-customer-area .ce-summary dd:nth-of-type(even) {
	background: linear-gradient(90deg, #fff 0%, #faf7f4 100%);
}
.ce-customer-area .ce-summary dt:last-of-type,
.ce-customer-area .ce-summary dd:last-of-type {
	border-bottom: 0;
}
.ce-manage-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.ce-manage { margin: 0; border: 0; border-radius: 10px; }
.ce-manage[open] { grid-column: 1 / -1; border: 1px solid var(--ce-line); background: #fbfcfa; }
.ce-manage summary { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 14px; border: 1px solid #8fb49a; border-radius: 9px; background: #edf7f0; color: #285d36; cursor: pointer; font-weight: 750; list-style: none; text-align: center; }
.ce-manage summary::-webkit-details-marker { display: none; }
.ce-manage[open] summary { border: 0; border-bottom: 1px solid var(--ce-line); border-radius: 9px 9px 0 0; }
.ce-manage-panel { padding: 16px; }
.ce-manage-danger summary { border-color: #dfa9a9; background: #fff0f0; color: #8a2424; }
.ce-danger { min-height: 44px; padding: 10px 16px; border: 0; border-radius: 9px; background: #a52222; color: #fff; font-weight: 700; cursor: pointer; }
.ce-reschedule-slots label { margin: 10px 0; font-weight: 500; }
.ce-reschedule-date-control { margin-top: 10px; }
.ce-integration-note { margin: 12px 0 0; }

.ce-actions {
	display: flex;
	justify-content: flex-end;
	gap: 12px;
	margin-top: 28px;
}

.ce-primary,
.ce-secondary,
.ce-booking-login #wp-submit {
	min-height: 46px;
	padding: 11px 20px;
	border: 1px solid var(--ce-accent);
	border-radius: 10px;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.ce-primary,
.ce-booking-login #wp-submit {
	background: var(--ce-accent);
	color: #fff;
}

.ce-primary:hover,
.ce-booking-login #wp-submit:hover {
	background: var(--ce-accent-dark);
}

.ce-booking-login a.ce-primary,
.ce-booking-login a.ce-primary:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #6f3d2f;
	border-color: #6f3d2f;
	color: #fff !important;
	text-decoration: none;
	text-shadow: none;
}

.ce-booking-login a.ce-primary:hover,
.ce-booking-login a.ce-primary:focus-visible {
	background: #3f211a;
	border-color: #3f211a;
	color: #fff !important;
	box-shadow: 0 0 0 3px rgba(151, 91, 70, .24);
}

.ce-secondary {
	background: transparent;
	color: var(--ce-accent-dark);
}

.ce-summary,
.ce-payment-placeholder {
	margin: 22px 0;
	padding: 22px;
	border-radius: 14px;
	background: var(--ce-soft);
}

.ce-summary {
	display: grid;
	gap: 9px;
	padding: 0;
	background: transparent;
}

.ce-summary dl {
	display: grid;
	grid-template-columns: minmax(140px, .65fr) 1.35fr;
	gap: 10px 18px;
	margin: 0;
}

.ce-summary dt {
	color: var(--ce-muted);
}

.ce-summary dd {
	margin: 0;
	font-weight: 650;
}

.ce-portal-schedule ul {
	display: grid;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ce-portal-schedule li::before {
	content: none !important;
	display: none !important;
}

.ce-consent {
	display: flex !important;
	align-items: flex-start;
	gap: 10px;
	font-weight: 500 !important;
}

.ce-consent input {
	margin-top: 5px;
	flex: 0 0 auto;
}

.ce-consent-links a { white-space: nowrap; }

.ce-alert {
	margin: 20px 0;
	padding: 14px 16px;
	border-radius: 10px;
}

.ce-alert-success {
	background: #e8f5ec;
	color: #1e6337;
}

.ce-alert-error {
	background: #fdeaea;
	color: #8a2424;
}

.ce-booking-footer {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin-top: 32px;
	padding-top: 20px;
	border-top: 1px solid var(--ce-line);
	font-size: 14px;
}

.ce-booking-login {
	max-width: 560px;
	margin-top: 0;
}

.ce-social-login {
	margin: 22px 0 0;
	padding: 0;
	border: 0;
	background: transparent;
}

.ce-social-login .nsl-button-google .nsl-button-svg-container {
	display: block;
	flex: 0 0 52px;
	width: 52px;
	min-height: 52px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234285F4' d='M21.6 12.23c0-.71-.06-1.4-.18-2.07H12v3.92h5.38a4.6 4.6 0 0 1-2 3.02v2.55h3.24c1.9-1.75 2.98-4.33 2.98-7.42Z'/%3E%3Cpath fill='%2334A853' d='M12 22c2.7 0 4.98-.9 6.64-2.43l-3.24-2.55c-.9.6-2.05.96-3.4.96-2.61 0-4.82-1.76-5.61-4.13H3.04v2.63A10 10 0 0 0 12 22Z'/%3E%3Cpath fill='%23FBBC05' d='M6.39 13.85A6.02 6.02 0 0 1 6.08 12c0-.64.11-1.26.31-1.85V7.52H3.04A10 10 0 0 0 2 12c0 1.61.39 3.14 1.04 4.48l3.35-2.63Z'/%3E%3Cpath fill='%23EA4335' d='M12 6.02c1.47 0 2.79.5 3.83 1.5l2.87-2.87A9.65 9.65 0 0 0 12 2a10 10 0 0 0-8.96 5.52l3.35 2.63C7.18 7.78 9.39 6.02 12 6.02Z'/%3E%3C/svg%3E") center / 20px 20px no-repeat;
	border-right: 1px solid #e4e4e4;
}

.ce-social-login .nsl-container,
.ce-social-login .nsl-container-buttons,
.ce-social-login .nsl-container-buttons a { width: 100% !important; max-width: none !important; }
.ce-social-login .nsl-container-buttons { padding: 0 !important; }
.ce-social-login .nsl-button-google {
	width: 100% !important;
	min-height: 52px;
	overflow: hidden;
	border: 1px solid #cfc5bd !important;
	border-radius: 12px !important;
	box-shadow: 0 8px 22px rgba(50,35,25,.08) !important;
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.ce-social-login .nsl-button-google:hover,
.ce-social-login .nsl-button-google:focus-visible {
	border-color: var(--ce-accent) !important;
	box-shadow: 0 12px 28px rgba(96,58,45,.16) !important;
	transform: translateY(-1px);
}
.ce-social-login .nsl-button-label-container {
	display: flex !important;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	font-weight: 700 !important;
}
.ce-social-login .nsl-button-label-container b { margin-left: .28em; }

.ce-auth-page { max-width: 580px; }
.ce-auth-page > h2 { font-size: clamp(28px, 4vw, 40px); }
.ce-auth-login-form { display: grid; gap: 16px; margin-top: 22px; }
.ce-auth-login-form label { margin: 0; }
.ce-auth-login-form .ce-consent { margin-top: 2px; }
.ce-auth-login-form .ce-primary { width: 100%; min-height: 50px; }
.ce-forgot-password { margin: 11px 0 0 !important; text-align: right; font-size: 14px; }

.ce-register-panel {
	margin-top: 26px;
	border: 1px solid #d7b4a3;
	border-radius: 14px;
	background: #fff8f4;
	overflow: hidden;
}

.ce-register-panel > summary {
	cursor: pointer;
	padding: 16px 18px;
	list-style: none;
	color: var(--ce-text);
	background: #f3d0be;
	text-align: center;
	transition: background .2s ease, color .2s ease, box-shadow .2s ease;
}

.ce-register-panel > summary:hover,
.ce-register-panel > summary:focus-visible {
	background: #8a5541;
	color: #fff;
	box-shadow: inset 0 0 0 2px rgba(96,58,45,.18);
	outline: none;
}

.ce-register-panel > summary::-webkit-details-marker { display: none; }
.ce-register-panel__body { padding: 20px; }
.ce-register-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 11px 20px;
	border: 1px solid #7f4d39;
	border-radius: 10px;
	background: #7f4d39;
	color: #fff;
	font-weight: 700;
	cursor: pointer;
}

.ce-register-submit:hover,
.ce-register-submit:focus-visible { background: #633a2b; }

.ce-login-divider {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 14px;
	color: var(--ce-muted);
	font-size: 13px;
}

.ce-login-divider::before,
.ce-login-divider::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--ce-line);
}

.ce-reservation-group-title {
	margin: 34px 0 14px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--ce-line);
	font-size: clamp(22px, 3vw, 30px);
}

.ce-customer-area .ce-reservation-group-title:first-of-type {
	margin-top: 24px;
}

.ce-payment-instructions {
	margin: 18px 0;
	padding: 18px;
	border: 1px solid var(--ce-line);
	border-radius: 14px;
	background: #fffaf6;
}

.ce-payment-instructions h3 { margin-top: 0; }
.ce-payment-instructions dl { display: grid; grid-template-columns: 120px 1fr; gap: 7px 14px; margin: 0; }
.ce-payment-instructions dt { font-weight: 700; }
.ce-payment-instructions dd { margin: 0; color: var(--ce-text); }
.ce-payment-action { margin: 18px 0; }

.ce-booking-login .login-remember label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 500;
}

@media (max-width: 720px) {
	.ce-decoration-public-page .faixa { padding-top: 38px; padding-bottom: 54px; }
	.ce-booking {
		margin: 18px 10px;
		border-radius: 16px;
	}

	.ce-booking-header,
	.ce-form-grid {
		display: block;
	}

	.ce-test-badge {
		margin-top: 16px;
	}

	.ce-steps {
		display: flex;
		overflow-x: auto;
		padding-bottom: 6px;
	}

	.ce-steps li { flex: 0 0 86px; }

	.ce-inline { grid-template-columns: 1fr; }
	.ce-date-control { grid-template-columns: 1fr; max-width: none; }
	.ce-calendar-button { width: 100%; margin-top: 0; transform: none; }
	.ce-summary-section, .ce-reservation-title { display: block; }
	.ce-summary-section button, .ce-status-pill { display: inline-block; margin-top: 8px; }
	.ce-policy-grid, .ce-payment-methods, .ce-payment-plans, .ce-manage-actions, .ce-decoration-choices, .ce-palette-options, .ce-palette-grid, .ce-decoration-hero, .ce-decoration-packages, .ce-decoration-custom { grid-template-columns: 1fr; }
	.ce-decoration-hero img { min-height: 280px; }
	.ce-decoration-package img { height: 240px; }
	.ce-decoration-custom { padding: 20px; }
	.ce-decoration-custom img { min-height: 240px; }
	.ce-decoration-hero-actions { align-items: stretch; flex-direction: column; }
	.ce-summary-price-lines { min-width: 0; }

	.ce-summary dl {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.ce-customer-area .ce-summary dt {
		padding: 11px 13px 3px;
		border-bottom: 0;
	}

	.ce-customer-area .ce-summary dd {
		margin-bottom: 0;
		padding: 3px 13px 11px;
	}

	.ce-customer-area .ce-summary dd:not(:last-child) {
		border-bottom: 1px solid rgba(151, 91, 70, .14);
	}

	.ce-summary-customer-lines li { grid-template-columns: 1fr; gap: 1px; }
	.ce-voucher-control { grid-template-columns: 1fr; }
	.ce-voucher-control .ce-secondary { width: 100%; }
	.ce-waitlist-panel [data-ce-waitlist-form] { grid-template-columns: 1fr; }
	.ce-slot-status { flex: 0 0 auto; }
}
