.lcam-app [hidden]{display:none!important}
:root{--primary:#7B1E2B;--primary-dark:#641824;--secondary:#F5EEE8;--secondary-light:#D9E7E1;--accent:#8FA89E;--premium-accent:#C8A46B;--background:#FCFAF8;--surface:#FFFFFF;--warm-section:#F5EEE8;--text:#2D2A28;--text-secondary:#5E5E5E;--border:#E6E2DE;--error:#D14343;--heading-font:'Playfair Display',serif;--body-font:'Lato',sans-serif;--shadow-md:0 10px 25px rgba(0,0,0,.06);--shadow-lg:0 20px 50px rgba(0,0,0,.12)}
.lcam-app{font-family:var(--body-font);color:var(--text);background:var(--background);padding:24px;line-height:1.6}.lcam-app *{box-sizing:border-box}.lcam-card{max-width:980px;margin:0 auto;background:#FCFAF8;border:1px solid var(--border);border-radius:28px;padding:44px 48px;box-shadow:0 4px 20px rgba(45,42,40,.04)}
.lcam-steps{display:flex;align-items:center;gap:16px;margin-bottom:44px}.lcam-steps span{display:flex;align-items:center;gap:12px;white-space:nowrap;color:var(--text-secondary);font-size:14px;font-weight:500}.lcam-steps span strong{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#F5EEE8;color:var(--text-secondary);font-weight:700;font-size:14px}.lcam-steps span.active strong{background:var(--primary);color:#fff}.lcam-steps span.active em{color:var(--text)}.lcam-steps em{font-style:normal}.lcam-steps i{height:1px;background:#E6E2DE;flex:1;min-width:26px}
.lcam-step{display:none}.lcam-step.active{display:block;animation:lcamFade .18s ease}@keyframes lcamFade{from{opacity:.65;transform:translateY(4px)}to{opacity:1;transform:none}}.lcam-step h3{font-family:var(--heading-font);font-size:28px;font-weight:700;line-height:1.25;margin:28px 0 18px;color:var(--text);letter-spacing:-.02em}.lcam-grid{display:grid;gap:16px}.lcam-grid.two{grid-template-columns:1fr 1fr}.lcam-grid.three{grid-template-columns:repeat(3,1fr)}
.lcam-choice,.lcam-location,.lcam-slots button,.lcam-pay button{min-height:64px;border:1px solid #E6E2DE;background:#fff;border-radius:14px;padding:0 20px;text-align:left;font:500 16px var(--body-font);cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s,transform .2s;color:var(--text)}.lcam-choice:hover,.lcam-location:hover,.lcam-slots button:hover,.lcam-pay button:hover{border-color:var(--primary);transform:translateY(-1px)}.lcam-choice{display:flex;justify-content:space-between;align-items:center}.lcam-choice b{display:none;width:18px;height:18px;border-radius:50%;background:var(--primary);color:#fff;font-size:12px;line-height:18px;text-align:center}.lcam-choice.selected,.lcam-location.selected,.lcam-slots button.selected,.lcam-pay button.selected{background:#F5EEE8;border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.lcam-choice.selected b{display:block}.lcam-location{display:flex;gap:16px;align-items:center}.lcam-location strong{font-weight:600}.lcam-loc-icon{width:42px;height:42px;display:grid;place-items:center;background:#D9E7E1;border-radius:10px;color:var(--primary);font-size:18px}
.lcam-actions{display:flex;justify-content:space-between;align-items:center;margin-top:40px}.lcam-actions.end{justify-content:flex-end}.lcam-btn{border:1px solid #8FA89E;background:#fff;color:var(--text);border-radius:32px;min-height:54px;padding:0 34px;font:600 16px var(--body-font);cursor:pointer;transition:.2s;display:inline-flex;align-items:center;gap:12px;justify-content:center}.lcam-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.lcam-btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.lcam-btn.primary:hover{background:var(--primary-dark)}.lcam-btn.gold{background:#C8A46B;border-color:#C8A46B;color:#fff;box-shadow:inset 0 0 0 2px #fff,0 0 0 1px #C8A46B}.lcam-btn.gold:hover{background:#B28F58}.lcam-btn:disabled{background:#B69AA2;border-color:#B69AA2;color:#fff;cursor:not-allowed;box-shadow:none;transform:none;opacity:.95}
.lcam-datetime{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}.lcam-calendar-head{display:grid;grid-template-columns:auto 44px 1fr 44px;align-items:center;gap:12px;margin-bottom:10px}.lcam-calendar-head h3{margin:0}.lcam-month-label{text-align:center;font-weight:600;color:var(--text)}.lcam-month-nav{width:44px;height:44px;border:1px solid var(--border);background:#fff;border-radius:50%;font-size:24px;line-height:1;color:var(--primary);cursor:pointer;transition:.2s}.lcam-month-nav:hover{border-color:var(--primary);background:#fff}.lcam-calendar{display:grid;grid-template-columns:repeat(7,44px);gap:10px 18px;margin-top:20px}.lcam-weekday,.lcam-day{height:40px;display:grid;place-items:center;font-size:16px}.lcam-weekday{height:22px;color:var(--text-secondary);font-size:14px;font-weight:700}.lcam-day{border:0;background:transparent;border-radius:10px;color:var(--text);cursor:pointer;font-family:var(--body-font)}.lcam-day:hover:not(:disabled){background:#F5EEE8}.lcam-day.selected{background:var(--primary);color:#fff}.lcam-day:disabled{color:#B9C1CA;cursor:not-allowed}.lcam-day.blank{visibility:hidden}.lcam-help{display:block;margin-top:24px;color:var(--text-secondary)}.lcam-time-panel h3{margin-top:0}.lcam-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.lcam-slots button{text-align:center;justify-content:center;min-height:56px;padding:0 14px}.lcam-empty{grid-column:1/-1;border:1px solid var(--border);background:#F5EEE8;border-radius:14px;padding:28px;text-align:center;color:var(--text-secondary)}
.lcam-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;background:#F5EEE8;border:1px solid var(--border);border-radius:18px;padding:22px;margin-bottom:28px}.lcam-summary span{display:flex;gap:12px;align-items:center;min-width:0}.lcam-summary i{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:#fff;color:var(--primary)}.lcam-summary em{font-style:normal;min-width:0}.lcam-summary small,.lcam-form-grid label,.lcam-insurance label,.lcam-section-label,.lcam-message-label{display:block;text-transform:uppercase;font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--primary);margin-bottom:10px}.lcam-summary b{display:block;font-size:16px;color:var(--text);font-weight:600;text-transform:none;letter-spacing:0;white-space:normal;line-height:1.25}.screen-reader-text{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}
.lcam-app input,.lcam-app select,.lcam-app textarea{width:100%;height:56px;border:1px solid #E6E2DE;border-radius:14px;background:#fff;padding:0 18px;font:400 16px var(--body-font);color:var(--text);outline:none}.lcam-app textarea{height:130px;padding-top:16px;resize:vertical}.lcam-app input:focus,.lcam-app select:focus,.lcam-app textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(123,30,43,.15)}.lcam-app input.invalid,.lcam-app select.invalid{border-color:#D14343}.field-error{display:block;min-height:18px;margin-top:6px;color:var(--error);font-size:13px;text-transform:none;letter-spacing:0;font-weight:400}.lcam-message-label{margin-top:20px}.lcam-message-label small,.lcam-insurance label small{color:#5E5E5E;font-weight:600;text-transform:none;letter-spacing:0}.required{color:var(--error)}
.lcam-payment-block{margin:22px 0}.lcam-pay{display:grid;grid-template-columns:1fr 1fr;gap:16px}.lcam-pay button{height:auto;min-height:72px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.lcam-pay button span{font-weight:700}.lcam-pay button b{margin-top:4px;font-weight:400;font-size:13px;color:var(--text-secondary)}.lcam-pay button.selected b{color:var(--primary)}.lcam-error{color:var(--error);font-size:14px;margin-top:12px;font-weight:600}.lcam-success{max-width:960px;margin:0 auto;text-align:center;background:#D9E7E1;border:1px solid #8FA89E;border-radius:26px;padding:70px 30px}.lcam-success h2{font:700 34px var(--heading-font);color:var(--text);margin:18px 0 10px}.lcam-success p{max-width:560px;margin:0 auto;color:var(--text);font-size:17px;line-height:1.7}.lcam-success .icon{margin:auto;width:74px;height:74px;border-radius:50%;background:var(--accent);display:grid;place-items:center;color:#fff;font-size:28px}

.lcam-overview-intro{margin:-8px 0 24px;color:var(--text-secondary);font-size:16px}
.lcam-overview{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.lcam-overview-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:24px;box-shadow:0 10px 25px rgba(0,0,0,.04)}
.lcam-overview-card h4{margin:0 0 18px;font:700 22px var(--heading-font);color:var(--text)}
.lcam-overview-card dl{margin:0;display:grid;gap:14px}
.lcam-overview-card dl div{display:grid;grid-template-columns:160px 1fr;gap:12px;padding-bottom:12px;border-bottom:1px solid #E6E2DE}
.lcam-overview-card dl div:last-child{border-bottom:0;padding-bottom:0}
.lcam-overview-card dt{font-size:12px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:var(--primary)}
.lcam-overview-card dd{margin:0;color:var(--text);font-size:15px;font-weight:600;word-break:break-word}
.lcam-review-message{grid-column:1/-1}
.lcam-review-message p{margin:0;color:var(--text);font-size:16px;line-height:1.7;white-space:pre-wrap}
@media(max-width:860px){.lcam-overview{grid-template-columns:1fr}.lcam-overview-card dl div{grid-template-columns:1fr;gap:4px}}

@media(max-width:860px){.lcam-card{padding:32px 26px}.lcam-datetime{gap:34px}.lcam-calendar{grid-template-columns:repeat(7,1fr);gap:8px}.lcam-day,.lcam-weekday{width:auto}.lcam-steps{gap:10px}.lcam-steps em{font-size:13px}.lcam-summary{grid-template-columns:1fr 1fr}.lcam-slots{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.lcam-app{padding:14px}.lcam-card{padding:24px 18px;border-radius:22px}.lcam-grid.two,.lcam-grid.three,.lcam-datetime,.lcam-summary,.lcam-pay{grid-template-columns:1fr}.lcam-steps{justify-content:space-between}.lcam-steps em,.lcam-steps i{display:none}.lcam-steps span strong{width:34px;height:34px}.lcam-calendar-head{grid-template-columns:auto 40px 1fr 40px}.lcam-calendar-head h3{grid-column:1/-1}.lcam-actions{gap:14px}.lcam-btn{width:100%;padding:0 20px}.lcam-slots{grid-template-columns:1fr}.lcam-step h3{font-size:24px}}

.lcam-custom-icon{width:42px;height:42px;display:grid;place-items:center;background:#D9E7E1;border-radius:10px;color:var(--primary);font-size:18px;flex:0 0 auto}.lcam-custom-icon img{max-width:24px;max-height:24px;display:block}.lcam-choice{gap:12px}.lcam-choice>span:not(.lcam-custom-icon){flex:1}.lcam-summary i .lcam-custom-icon{width:28px;height:28px;border-radius:8px;background:#fff}.lcam-summary i .lcam-custom-icon img{max-width:18px;max-height:18px}.lcam-success .icon .lcam-custom-icon{width:64px;height:64px;border-radius:50%;background:#8FA89E;color:#fff;margin:0 auto}.lcam-success .icon .lcam-custom-icon img{max-width:32px;max-height:32px}

/* Selected choice text color: kept visible in default, hover, active, and focus states. */
.lcam-app{--choice-selected-text:var(--primary)}
.lcam-app .lcam-choice.selected,
.lcam-app .lcam-choice.selected:hover,
.lcam-app .lcam-choice.selected:active,
.lcam-app .lcam-choice.selected:focus,
.lcam-app .lcam-location.selected,
.lcam-app .lcam-location.selected:hover,
.lcam-app .lcam-location.selected:active,
.lcam-app .lcam-location.selected:focus,
.lcam-app .lcam-slots button.selected,
.lcam-app .lcam-slots button.selected:hover,
.lcam-app .lcam-slots button.selected:active,
.lcam-app .lcam-slots button.selected:focus,
.lcam-app .lcam-pay button.selected,
.lcam-app .lcam-pay button.selected:hover,
.lcam-app .lcam-pay button.selected:active,
.lcam-app .lcam-pay button.selected:focus{color:var(--choice-selected-text)}
.lcam-app .lcam-choice.selected strong,
.lcam-app .lcam-choice.selected span:not(.lcam-custom-icon),
.lcam-app .lcam-choice.selected:hover strong,
.lcam-app .lcam-choice.selected:hover span:not(.lcam-custom-icon),
.lcam-app .lcam-choice.selected:active strong,
.lcam-app .lcam-choice.selected:active span:not(.lcam-custom-icon),
.lcam-app .lcam-choice.selected:focus strong,
.lcam-app .lcam-choice.selected:focus span:not(.lcam-custom-icon),
.lcam-app .lcam-location.selected strong,
.lcam-app .lcam-location.selected span:not(.lcam-custom-icon),
.lcam-app .lcam-location.selected:hover strong,
.lcam-app .lcam-location.selected:hover span:not(.lcam-custom-icon),
.lcam-app .lcam-location.selected:active strong,
.lcam-app .lcam-location.selected:active span:not(.lcam-custom-icon),
.lcam-app .lcam-location.selected:focus strong,
.lcam-app .lcam-location.selected:focus span:not(.lcam-custom-icon),
.lcam-app .lcam-pay button.selected span,
.lcam-app .lcam-pay button.selected:hover span,
.lcam-app .lcam-pay button.selected:active span,
.lcam-app .lcam-pay button.selected:focus span{color:var(--choice-selected-text)}


/* Choice title color: service card/button title text remains readable in all states. */
.lcam-app{--choice-title-color:#7b1e2b}
.lcam-app .service-card-title,
.lcam-app .choice-card-title,
.lcam-app .booking-choice-title,
.lcam-app .lcam-service-grid .lcam-choice > span:not(.lcam-custom-icon),
.lcam-app .lcam-service-grid .lcam-choice:hover > span:not(.lcam-custom-icon),
.lcam-app .lcam-service-grid .lcam-choice:active > span:not(.lcam-custom-icon),
.lcam-app .lcam-service-grid .lcam-choice:focus > span:not(.lcam-custom-icon),
.lcam-app .lcam-service-grid .lcam-choice.selected > span:not(.lcam-custom-icon),
.lcam-app .lcam-service-grid .lcam-choice.selected:hover > span:not(.lcam-custom-icon),
.lcam-app .lcam-service-grid .lcam-choice.selected:active > span:not(.lcam-custom-icon),
.lcam-app .lcam-service-grid .lcam-choice.selected:focus > span:not(.lcam-custom-icon){color:var(--choice-title-color, #7b1e2b) !important}
