.nife-booking{--nife-accent:#d2ad45;--nife-button:#111;--nife-bg:#fff;--nife-text:#111;--nife-muted:#6b6770;--nife-soft:color-mix(in srgb,var(--nife-accent) 9%,#fff);max-width:1080px;margin:2rem auto;padding:clamp(1rem,3vw,2rem);border:1px solid rgba(0,0,0,.08);border-radius:var(--nife-radius,24px);box-shadow:0 22px 70px rgba(0,0,0,.10);background:var(--nife-bg);color:var(--nife-text);font-family:inherit}.nife-booking--minimal{box-shadow:none;border-radius:12px}.nife-booking--full-width{max-width:none}.nife-booking__steps{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-bottom:1.25rem}.nife-booking__steps span{padding:.7rem .8rem;border-radius:999px;background:#f6f2ef;color:var(--nife-muted);font-size:.82rem;font-weight:800;text-align:center}.nife-booking__steps span.is-active{background:var(--nife-accent);color:#fff}.nife-booking__header{margin-bottom:1.2rem}.nife-booking__header h2{margin:.25rem 0;font-size:clamp(1.75rem,4vw,3rem);line-height:1.04;letter-spacing:-.03em}.nife-booking__header p:last-child{max-width:780px;color:var(--nife-muted);font-size:1rem}.nife-booking__eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:900;color:var(--nife-accent);margin:0 0 .6rem}.nife-booking__panel,.nife-booking__slots,.nife-booking__customer{background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.96));border:1px solid rgba(0,0,0,.07);border-radius:calc(var(--nife-radius,24px) - 6px);padding:clamp(1rem,2vw,1.35rem);margin:1rem 0}.nife-booking__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:.4rem 0}.nife-booking label{display:flex;flex-direction:column;gap:.45rem;font-weight:800}.nife-booking label span{font-size:.92rem}.nife-booking input,.nife-booking select,.nife-booking textarea{width:100%;padding:1rem;border:1px solid rgba(0,0,0,.14);border-radius:16px;font:inherit;background:#fff;color:var(--nife-text);transition:border-color .18s,box-shadow .18s,transform .18s}.nife-booking input:focus,.nife-booking select:focus,.nife-booking textarea:focus{outline:none;border-color:var(--nife-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--nife-accent) 20%,transparent)}.nife-booking__slots{background:var(--nife-soft)}.nife-booking__slot-list{display:flex;flex-wrap:wrap;gap:.7rem}.nife-booking__slot,.nife-booking__button{border:0;border-radius:999px;padding:.9rem 1.25rem;cursor:pointer;font-weight:900;background:var(--nife-button);color:#fff;box-shadow:0 8px 20px rgba(0,0,0,.12);transition:transform .16s,opacity .16s,box-shadow .16s}.nife-booking__slot:hover,.nife-booking__button:hover{transform:translateY(-1px);opacity:.92;box-shadow:0 12px 26px rgba(0,0,0,.16)}.nife-booking__slot.is-selected{background:var(--nife-accent)}.nife-booking__customer h3{font-size:clamp(1.4rem,3vw,2rem);margin:.2rem 0 1rem}.nife-booking__customer[hidden]{display:none}.nife-booking__message{margin-top:1rem;font-weight:900}.nife-booking__message.is-error{color:#b00020}.nife-booking__message.is-success{color:#176b36}.nife-booking__loading{display:inline-flex;align-items:center;gap:.55rem}.nife-booking__loading:before{content:"";width:1rem;height:1rem;border-radius:50%;border:2px solid rgba(0,0,0,.15);border-top-color:var(--nife-accent);animation:nifeSpin .8s linear infinite}@keyframes nifeSpin{to{transform:rotate(360deg)}}@media(max-width:760px){.nife-booking__grid,.nife-booking__steps{grid-template-columns:1fr}.nife-booking{margin:1rem;padding:1rem}.nife-booking__slot{flex:1 0 calc(50% - .7rem)}}
.nife-booking__button:disabled{opacity:.65;cursor:not-allowed;transform:none;box-shadow:none}
@media(max-width:600px){
  .nife-booking{width:auto;max-width:calc(100vw - 20px);margin:10px auto;padding:14px;border-radius:18px;overflow:hidden}
  .nife-booking__header h2{font-size:1.65rem;line-height:1.1}
  .nife-booking__panel,.nife-booking__slots,.nife-booking__customer{padding:12px;border-radius:16px}
  .nife-booking input,.nife-booking select,.nife-booking textarea{font-size:16px;min-height:48px;padding:12px;border-radius:14px}
  .nife-booking__slot-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .nife-booking__slot{width:100%;padding:14px 10px;min-height:48px}
  .nife-booking__button{width:100%;min-height:52px;margin-top:10px}
  .nife-booking__message{font-size:.95rem;line-height:1.35}
}

.nife-booking__policy{margin:1rem 0;padding:1rem;border:1px solid color-mix(in srgb,var(--nife-accent) 35%,rgba(0,0,0,.12));border-radius:16px;background:color-mix(in srgb,var(--nife-accent) 7%,#fff)}
.nife-booking__policy h3{margin:0 0 .7rem;font-size:1.15rem}
.nife-booking__policy-text{max-height:220px;overflow:auto;padding:.75rem;border-radius:12px;background:rgba(255,255,255,.72);border:1px solid rgba(0,0,0,.06);font-size:.95rem;line-height:1.45}
.nife-booking__policy-text p{margin:.25rem 0 .55rem}.nife-booking__policy-agree{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:.7rem;margin-top:.85rem;font-weight:800}.nife-booking__policy-agree input{width:20px!important;min-width:20px;height:20px;min-height:20px;margin-top:.15rem}.nife-booking__policy-agree span{font-size:.94rem;line-height:1.35}
@media(max-width:600px){.nife-booking__policy{padding:.85rem}.nife-booking__policy-text{max-height:190px;font-size:.9rem}.nife-booking__policy-agree{gap:.6rem}}
