/* RJ Nail & Spa — Serviços (frontend) */
.rjsv{--berry:#7C2357;--berry-deep:#591640;--rose:#C85C86;--rose-soft:#E8A9C0;
  --blush:#F6E4EC;--gold:#C9A24B;--cream:#FCF6F3;--ink:#2A121F;--muted:#7A5C68;--line:#EAD7DF;
  font-family:'Jost',system-ui,sans-serif;color:var(--ink)}
.rjsv *{box-sizing:border-box}

/* abas */
.rjsv-tabs{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin:0 0 1.8rem}
.rjsv-tab{padding:.5rem 1.1rem;border-radius:999px;border:1px solid var(--rose-soft);
  background:#fff;color:var(--berry);font:inherit;font-size:.9rem;cursor:pointer;transition:.2s}
.rjsv-tab:hover{background:var(--blush)}
.rjsv-tab.is-active{background:var(--berry);color:#fff;border-color:var(--berry)}

/* grelha */
.rjsv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.rjsv[data-cols="2"] .rjsv-grid{grid-template-columns:repeat(2,1fr)}
.rjsv[data-cols="4"] .rjsv-grid{grid-template-columns:repeat(4,1fr)}
.rjsv-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;
  display:flex;flex-direction:column;transition:.25s}
.rjsv-card:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(124,35,87,.14);border-color:var(--rose-soft)}
.rjsv-card.is-hidden{display:none}
.rjsv-thumb{aspect-ratio:4/3;background-size:cover;background-position:center;
  background-color:#efd9e2;position:relative;display:grid;place-items:center}
.rjsv-noimg{font-family:'Playfair Display',serif;font-size:2rem;color:#c99ab0;font-weight:700}
.rjsv-dur{position:absolute;bottom:10px;left:10px;background:rgba(42,18,31,.78);color:#fff;
  font-size:.72rem;padding:.25rem .6rem;border-radius:999px;letter-spacing:.03em}
.rjsv-body{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;flex:1}
.rjsv-name{font-family:'Playfair Display',serif;font-size:1.2rem;margin:0 0 .35rem;line-height:1.2;color:var(--ink)}
.rjsv-desc{font-size:.88rem;color:var(--muted);margin:0 0 1rem}
.rjsv-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.rjsv-price{font-family:'Playfair Display',serif;font-weight:700;color:var(--berry);font-size:1.2rem;white-space:nowrap}
.rjsv-price small{font-family:'Jost';font-weight:400;font-size:.68rem;color:var(--muted);letter-spacing:.06em}
.rjsv-btn{background:var(--berry);color:#fff;border:none;border-radius:999px;
  padding:.6rem 1.2rem;font:inherit;font-size:.9rem;cursor:pointer;transition:.2s}
.rjsv-btn:hover{background:var(--berry-deep)}
.rjsv-empty{grid-column:1/-1;text-align:center;color:var(--muted);padding:2rem}

/* modal */
.rjsv-modal{position:fixed;inset:0;background:rgba(42,18,31,.55);display:none;
  align-items:center;justify-content:center;padding:1rem;z-index:99999}
.rjsv-modal.is-open{display:flex}
.rjsv-modal-box{background:#fff;border-radius:20px;max-width:440px;width:100%;
  padding:1.8rem;position:relative;max-height:92vh;overflow:auto;box-shadow:0 30px 70px rgba(0,0,0,.3)}
.rjsv-close{position:absolute;top:12px;right:16px;background:none;border:none;font-size:1.8rem;
  line-height:1;color:var(--muted);cursor:pointer}
.rjsv-modal-box h3{font-family:'Playfair Display',serif;font-size:1.5rem;margin:0 0 .2rem;color:var(--ink)}
.rjsv-modal-serv{color:var(--gold);font-weight:500;margin:0 0 1.2rem;font-size:.95rem}
.rjsv-modal-box label{display:block;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);margin:.9rem 0 .35rem}
.rjsv-modal-box input{width:100%;padding:.75rem .9rem;border:1px solid var(--line);border-radius:10px;
  font:inherit;font-size:.95rem;background:var(--cream)}
.rjsv-modal-box input:focus{outline:2px solid var(--rose-soft);border-color:transparent}
.rjsv-slots{display:flex;flex-wrap:wrap;gap:.45rem;min-height:42px;align-content:flex-start}
.rjsv-hint{color:var(--muted);font-size:.86rem}
.rjsv-slot{padding:.5rem .85rem;border:1px solid var(--rose-soft);border-radius:9px;background:#fff;
  color:var(--berry);font:inherit;font-size:.86rem;cursor:pointer;transition:.15s}
.rjsv-slot:hover{background:var(--blush)}
.rjsv-slot.is-sel{background:var(--berry);color:#fff;border-color:var(--berry)}
.rjsv-slot small{opacity:.7;font-size:.7rem}
.rjsv-msg{min-height:1.2em;font-size:.86rem;margin:.9rem 0 0}
.rjsv-msg.err{color:#c0392b}.rjsv-msg.ok{color:#1e824c}
.rjsv-confirm{width:100%;margin-top:1rem;background:var(--gold);color:#3a2a08;border:none;
  border-radius:999px;padding:.85rem;font:inherit;font-weight:500;font-size:.98rem;cursor:pointer;transition:.2s}
.rjsv-confirm:hover:not(:disabled){filter:brightness(1.05)}
.rjsv-confirm:disabled{opacity:.5;cursor:not-allowed}
.rjsv-confirm.loading{opacity:.7;cursor:wait}

@media(max-width:900px){.rjsv-grid,.rjsv[data-cols="2"] .rjsv-grid,.rjsv[data-cols="4"] .rjsv-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.rjsv-grid,.rjsv[data-cols="2"] .rjsv-grid,.rjsv[data-cols="4"] .rjsv-grid{grid-template-columns:1fr}}
