.cyp-appointment{--cyp-appointment-accent:#285b52;--cyp-appointment-ink:#23302e;--cyp-appointment-muted:#65716f;--cyp-appointment-paper:#f3f3ee;--cyp-appointment-surface:#fff;--cyp-appointment-line:#d5d8d1;--cyp-appointment-selected:#8a541d;box-sizing:border-box;max-width:1180px;margin:32px auto;border:1px solid var(--cyp-appointment-line);background:var(--cyp-appointment-paper);color:var(--cyp-appointment-ink);font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.5;box-shadow:0 26px 72px rgba(35,48,46,.12)}
.cyp-appointment *{box-sizing:border-box}.cyp-appointment [hidden]{display:none!important}.cyp-appointment ::selection{background:var(--cyp-appointment-accent);color:#fff}
.cyp-appointment__header{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;padding:42px 48px 32px;background:#fff}.cyp-appointment__header>div:first-child{max-width:720px}.cyp-appointment__header h2{max-width:650px;margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.4rem,5vw,4.4rem);font-weight:400;line-height:1;letter-spacing:-.04em;text-wrap:balance}.cyp-appointment__header p{max-width:66ch;margin:16px 0 0;color:var(--cyp-appointment-muted)}.cyp-appointment__source{display:inline-block;margin-top:18px;border:1px solid var(--cyp-appointment-line);background:#f7f7f3;padding:8px 12px}.cyp-appointment__timezone{min-width:190px;border-top:1px solid var(--cyp-appointment-line);padding-top:12px;text-align:right}.cyp-appointment__timezone span{display:block;color:var(--cyp-appointment-muted);font-size:.76rem}.cyp-appointment__timezone strong{font-size:.9rem}
.cyp-appointment__progress{border-block:1px solid var(--cyp-appointment-line);background:#f8f8f5;padding:0 48px}.cyp-appointment__progress ol{display:grid;grid-template-columns:repeat(3,1fr);max-width:680px;margin:0;padding:0;list-style:none}.cyp-appointment__progress li{display:flex;align-items:center;gap:10px;border-bottom:3px solid transparent;padding:15px 6px;color:var(--cyp-appointment-muted);font-size:.82rem;font-weight:720}.cyp-appointment__progress li span{display:grid;width:25px;height:25px;border:1px solid #aeb6b2;border-radius:50%;place-items:center;background:#fff}.cyp-appointment__progress li.is-current{border-color:var(--cyp-appointment-accent);color:var(--cyp-appointment-accent)}.cyp-appointment__progress li.is-current span,.cyp-appointment__progress li.is-complete span{border-color:var(--cyp-appointment-accent);background:var(--cyp-appointment-accent);color:#fff}
.cyp-appointment-form{padding:42px 48px 48px}.cyp-appointment-step.is-active{animation:cyp-appointment-enter .2s cubic-bezier(.16,1,.3,1) both}.cyp-appointment-step__heading{max-width:720px;margin:0 0 30px}.cyp-appointment-step__heading h3,.cyp-appointment-success h3{margin:0 0 9px;font-family:Georgia,"Times New Roman",serif;font-size:2rem;font-weight:400;line-height:1.12;letter-spacing:-.025em;outline:none}.cyp-appointment-step__heading p{margin:0;color:var(--cyp-appointment-muted)}.cyp-appointment fieldset{margin:0;padding:0;border:0}
.cyp-appointment-types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--cyp-appointment-line);border-left:1px solid var(--cyp-appointment-line)}.cyp-appointment-type{position:relative;cursor:pointer}.cyp-appointment-type:last-child:nth-child(odd){grid-column:1/-1}.cyp-appointment-type input{position:absolute;opacity:0}.cyp-appointment-type>span{display:flex;min-height:142px;border-right:1px solid var(--cyp-appointment-line);border-bottom:1px solid var(--cyp-appointment-line);background:rgba(255,255,255,.72);padding:21px;flex-direction:column}.cyp-appointment-type strong{font-family:Georgia,"Times New Roman",serif;font-size:1.18rem;font-weight:400}.cyp-appointment-type small{margin-top:7px;color:var(--cyp-appointment-muted)}.cyp-appointment-type em{margin-top:auto;color:var(--cyp-appointment-accent);font-size:.75rem;font-style:normal;font-weight:760}.cyp-appointment-type input:checked+span{position:relative;z-index:1;background:#fff;box-shadow:inset 0 0 0 2px var(--cyp-appointment-accent)}.cyp-appointment-type input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--cyp-appointment-accent) 36%,transparent);outline-offset:-3px}
.cyp-schedule-layout{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(0,1.45fr);gap:28px;align-items:start}.cyp-selected-service{position:sticky;top:30px;border-top:1px solid var(--cyp-appointment-accent);background:#293b37;color:#fff;padding:25px}.cyp-selected-service>span,.cyp-selected-service dt{color:#b9cbc6;font-size:.76rem}.cyp-selected-service h4{margin:10px 0 8px;font-family:Georgia,"Times New Roman",serif;font-size:1.55rem;font-weight:400}.cyp-selected-service p{color:#d6dfdc}.cyp-selected-service dl{margin:22px 0 0}.cyp-selected-service dl div{display:flex;justify-content:space-between;gap:15px;border-top:1px solid rgba(255,255,255,.15);padding:11px 0}.cyp-selected-service dd{margin:0;text-align:right;font-weight:700}
.cyp-calendar-panel{position:relative;border:1px solid var(--cyp-appointment-line);background:#fff}.cyp-calendar__header{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;border-bottom:1px solid var(--cyp-appointment-line);padding:13px}.cyp-calendar__header strong{text-align:center;font-family:Georgia,"Times New Roman",serif;font-size:1.14rem}.cyp-calendar__header button{display:grid;width:38px;height:38px;border:1px solid transparent;background:transparent;place-items:center;cursor:pointer}.cyp-calendar__header button:hover{border-color:var(--cyp-appointment-line);background:#f5f5f1}.cyp-calendar__header svg{width:20px;fill:none;stroke:currentColor;stroke-width:1.8}.cyp-calendar__weekdays,.cyp-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr)}.cyp-calendar__weekdays{border-bottom:1px solid var(--cyp-appointment-line);background:#f8f8f5}.cyp-calendar__weekdays span{padding:9px 4px;color:var(--cyp-appointment-muted);font-size:.68rem;font-weight:750;text-align:center;text-transform:uppercase}.cyp-calendar__grid{min-height:310px;padding:10px}.cyp-calendar__grid>button,.cyp-calendar__blank{min-height:58px}.cyp-calendar__grid>button{display:flex;border:1px solid transparent;background:#fff;align-items:center;justify-content:center;flex-direction:column;color:var(--cyp-appointment-ink);cursor:pointer}.cyp-calendar__grid>button:hover:not(:disabled){border-color:var(--cyp-appointment-accent);background:#f0f5f3}.cyp-calendar__grid>button i{color:var(--cyp-appointment-accent);font-size:.56rem;font-style:normal}.cyp-calendar__grid>button:disabled{color:#b7bcb9;cursor:not-allowed}.cyp-calendar__grid>button.is-selected{border-color:var(--cyp-appointment-selected);background:#fbf3e9;color:#704516;box-shadow:inset 0 0 0 1px var(--cyp-appointment-selected)}.cyp-calendar__skeleton{height:58px;margin:2px;background:#eceeea;animation:cyp-appointment-pulse 1s ease-in-out infinite alternate}.cyp-calendar__loading{position:absolute;inset:58px 0 auto;padding:7px;background:#fff;color:var(--cyp-appointment-muted);text-align:center}
.cyp-time-panel{display:grid;grid-template-columns:170px 1fr;gap:18px;border-top:1px solid var(--cyp-appointment-line);padding:19px}.cyp-time-panel>div:first-child span{display:block;color:var(--cyp-appointment-muted);font-size:.73rem;text-transform:uppercase}.cyp-time-panel>div:first-child strong{display:block;margin-top:5px}.cyp-time-slots{display:flex;gap:8px;flex-wrap:wrap}.cyp-time-slots p{margin:4px 0;color:var(--cyp-appointment-muted)}.cyp-time-slots button{min-width:92px;min-height:42px;border:1px solid #abb7b3;background:#fff;color:var(--cyp-appointment-ink);font:inherit;font-weight:720;cursor:pointer}.cyp-time-slots button:hover{border-color:var(--cyp-appointment-selected)}.cyp-time-slots button.is-selected{border-color:var(--cyp-appointment-selected);background:var(--cyp-appointment-selected);color:#fff}
.cyp-appointment-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.cyp-appointment label>span{display:block;margin-bottom:7px;font-weight:730}.cyp-appointment input:not([type=checkbox]):not([type=radio]),.cyp-appointment textarea,.cyp-appointment select{width:100%;min-height:48px;border:1px solid #abb5b1;border-radius:3px;background:#fff;color:var(--cyp-appointment-ink);padding:10px 12px;font:inherit}.cyp-appointment textarea{resize:vertical}.cyp-appointment-wide{display:block;margin-top:20px}.cyp-appointment-consents{display:grid;gap:9px;margin-top:24px}.cyp-appointment-consents label{display:flex;gap:11px;align-items:flex-start;border:1px solid var(--cyp-appointment-line);background:#fff;padding:13px}.cyp-appointment-consents label span{margin:0;font-weight:500}.cyp-appointment-consents input{width:18px;height:18px;margin:2px 0 0;flex:none;accent-color:var(--cyp-appointment-accent)}
.cyp-appointment button:focus-visible,.cyp-appointment a:focus-visible,.cyp-appointment input:focus,.cyp-appointment textarea:focus,.cyp-appointment select:focus{border-color:var(--cyp-appointment-accent);outline:3px solid color-mix(in srgb,var(--cyp-appointment-accent) 35%,transparent);outline-offset:2px}.cyp-appointment-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:34px;border-top:1px solid var(--cyp-appointment-line);padding-top:22px}.cyp-appointment-button{display:inline-flex;min-height:48px;border:1px solid var(--cyp-appointment-accent);border-radius:3px;background:var(--cyp-appointment-accent);align-items:center;justify-content:center;color:#fff!important;padding:10px 20px;font:inherit;font-weight:760;text-decoration:none;cursor:pointer}.cyp-appointment-button--secondary{background:transparent;color:var(--cyp-appointment-accent)!important}.cyp-appointment-button--whatsapp{border-color:#187b50;background:#187b50}.cyp-appointment-button:disabled{opacity:.55;cursor:wait}.cyp-appointment-error{margin-top:24px;border:1px solid #d8a59f;background:#fae9e6;color:#772d26;padding:13px}
.cyp-appointment-success{max-width:760px;margin:auto;padding:58px 48px;text-align:center}.cyp-appointment-success__mark{display:grid;width:62px;height:62px;margin:0 auto 19px;border-radius:50%;background:var(--cyp-appointment-accent);place-items:center;color:#fff}.cyp-appointment-success__mark svg{width:32px;fill:none;stroke:currentColor;stroke-width:2}.cyp-appointment-success>p{color:var(--cyp-appointment-muted)}.cyp-appointment-success dl{max-width:620px;margin:28px auto;border-top:1px solid var(--cyp-appointment-line)}.cyp-appointment-success dl div{display:grid;grid-template-columns:170px 1fr;border-bottom:1px solid var(--cyp-appointment-line);padding:12px 0;text-align:left}.cyp-appointment-success dt{color:var(--cyp-appointment-muted)}.cyp-appointment-success dd{margin:0;font-weight:700}.cyp-appointment-success__actions{display:flex;justify-content:center;gap:9px;flex-wrap:wrap}.cyp-appointment__honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.cyp-booking-page{min-height:100dvh;margin:0;background:#eceee9;color:#23302e;font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;padding:clamp(20px,5vw,64px)}.cyp-booking-card{--cyp-appointment-accent:#285b52;max-width:920px;margin:auto;border:1px solid #d5d8d1;background:#fff;padding:clamp(24px,5vw,52px);box-shadow:0 26px 72px rgba(35,48,46,.12)}.cyp-booking-card__brand{color:var(--cyp-appointment-accent);font-weight:800}.cyp-booking-card h1{max-width:720px;margin:14px 0 10px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.2rem,5vw,4rem);font-weight:400;line-height:1;letter-spacing:-.04em}.cyp-booking-card__status{display:inline-block;margin:10px 0 24px;border:1px solid #b8c1bd;background:#f3f5f3;padding:7px 11px;font-size:.78rem;font-weight:750;text-transform:uppercase;letter-spacing:.05em}.cyp-booking-card__status--cancelled{border-color:#d8a59f;background:#fae9e6;color:#772d26}.cyp-booking-details{display:grid;grid-template-columns:minmax(160px,.5fr) 1fr;margin:18px 0 30px;border-top:1px solid #d5d8d1}.cyp-booking-details dt,.cyp-booking-details dd{margin:0;border-bottom:1px solid #e4e6e1;padding:12px 0}.cyp-booking-details dt{color:#65716f}.cyp-booking-details dd{font-weight:700}.cyp-booking-actions{display:flex;gap:9px;flex-wrap:wrap}.cyp-booking-policy{margin-top:26px;background:#f3f3ee;padding:15px;color:#596562}.cyp-booking-reschedule{margin-top:32px;border-top:1px solid #d5d8d1;padding-top:28px}.cyp-booking-reschedule .cyp-calendar-panel{max-width:680px}.cyp-booking-reschedule .cyp-time-panel{grid-template-columns:150px 1fr}.cyp-booking-reschedule__confirm{margin-top:16px}.cyp-booking-manage-error{margin:15px 0;border:1px solid #d8a59f;background:#fae9e6;color:#772d26;padding:12px}
@keyframes cyp-appointment-enter{from{opacity:.01;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes cyp-appointment-pulse{from{opacity:.45}to{opacity:1}}
@media(max-width:820px){.cyp-appointment__header{align-items:flex-start}.cyp-schedule-layout{grid-template-columns:1fr}.cyp-selected-service{position:static}.cyp-calendar__grid{min-height:280px}}
@media(max-width:620px){.cyp-appointment{margin:0;border-inline:0;box-shadow:none}.cyp-appointment__header{padding:28px 20px 24px}.cyp-appointment__progress{padding:0 20px;overflow:auto}.cyp-appointment__progress ol{min-width:450px}.cyp-appointment-form{padding:30px 20px}.cyp-appointment-types,.cyp-appointment-fields{grid-template-columns:1fr}.cyp-appointment-type:last-child:nth-child(odd){grid-column:auto}.cyp-appointment-type>span{min-height:126px}.cyp-calendar__grid{padding:5px}.cyp-calendar__grid>button,.cyp-calendar__blank{min-height:48px}.cyp-calendar__grid>button i{display:none}.cyp-time-panel{grid-template-columns:1fr}.cyp-appointment-actions{position:sticky;z-index:5;bottom:0;margin:26px -20px -30px;padding:12px 20px;background:rgba(243,243,238,.97);box-shadow:0 -12px 30px rgba(35,48,46,.08)}.cyp-appointment-actions .cyp-appointment-button{flex:1}.cyp-appointment-success{padding:44px 20px}.cyp-appointment-success dl div,.cyp-booking-details{grid-template-columns:1fr}.cyp-appointment-success dt,.cyp-booking-details dt{border:0;padding-bottom:0}.cyp-appointment-success__actions,.cyp-booking-actions{display:grid}.cyp-booking-page{padding:0}.cyp-booking-card{border:0;min-height:100dvh}.cyp-booking-reschedule .cyp-time-panel{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.cyp-appointment *,.cyp-booking-page *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media(max-width:620px){.cyp-appointment__header{flex-direction:column}.cyp-appointment__timezone{min-width:0;text-align:left}}
