.wr-modal{position:fixed;inset:0;width:min(880px,calc(100vw - 28px));max-width:none;max-height:none;margin:auto;padding:0;border:0;overflow:visible;background:transparent;color:#1a1a18;font-family:Outfit,system-ui,sans-serif;z-index:9999}
.wr-modal::backdrop{background:transparent;backdrop-filter:none}
.wr-modal-shell{position:relative;max-height:min(94vh,800px);overflow:auto;overscroll-behavior:contain;padding:clamp(22px,3vw,36px);border:1px solid #d3d2cc;border-radius:24px;background:#fafaf8;box-shadow:0 30px 90px rgba(26,26,24,.22);opacity:0;transform:translate(calc(50vw - 64px),calc(-50vh + 64px)) scale(.12) rotate(4deg);transform-origin:top right;transition:transform .72s cubic-bezier(.16,1,.3,1),opacity .28s ease}
.wr-modal[data-open] .wr-modal-shell{opacity:1;transform:translate(0,0) scale(1) rotate(0)}
.wr-modal[data-closing] .wr-modal-shell{opacity:0;transform:translate(calc(-50vw + 64px),calc(50vh - 64px)) scale(.12) rotate(-4deg);transform-origin:bottom left;transition-duration:.48s,.22s}
.wr-modal-close{position:absolute;z-index:2;top:16px;right:18px;width:42px;height:42px;border:1px solid #d3d2cc;border-radius:50%;background:#fff;color:#1a1a18;font-size:27px;line-height:1;cursor:pointer;transition:transform .2s ease,background .2s ease}
.wr-modal-close:hover{transform:rotate(8deg);background:#d8ff3e}
.wr-modal-head{padding-right:52px;margin-bottom:16px}
.wr-modal .eyebrow{font-size:11px;font-weight:800;letter-spacing:.18em;color:#66665f}
.wr-modal-head h2{max-width:700px;margin:8px 0 8px;font-size:clamp(30px,4vw,48px);font-weight:800;line-height:1;letter-spacing:-.045em}
.wr-modal-head p{max-width:650px;margin:0;color:#66665f;font-size:15px;line-height:1.4}
.wr-modal .contact-form{padding:0;background:transparent;border:0;box-shadow:none}
.wr-modal .field-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px 16px}
.wr-modal .contact-form>label{display:block;margin-top:11px}
.wr-modal label span{display:block;margin-bottom:6px;font-size:12px;font-weight:750}
.wr-modal input,.wr-modal select,.wr-modal textarea{box-sizing:border-box;width:100%;padding:9px 12px;border:1px solid #d3d2cc;border-radius:10px;outline:none;background:#fff;color:#1a1a18;font:inherit;transition:border-color .15s,box-shadow .15s}
.wr-modal input:focus,.wr-modal select:focus,.wr-modal textarea:focus{border-color:#1a1a18;box-shadow:0 0 0 3px rgba(26,26,24,.08)}
.wr-modal textarea{min-height:82px;resize:vertical}
.wr-modal label small{display:block;margin-top:5px;color:#a02a22}
.wr-modal .honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.wr-modal .primary-button{display:inline-flex;align-items:center;justify-content:center;margin-top:13px;padding:10px 22px;border:1px solid #1a1a18;border-radius:999px;background:#1a1a18;color:#fafaf8;font:inherit;font-weight:750;text-decoration:none;cursor:pointer}
.wr-modal .primary-button:hover{background:#d8ff3e;color:#1a1a18}
.wr-modal .form-note{margin:9px 0 0;color:#66665f;font-size:11px}
.wr-modal .form-alert{padding:10px 12px;border-radius:10px;background:#fff0ee;color:#a02a22;font-weight:650}
.wr-modal .htmx-indicator{display:none}.wr-modal .htmx-request .default-label{display:none}.wr-modal .htmx-request .htmx-indicator{display:block}
.wr-modal .success-card{padding:34px;border:1px solid #d3d2cc;border-radius:16px;background:#fff}
.wr-modal .success-card h2{margin:14px 0;font-size:clamp(30px,5vw,52px);line-height:1;letter-spacing:-.04em}
.wr-modal .success-card p{max-width:600px;color:#66665f;font-size:17px;line-height:1.5}
body:has(.wr-modal[open]){overflow:hidden}
.contact-wizard .wizard-progress{margin:0 0 18px;padding-bottom:12px;border-bottom:1px solid #d3d2cc}
.contact-wizard .wizard-progress-copy{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.contact-wizard .wizard-progress-copy b{font-weight:800}.contact-wizard .wizard-progress-copy span{color:#66665f;font-weight:700}
.contact-wizard .wizard-track{height:3px;overflow:hidden;border-radius:9px;background:#e5e4df}
.contact-wizard .wizard-track i{display:block;width:33.333%;height:100%;border-radius:inherit;background:#1a1a18;transition:width .55s cubic-bezier(.16,1,.3,1)}
.contact-wizard .wizard-step-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:12px}
.contact-wizard .wizard-step-head>span{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:50%;background:#d8ff3e;font-size:11px;font-weight:850}
.contact-wizard .wizard-step-head h3{margin:0 0 3px;font-size:clamp(20px,2.5vw,28px);line-height:1.05;letter-spacing:-.03em}
.contact-wizard .wizard-step-head p{margin:0;color:#66665f;font-size:13px;line-height:1.35}
.contact-wizard .field-wide{display:block;grid-column:1/-1}
.contact-wizard .wizard-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:16px}
.contact-wizard .wizard-next,.contact-wizard .wizard-back{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:10px 20px;border:1px solid #1a1a18;border-radius:999px;font:inherit;font-size:13px;font-weight:800;cursor:pointer}
.contact-wizard .wizard-next{background:#1a1a18;color:#fafaf8}.contact-wizard .wizard-next:hover{background:#d8ff3e;color:#1a1a18}
.contact-wizard .wizard-back{margin-right:auto;border-color:#d3d2cc;background:transparent;color:#1a1a18}
.contact-wizard .scope-fieldset{margin:12px 0 0;padding:0;border:0}.contact-wizard .scope-fieldset legend{margin-bottom:8px;font-size:12px;font-weight:750}
.contact-wizard .choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 8px}
.contact-wizard .scope-choice{position:relative;cursor:pointer}.contact-wizard .scope-choice input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.contact-wizard .scope-choice span{display:flex;align-items:center;justify-content:space-between;min-height:34px;margin:0;padding:6px 11px;border:1px solid #d3d2cc;border-radius:10px;background:#fff;font-size:12px;font-weight:700;transition:border-color .15s,background .15s,color .15s,transform .15s}
.contact-wizard .scope-choice span i{display:grid;place-items:center;width:20px;height:20px;margin-left:8px;border:1px solid #d3d2cc;border-radius:50%;color:transparent;font-style:normal}
.contact-wizard .scope-choice:hover span{border-color:#1a1a18;transform:translateY(-1px)}
.contact-wizard .scope-choice input:focus-visible+span{outline:3px solid rgba(26,26,24,.15)}
.contact-wizard .scope-choice input:checked+span{border-color:#1a1a18;background:#1a1a18;color:#fafaf8}.contact-wizard .scope-choice input:checked+span i{border-color:#d8ff3e;background:#d8ff3e;color:#1a1a18}
.contact-wizard .wizard-client-error{display:block;margin-top:7px;color:#a02a22;font-weight:700}
.contact-wizard .readiness-grid{gap:10px 16px}
.booking-day.is-unavailable.is-today{color:#c9b58c!important;outline:1px solid rgba(201,181,140,.5);outline-offset:-2px;text-decoration:line-through;text-decoration-thickness:1px}
@media(max-height:800px) and (min-width:681px){.wr-modal-shell{padding:18px 36px}.wr-modal-head{margin-bottom:9px}.wr-modal-head h2{margin:5px 0;font-size:38px}.wr-modal-head p{display:none}.contact-wizard .wizard-progress{margin-bottom:10px;padding-bottom:8px}.contact-wizard .wizard-step-head{margin-bottom:8px}.contact-wizard .wizard-step-head p{display:none}.wr-modal input,.wr-modal select{padding-block:7px}.wr-modal textarea{min-height:68px}.contact-wizard .wizard-actions{margin-top:10px}.contact-wizard .pricing-grid{gap-block:7px}}
@media(max-width:680px){.wr-modal{width:calc(100vw - 16px)}.wr-modal-shell{max-height:94vh;padding:22px 18px;border-radius:18px}.wr-modal .field-grid{grid-template-columns:1fr}.wr-modal-head{padding-right:42px}.wr-modal-head h2{font-size:32px}.wr-modal-close{top:12px;right:12px}}
@media(max-width:680px){.contact-wizard .choice-grid{grid-template-columns:1fr}.contact-wizard .wizard-step-head p{font-size:12px}}
.booking-picker{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(220px,.75fr);gap:14px;align-items:stretch}
.booking-calendar{padding:16px;border-radius:16px;background:#181818;color:#f8f8f5;box-shadow:0 18px 45px rgba(0,0,0,.12)}
.booking-calendar-nav{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:8px;margin-bottom:13px;text-align:center}
.booking-calendar-nav strong{font-size:14px;text-transform:capitalize;letter-spacing:-.01em}
.booking-calendar-nav button{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid #3d3d3a;border-radius:50%;background:#242422;color:#f8f8f5;font:inherit;cursor:pointer;transition:background .2s,border-color .2s}
.booking-calendar-nav button:hover{border-color:#d8ff3e;background:#30302d}
.booking-weekdays,.booking-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.booking-weekdays{margin-bottom:5px;color:#92928c;font-size:10px;text-align:center;text-transform:uppercase}
.booking-weekdays span{padding:4px 0}
.booking-day,.booking-day-empty{display:grid;place-items:center;aspect-ratio:1;border:0;border-radius:50%;background:transparent;color:#f8f8f5;font:inherit;font-size:12px;font-weight:700}
.booking-day{cursor:pointer;transition:background .18s,color .18s,transform .18s}
.booking-day:hover{background:#343431;transform:scale(1.05)}
.booking-day.is-selected{background:#d8ff3e;color:#181818;box-shadow:0 0 0 4px rgba(216,255,62,.12)}
.booking-day.is-unavailable{color:#555550;cursor:not-allowed;text-decoration:line-through;text-decoration-thickness:1px}
.appointment-slots{display:flex;flex-direction:column;padding:16px;border:1px solid #d3d2cc;border-radius:16px;background:#fff}
.appointment-slots-head{display:grid;gap:3px;padding-bottom:12px;border-bottom:1px solid #e5e4df}
.appointment-slots-head span{color:#66665f;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.appointment-slots-head b{font-size:13px;line-height:1.25}
.appointment-time-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:13px}
.appointment-time{position:relative;cursor:pointer}
.wr-modal .appointment-time input{position:absolute;width:1px;height:1px;padding:0;opacity:0;pointer-events:none}
.appointment-time span{display:grid;place-items:center;min-height:39px;margin:0;border:1px solid #d3d2cc;border-radius:10px;background:#fafaf8;font-size:13px;font-weight:800;transition:background .18s,color .18s,border-color .18s,transform .18s}
.appointment-time:hover span{border-color:#1a1a18;transform:translateY(-1px)}
.appointment-time input:focus-visible+span{outline:3px solid rgba(26,26,24,.15)}
.appointment-time input:checked+span{border-color:#1a1a18;background:#1a1a18;color:#d8ff3e}
.appointment-empty{margin:auto;color:#66665f;font-size:12px;line-height:1.5;text-align:center}
.booking-error{grid-column:1/-1;color:#a02a22;font-size:12px;font-weight:700}
.final-contact-grid{margin-top:18px}
@media(max-width:680px){.booking-picker{grid-template-columns:1fr}.booking-calendar{padding:13px}.appointment-time-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:390px){.appointment-time-grid{grid-template-columns:repeat(2,1fr)}}

/* Contact modal v8 — WebRapid splash treatment */
.wr-modal{width:min(1060px,calc(100vw - 32px))}
.wr-modal-shell{
  isolation:isolate;
  max-height:calc(100dvh - 32px);
  overflow:hidden;
  padding:clamp(22px,2.5vw,32px) clamp(24px,3.2vw,44px) clamp(24px,2.8vw,36px);
  border-color:rgba(26,26,24,.24);
  border-radius:32px 78px 38px 62px/28px 58px 46px 72px;
  background:#f5f2e9;
  box-shadow:0 34px 100px rgba(0,0,0,.28),0 0 0 7px rgba(245,242,233,.08);
  transform:translate(calc(50vw - 64px),calc(-50vh + 64px)) scale(.04,.02) rotate(16deg);
  transition:none
}
.wr-modal[data-open] .wr-modal-shell{animation:wr-splash-in .9s cubic-bezier(.16,1,.3,1) both}
.wr-modal[data-closing] .wr-modal-shell{animation:wr-splash-out .5s cubic-bezier(.7,0,.84,0) both;transform-origin:bottom left}
.wr-modal-content{position:relative;z-index:2}
.wr-modal-decor{position:absolute;z-index:0;inset:0;overflow:hidden;border-radius:inherit;contain:paint;pointer-events:none;user-select:none}
.wr-modal-splash,.wr-modal-watermark,.wr-modal-stamp{position:absolute;pointer-events:none;user-select:none}
.wr-modal-splash{z-index:0;top:-48%;left:-20%;width:140%;max-width:none;opacity:.105;filter:saturate(.75) contrast(1.08);transform:rotate(-7deg) scale(.35)}
.wr-modal[data-open] .wr-modal-splash{animation:wr-splash-bloom 1.05s cubic-bezier(.16,1,.3,1) .04s both}
.wr-modal-watermark{z-index:1;right:-6%;top:-32%;width:min(470px,48%);opacity:.045;transform:rotate(8deg)}
.wr-modal-stamp{z-index:2;right:34px;top:92px;width:112px;height:auto;opacity:.2;transform:rotate(10deg)}
.wr-modal-close{z-index:5;top:18px;right:22px;width:44px;height:44px;border-color:#1a1a18;background:#f5f2e9;box-shadow:4px 5px 0 #d8ff3e}
.wr-modal-close:hover{transform:translate(2px,2px) rotate(8deg);box-shadow:2px 3px 0 #d8ff3e}
.wr-modal-head{max-width:820px;margin-bottom:14px;padding-right:90px}
.wr-modal-head h2{max-width:820px;margin:7px 0 7px;font-size:clamp(34px,4vw,50px)}
.wr-modal-head p{font-size:14px}
.contact-wizard .wizard-progress{margin-bottom:14px;padding-bottom:10px}
.contact-wizard .wizard-track{height:4px;background:rgba(26,26,24,.11)}
.contact-wizard .wizard-track i{background:linear-gradient(90deg,#1a1a18 0 calc(100% - 18px),#d8ff3e calc(100% - 18px))}
.contact-wizard .wizard-step-head>span{box-shadow:3px 3px 0 #1a1a18}
.booking-picker{grid-template-columns:minmax(0,1.42fr) minmax(260px,.58fr);gap:16px}
.booking-calendar{padding:17px 20px 18px;border:1px solid #2d2d29;border-radius:22px 42px 22px 34px/22px 30px 28px 38px;background:#171715;box-shadow:10px 14px 0 rgba(26,26,24,.08)}
.booking-calendar-nav{margin-bottom:9px}
.booking-calendar-nav strong{font-size:15px}
.booking-weekdays,.booking-days{gap:4px 7px}
.booking-day,.booking-day-empty{height:42px;aspect-ratio:auto}
.booking-day.is-selected{width:42px;justify-self:center;box-shadow:0 0 0 4px rgba(216,255,62,.15),0 7px 20px rgba(216,255,62,.16)}
.appointment-slots{padding:18px;border:1px solid rgba(26,26,24,.18);border-radius:38px 20px 34px 22px/28px 22px 36px 24px;background:rgba(255,255,255,.72);box-shadow:0 16px 38px rgba(26,26,24,.07)}
.appointment-slots-head{gap:5px;padding-bottom:14px;border-bottom-color:rgba(26,26,24,.14)}
.appointment-slots-head span{color:#55554f;letter-spacing:.16em}
.appointment-slots-head b{font-size:14px}
.appointment-time-grid{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(50px,1fr);gap:8px;margin-top:14px}
.wr-modal .appointment-time span{
  display:flex;
  align-items:center;
  gap:10px;
  height:100%;
  min-height:50px;
  margin:0;
  padding:0 13px;
  border-color:rgba(26,26,24,.17);
  border-radius:15px 10px 15px 10px;
  background:rgba(245,242,233,.82);
  text-align:left
}
.appointment-time span>i{width:8px;height:8px;border-radius:50%;background:#d8ff3e;box-shadow:0 0 0 3px rgba(216,255,62,.2)}
.appointment-time span>b{font-size:15px;font-variant-numeric:tabular-nums}
.appointment-time span>small{margin-left:auto;color:#77776f;font-size:10px;font-style:normal;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.appointment-time span>em{color:#77776f;font-size:15px;font-style:normal;transition:transform .2s ease}
.appointment-time:hover span{border-color:#1a1a18;background:#fff;transform:translateX(3px)}
.appointment-time:hover span>em{transform:translate(2px,-2px)}
.appointment-time input:checked+span{border-color:#1a1a18;background:#1a1a18;color:#f5f2e9;box-shadow:5px 6px 0 #d8ff3e}
.appointment-time input:checked+span>small,.appointment-time input:checked+span>em{color:#d8ff3e}
.appointment-time input:checked+span>i{background:#d8ff3e;box-shadow:0 0 0 3px rgba(216,255,62,.2)}
.appointment-time.is-unavailable{cursor:not-allowed}
.appointment-time.is-unavailable span{border-style:dashed;background:rgba(232,230,222,.52);color:#8a8982;opacity:.68}
.appointment-time.is-unavailable span>i{background:#a9a8a1;box-shadow:none}
.appointment-time.is-unavailable span>small,.appointment-time.is-unavailable span>em{color:#8a8982}
.appointment-time.is-unavailable:hover span{border-color:rgba(26,26,24,.17);background:rgba(232,230,222,.52);transform:none}
.appointment-time.is-unavailable:hover span>em{transform:none}
.contact-wizard .wizard-actions{margin-top:14px}
.contact-wizard .wizard-next,.wr-modal .primary-button{box-shadow:4px 5px 0 rgba(216,255,62,.95);transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease}
.contact-wizard .wizard-next:hover,.wr-modal .primary-button:hover{transform:translate(2px,2px);box-shadow:2px 3px 0 rgba(26,26,24,.22)}

@keyframes wr-splash-in{
  0%{opacity:0;transform:translate(calc(50vw - 64px),calc(-50vh + 64px)) scale(.04,.02) rotate(16deg)}
  48%{opacity:1;transform:translate(-1.8%,2.2%) scale(1.055,.93) rotate(-2.5deg)}
  66%{transform:translate(1%,-.7%) scale(.975,1.035) rotate(1.1deg)}
  82%{transform:translate(-.35%,.25%) scale(1.012,.988) rotate(-.35deg)}
  100%{opacity:1;transform:translate(0,0) scale(1) rotate(0)}
}
@keyframes wr-splash-bloom{
  0%{opacity:0;transform:rotate(24deg) scale(.08,.03)}
  52%{opacity:.14;transform:rotate(-9deg) scale(1.08,.88)}
  72%{transform:rotate(-6deg) scale(.96,1.04)}
  100%{opacity:.105;transform:rotate(-7deg) scale(1)}
}
@keyframes wr-splash-out{
  0%{opacity:1;transform:translate(0,0) scale(1) rotate(0)}
  25%{transform:translate(1%,-1%) scale(1.025,.975) rotate(1deg)}
  100%{opacity:0;transform:translate(calc(-50vw + 64px),calc(50vh - 64px)) scale(.06,.025) rotate(-13deg)}
}

@media(max-height:800px) and (min-width:681px){
  .wr-modal-shell{padding:16px 34px 18px;max-height:calc(100dvh - 20px)}
  .wr-modal-head{margin-bottom:7px}
  .wr-modal-head h2{font-size:36px}
  .booking-day,.booking-day-empty{height:35px}
  .booking-calendar{padding:13px 17px 14px}
  .appointment-time span{min-height:42px}
  .appointment-time-grid{gap:6px;margin-top:10px}
  .wr-modal-stamp{top:68px;width:88px}
}
@media(max-height:680px) and (min-width:681px){
  .wr-modal-shell{overflow-y:auto;scrollbar-width:thin;scrollbar-color:#1a1a18 transparent}
}
@media(max-width:680px){
  .wr-modal{width:calc(100vw - 12px)}
  .wr-modal-shell{max-height:calc(100dvh - 12px);overflow-y:auto;padding:21px 16px 24px;border-radius:22px 40px 26px 34px/20px 34px 24px 42px;scrollbar-width:thin;scrollbar-color:#1a1a18 transparent}
  .wr-modal-head{padding-right:44px}.wr-modal-head h2{font-size:31px}
  .wr-modal-splash{top:-12%;left:-70%;width:220%;opacity:.08}
  .wr-modal-watermark{top:-3%;right:-22%;width:80%;opacity:.035}
  .wr-modal-stamp{display:none}
  .booking-picker{grid-template-columns:1fr}
  .booking-calendar{padding:13px 12px;border-radius:18px 32px 18px 28px}
  .booking-day,.booking-day-empty{height:38px}
  .appointment-time-grid{grid-template-columns:repeat(2,1fr)}
  .appointment-time-grid{grid-template-rows:none;grid-auto-rows:minmax(50px,auto)}
  .appointment-time span{gap:8px;padding:0 10px}
  .appointment-time span>small{display:none}
  .appointment-time span>em{justify-self:end}
}
@media(max-width:390px){.appointment-time-grid{grid-template-columns:1fr}}

/* Calendar v12 — compact, geometric, după referința WebRapid. */
.booking-calendar{
  width:min(246px,100%);
  min-height:285px;
  justify-self:center;
  align-self:start;
  padding:13px 13px 12px;
  border:0;
  border-radius:0;
  background:#1a1a1a;
  color:#f5f5f3;
  box-shadow:none
}
.booking-calendar-nav{
  grid-template-columns:24px 1fr 24px;
  gap:5px;
  min-height:24px;
  margin-bottom:12px
}
.booking-calendar-nav strong{font-size:13px;font-weight:800;letter-spacing:-.02em}
.booking-calendar-nav button{
  width:24px;
  height:24px;
  border:0;
  border-radius:0;
  background:transparent;
  color:#f5f5f3;
  font-size:22px;
  font-weight:300;
  line-height:1;
  transition:color .16s,transform .16s
}
.booking-calendar-nav button:hover:not(:disabled){border-color:transparent;background:transparent;color:#fff;transform:scale(1.12)}
.booking-calendar-nav button:disabled{color:#666;cursor:default;opacity:.48}
.booking-weekdays,.booking-days{gap:0}
.booking-weekdays{height:24px;margin:0 0 4px;color:#a9acb5;font-size:10px;font-weight:500;text-transform:none}
.booking-weekdays span{display:grid;place-items:center;padding:0}
.booking-days{grid-template-rows:repeat(6,32px)}
.booking-day,.booking-day-outside{
  display:grid;
  place-items:center;
  width:29px;
  height:29px;
  justify-self:center;
  align-self:center;
  border:0;
  border-radius:50%;
  background:transparent;
  color:#f5f5f3;
  font-size:13px;
  font-weight:750;
  font-variant-numeric:tabular-nums
}
.booking-day{cursor:pointer;transition:background .16s,color .16s,transform .16s}
.booking-day:hover{background:#343434;transform:none}
.booking-day.is-selected{width:29px;height:29px;background:#f5f5f3;color:#161616;box-shadow:none}
.booking-day.is-unavailable{color:#4f4f4f;cursor:not-allowed;text-decoration:none}
.booking-day-outside{color:#454545;pointer-events:none}
@media(max-width:680px){
  .booking-calendar{width:min(246px,100%);min-height:285px;padding:13px;border-radius:0}
  .booking-day,.booking-day-outside{width:29px;height:29px}
}

/* Ore v14 — listă plată, fără carduri individuale. */
.appointment-time-grid{gap:0 14px}
.wr-modal .appointment-time span{
  min-height:49px;
  height:100%;
  gap:8px;
  padding:0 2px;
  border:0;
  border-bottom:1px solid rgba(26,26,24,.2);
  border-radius:0;
  background:transparent;
  box-shadow:none;
  opacity:1;
  transform:none
}
.appointment-time span>i{width:6px;height:6px;flex:0 0 6px;box-shadow:0 0 0 3px rgba(216,255,62,.22)}
.appointment-time span>b{font-size:16px;line-height:1;color:#1a1a18}
.appointment-time span>small{margin-left:auto;color:#55554f;font-size:9px;letter-spacing:.1em}
.appointment-time:hover span{border-color:#1a1a18;background:transparent;transform:none}
.appointment-time input:checked+span{
  border-color:#1a1a18;
  border-bottom-width:2px;
  background:transparent;
  color:#1a1a18;
  box-shadow:none
}
.appointment-time input:checked+span>b{color:#1a1a18}
.appointment-time input:checked+span>small{color:#1a1a18}
.appointment-time.is-unavailable span{
  border-style:solid;
  background:transparent;
  color:#8b8a84;
  opacity:1
}
.appointment-time.is-unavailable span>b{color:#96958f}
.appointment-time.is-unavailable span>i{background:#aaa9a2;box-shadow:none}
.appointment-time.is-unavailable span>small{color:#96958f}
.appointment-time.is-unavailable:hover span{border-color:rgba(26,26,24,.2);background:transparent}

/* Layout v15 — titlu pe un rând și programare extinsă. */
@media(min-width:681px){
  .wr-modal-head{max-width:none;padding-right:84px}
  .wr-modal-head h2{
    max-width:none;
    white-space:nowrap;
    font-size:clamp(34px,3.65vw,48px)
  }
  .booking-picker{
    grid-template-columns:minmax(0,1.08fr) minmax(350px,.92fr);
    gap:24px;
    align-items:stretch
  }
  .booking-calendar{
    width:100%;
    min-height:350px;
    align-self:stretch;
    padding:20px 26px 18px
  }
  .booking-calendar-nav{margin-bottom:14px}
  .booking-calendar-nav strong{font-size:16px}
  .booking-weekdays{height:28px;margin-bottom:5px;font-size:11px}
  .booking-days{grid-template-rows:repeat(6,42px)}
  .booking-day,.booking-day-outside{width:36px;height:36px;font-size:14px}
  .booking-day.is-selected{width:36px;height:36px}
  .appointment-slots{
    min-height:350px;
    padding:22px 24px
  }
  .appointment-slots-head{padding-bottom:16px}
  .appointment-slots-head span{font-size:11px}
  .appointment-slots-head b{font-size:15px}
  .appointment-time-grid{margin-top:12px;column-gap:18px}
  .wr-modal .appointment-time span{min-height:57px}
  .appointment-time span>b{font-size:18px}
  .appointment-time span>small{font-size:9px}
}

/* Responsive v19 — calendar fluid pe mobil și utilizare bună în landscape. */
.wr-modal{max-width:calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right))}
.wr-modal-shell{overscroll-behavior:contain}
@media(max-width:680px){
  .wr-modal{width:calc(100vw - 12px - env(safe-area-inset-left) - env(safe-area-inset-right))}
  .wr-modal-shell{
    max-height:calc(100dvh - 12px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    padding-bottom:max(24px,env(safe-area-inset-bottom))
  }
  .booking-calendar{width:100%;min-height:285px}
  .booking-days{grid-template-rows:repeat(6,36px)}
  .booking-day,.booking-day-outside,.booking-day.is-selected{
    width:clamp(34px,9vw,38px);height:clamp(34px,9vw,38px)
  }
}
@media(orientation:landscape) and (max-height:500px) and (min-width:540px) and (max-width:920px){
  .wr-modal{width:calc(100vw - 12px)}
  .wr-modal-shell{max-height:calc(100dvh - 12px);padding:14px 20px 18px}
  .wr-modal-head{margin-bottom:7px;padding-right:48px}
  .wr-modal-head h2{font-size:27px;line-height:.96;margin:4px 0}
  .wr-modal-head p{display:none}
  .contact-wizard .wizard-progress{margin-bottom:7px;padding-bottom:7px}
  .contact-wizard .wizard-step-head{margin-bottom:7px}
  .contact-wizard .wizard-step-head p{display:none}
  .booking-picker{grid-template-columns:minmax(0,1fr) minmax(235px,.82fr);gap:14px}
  .booking-calendar{width:100%;min-height:270px;padding:11px 14px}
  .booking-days{grid-template-rows:repeat(6,31px)}
  .booking-day,.booking-day-outside,.booking-day.is-selected{width:28px;height:28px}
  .appointment-slots{min-height:270px;padding:14px 16px}
  .wr-modal .appointment-time span{min-height:40px}
  .contact-wizard .wizard-actions{margin-top:8px}
}

@media(min-width:681px) and (max-height:800px){
  .wr-modal-head h2{font-size:34px}
  .booking-calendar,.appointment-slots{min-height:310px}
  .booking-calendar{padding:14px 22px 13px}
  .booking-calendar-nav{margin-bottom:8px}
  .booking-weekdays{height:24px;margin-bottom:3px}
  .booking-days{grid-template-rows:repeat(6,36px)}
  .booking-day,.booking-day-outside,.booking-day.is-selected{width:32px;height:32px}
  .appointment-slots{padding:17px 20px}
  .wr-modal .appointment-time span{min-height:48px}
}

/* Suprafață v16 — splash translucid și controale fără umbre verzi. */
.wr-modal-shell{
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  overflow:visible
}
.wr-modal-decor{overflow:visible;border-radius:0}
.wr-modal-blob{
  position:absolute;
  z-index:0;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
  filter:drop-shadow(0 24px 48px rgba(0,0,0,.2))
}
.wr-modal-blob path,.wr-modal-blob circle{
  fill:rgba(245,242,233,.94);
  stroke:rgba(26,26,24,.16);
  stroke-width:1.25;
  vector-effect:non-scaling-stroke
}
.wr-modal-splash{opacity:.12}
.booking-calendar{
  border-radius:28px 20px 30px 22px/22px 30px 20px 28px;
  overflow:hidden
}
.wr-modal-close,
.wr-modal-close:hover,
.contact-wizard .wizard-next,
.contact-wizard .wizard-next:hover,
.wr-modal .primary-button,
.wr-modal .primary-button:hover{
  box-shadow:none
}
.wr-modal-close:hover,
.contact-wizard .wizard-next:hover,
.wr-modal .primary-button:hover{transform:none}

@media(max-width:680px){
  .wr-modal-shell{overflow-y:auto}
  .wr-modal-blob{display:none}
  .wr-modal-shell{background:rgba(245,242,233,.94);border-radius:22px 40px 26px 34px/20px 34px 24px 42px}
  .booking-calendar{border-radius:22px}
}

/* Detalii v17 — toate suprafețele urmează geometria organică a splash-ului. */
@media(min-width:681px){
  .booking-calendar,
  .appointment-slots{
    position:relative;
    isolation:isolate;
    overflow:visible;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none
  }
  .booking-calendar::before,
  .appointment-slots::before{
    content:"";
    position:absolute;
    z-index:0;
    inset:0;
    pointer-events:none
  }
  .booking-calendar::before{
    inset:-2px 1px -1px -2px;
    border-radius:54px 16px 44px 28px/26px 58px 18px 48px;
    background:#171715;
    transform:rotate(-.35deg)
  }
  .appointment-slots::before{
    inset:-1px -2px -2px 1px;
    border:1px solid rgba(26,26,24,.14);
    border-radius:30px 60px 18px 48px/54px 22px 52px 28px;
    background:rgba(255,255,255,.74);
    transform:rotate(.28deg)
  }
  .booking-calendar::after,
  .appointment-slots::after{
    content:"";
    position:absolute;
    z-index:0;
    pointer-events:none
  }
  .booking-calendar::after{
    right:-6px;
    top:24%;
    width:15px;
    height:25px;
    border-radius:58% 42% 52% 48%/44% 63% 37% 56%;
    background:#171715;
    transform:rotate(17deg)
  }
  .appointment-slots::after{
    left:-7px;
    bottom:17%;
    width:14px;
    height:20px;
    border:1px solid rgba(26,26,24,.12);
    border-radius:45% 55% 61% 39%/58% 42% 58% 42%;
    background:rgba(255,255,255,.72);
    transform:rotate(-21deg)
  }
  .booking-calendar>*,
  .appointment-slots>*{position:relative;z-index:1}

  .wr-modal-close{
    border-radius:62% 38% 55% 45%/38% 58% 42% 62%;
    transform:rotate(3deg)
  }
  .wr-modal-close:hover{transform:rotate(-4deg) scale(1.04)}
  .contact-wizard .wizard-next,
  .wr-modal .primary-button{
    border-radius:30px 16px 27px 13px/17px 29px 15px 27px;
    transform:rotate(-.8deg)
  }
  .contact-wizard .wizard-next:hover,
  .wr-modal .primary-button:hover{transform:rotate(.35deg) scale(1.025)}
  .contact-wizard .wizard-step-head>span{
    border-radius:45% 55% 58% 42%/54% 43% 57% 46%;
    box-shadow:none;
    transform:rotate(-4deg)
  }
  .booking-calendar-nav button{
    border-radius:43% 57% 48% 52%/58% 44% 56% 42%
  }
  .booking-day.is-selected{
    border-radius:46% 54% 43% 57%/55% 44% 56% 45%;
    transform:rotate(-3deg)
  }
}

/* ============================================================
   v19 · Programare prietenoasă: perioade ale zilei, sumar ales,
   legendă calendar și marcaje „opțional" pe pași.
   ============================================================ */
.optional-chip{
  display:inline-block;margin-left:8px;padding:3px 9px;border:1px solid rgba(26,26,24,.22);border-radius:999px;
  vertical-align:middle;font-size:10px;font-style:normal;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#66665f;background:rgba(26,26,24,.04);
}
label span .optional-chip{margin-left:6px;padding:2px 7px;font-size:9px}
.wizard-skip-note{margin-right:auto;color:#77776f;font-size:12px}
.appointment-periods{display:grid;gap:14px;margin-top:12px;overflow:auto}
.appointment-time input{position:absolute;width:1px;height:1px;margin:0;padding:0;opacity:0;pointer-events:none}
.appointment-period-label{
  display:flex;align-items:center;gap:7px;margin:0 0 7px;
  font-size:10px;font-weight:850;letter-spacing:.14em;text-transform:uppercase;color:#55554f;
}
.appointment-period-label i{display:grid;place-items:center;width:20px;height:20px;border:1px solid rgba(26,26,24,.2);border-radius:50%;font-size:11px;font-style:normal}
.appointment-periods .appointment-time-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:0}
.wr-modal .appointment-time span,
.appointment-time span{
  display:flex;align-items:center;gap:9px;min-height:46px;padding:0 13px;
  border:1px solid rgba(26,26,24,.22);border-radius:12px;background:#fff;
  transition:background .18s,color .18s,border-color .18s,transform .18s,box-shadow .18s;
}
.appointment-time span>b{font-size:16px;font-variant-numeric:tabular-nums;color:#1a1a18}
.appointment-time span>small{margin-left:auto;color:#55554f;font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.appointment-time span>i.appointment-check{
  display:grid;place-items:center;width:20px;height:20px;flex:0 0 20px;
  border-radius:50%;background:#d8ff3e;box-shadow:none;color:#1a1a18;
  font-size:11px;font-style:normal;font-weight:900;opacity:0;transform:scale(.4);
  transition:opacity .22s,transform .28s cubic-bezier(.34,1.56,.64,1);
}
.appointment-time:hover span{border-color:#1a1a18;transform:translateY(-1px);box-shadow:0 6px 16px rgba(26,26,24,.1)}
.wr-modal .appointment-time input:checked+span,
.appointment-time input:checked+span{border-color:#1a1a18;background:#1a1a18;box-shadow:4px 5px 0 #d8ff3e;transform:none}
.appointment-time input:checked+span>b{color:#fff}
.appointment-time input:checked+span>small{color:#d8ff3e}
.appointment-time input:checked+span>i.appointment-check{opacity:1;transform:scale(1)}
.appointment-time.is-unavailable span{border-style:dashed;background:rgba(232,230,222,.55);opacity:.6}
.appointment-time.is-unavailable span>b,.appointment-time.is-unavailable span>small{color:#8a8982}
.appointment-time.is-unavailable:hover span{border-color:rgba(26,26,24,.2);transform:none;box-shadow:none}
.booking-legend{
  display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.12);
  color:#a9a9a4;font-size:10px;letter-spacing:.03em;
}
.booking-legend span{display:flex;align-items:center;gap:6px}
.booking-legend i{width:10px;height:10px;border-radius:50%}
.booking-legend .legend-free{background:#f5f5f3}
.booking-legend .legend-busy{background:transparent;border:1px dashed #5a5a56}
.booking-legend .legend-selected{background:#d8ff3e}
.booking-summary{
  grid-column:1 / -1;display:flex;align-items:center;gap:9px;margin:2px 0 0;padding:11px 14px;
  border:1px solid rgba(26,26,24,.6);border-radius:12px;background:#1a1a18;color:#fafaf8;font-size:13px;font-weight:650;
}
.booking-summary[hidden]{display:none}
.booking-summary i{display:grid;place-items:center;width:20px;height:20px;flex:0 0 20px;border-radius:50%;background:#d8ff3e;color:#1a1a18;font-size:11px;font-style:normal;font-weight:900}
.booking-summary b{font-weight:800}
@media(max-width:680px){
  .appointment-periods .appointment-time-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .wizard-skip-note{flex:1 1 100%;margin:0 0 6px;text-align:left}
}

/* ============================================================
   Popup-ul Legal · GDPR: aceleași secțiuni ca pagina /legal,
   deschise peste site fără ca vizitatorul să părăsească pagina.
   ============================================================ */
/* Legal se deschide ca un card plutitor clar delimitat: fundal întunecat + margini vizibile de jur împrejur. */
.legal-modal{width:min(860px,calc(100vw - 48px))}
.legal-modal::backdrop{
  background:rgba(12,12,11,.62);backdrop-filter:blur(7px);
  animation:legalBackdropIn .4s ease both;
}
@keyframes legalBackdropIn{from{opacity:0}to{opacity:1}}
.legal-modal[data-closing]::backdrop{opacity:0;transition:opacity .35s ease}
.legal-modal .wr-modal-shell{
  max-height:min(88dvh,820px);padding:clamp(20px,3vw,34px);
  background:#fafaf8;border:1px solid #d3d2cc;border-radius:24px;box-shadow:0 40px 120px rgba(0,0,0,.5);
  overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;
  scrollbar-width:thin;scrollbar-color:#1a1a18 transparent;
}
@media(max-width:680px){
  .legal-modal{width:calc(100vw - 20px)}
  .legal-modal .wr-modal-shell{max-height:calc(100dvh - 24px);padding:18px 14px;border-radius:16px}
  .legal-modal .wr-modal-head h2{font-size:26px}
}
.legal-modal .wr-modal-head h2{font-size:clamp(26px,3.4vw,40px)}
.legal-modal-nav{
  position:sticky;top:calc(-1 * clamp(20px,3vw,34px));z-index:3;display:flex;flex-wrap:wrap;gap:6px;
  margin:0 0 16px;padding:10px 0;background:linear-gradient(#fafaf8 82%,rgba(250,250,248,0));
}
.legal-modal-nav a{
  padding:6px 11px;border:1px solid #d3d2cc;border-radius:999px;background:#fff;
  font-size:11.5px;font-weight:750;text-decoration:none;color:#1a1a18;transition:background .15s,border-color .15s;
}
.legal-modal-nav a:hover{background:#d8ff3e;border-color:#1a1a18}
.legal-modal .legal-content{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.legal-modal .legal-section{min-width:0}
.legal-modal .legal-facts{grid-template-columns:112px minmax(0,1fr)}
.legal-modal .legal-facts dd{min-width:0;overflow-wrap:anywhere}
.legal-modal .legal-section{padding:clamp(16px,2.4vw,24px);border:1px solid #e2e1db;border-radius:16px;background:#fff;scroll-margin-top:64px}
.legal-modal .legal-section h2{margin:0 0 12px;font-size:clamp(19px,2.4vw,25px);letter-spacing:-.03em}
.legal-modal .legal-section h3{margin:18px 0 7px;font-size:15px;letter-spacing:-.01em}
.legal-modal .legal-section p{margin:0 0 10px;font-size:13.5px;line-height:1.6;color:#454540}
.legal-modal .legal-section ul{margin:0 0 10px;padding-left:19px;display:grid;gap:5px}
.legal-modal .legal-section li{font-size:13.5px;line-height:1.55;color:#454540}
.legal-modal .legal-section a{font-weight:700;text-underline-offset:3px}
.legal-modal .legal-facts{display:grid;grid-template-columns:112px 1fr;gap:7px 12px;margin:12px 0;padding:12px 14px;border-radius:11px;background:#fafaf8}
.legal-modal .legal-facts dt{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#66665f;align-self:center}
.legal-modal .legal-facts dd{margin:0;font-size:13px;font-weight:650}
.legal-modal .legal-note{padding:10px 13px;border-left:3px solid #d8ff3e;border-radius:0 9px 9px 0;background:#fafaf8;font-size:12.5px;color:#66665f}
.legal-modal .legal-table{width:100%;border:1px solid #e2e1db;border-radius:11px;border-collapse:separate;border-spacing:0;overflow:hidden;margin:0 0 10px;display:block;overflow-x:auto}
.legal-modal .legal-table th{background:#fafaf8;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#66665f;text-align:left;padding:9px 11px}
.legal-modal .legal-table td{font-size:12.5px;line-height:1.5;padding:10px 11px;vertical-align:top;border-top:1px solid #efeee9}
@media(max-width:560px){
  .legal-modal .legal-facts{grid-template-columns:1fr;gap:2px 0}
  .legal-modal .legal-facts dd{margin-bottom:7px}
  .legal-modal-nav{gap:5px}
  .legal-modal-nav a{font-size:10.5px;padding:5px 9px}
}
