/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:14px 22px;border-radius:999px;font-family:var(--ff-ui);font-weight:600;font-size:.95rem;
  text-decoration:none;cursor:pointer;transition:transform var(--t-fast),background var(--t-fast),color var(--t-fast),box-shadow var(--t-fast);
  border:1.5px solid transparent;line-height:1;}
.btn svg{width:18px;height:18px;flex-shrink:0;}
.btn:hover{text-decoration:none;transform:translateY(-2px);}
@media (prefers-reduced-motion:reduce){.btn:hover{transform:none;}}

.btn-primary{background:var(--accent);color:#fff;box-shadow:0 6px 16px rgba(74,139,127,0.25);}
.btn-primary:hover{background:var(--primary);box-shadow:0 10px 22px rgba(31,53,49,0.30);}

.btn-wa{background:var(--wa-green);color:#fff;box-shadow:0 6px 16px rgba(37,211,102,0.25);}
.btn-wa:hover{background:#1FB957;color:#fff;}

.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,0.5);}
.btn-ghost:hover{background:rgba(255,255,255,0.12);border-color:#fff;}

.btn-outline{background:transparent;color:var(--text);border-color:var(--text);}
.btn-outline:hover{background:var(--text);color:var(--bg);}

.btn-block{width:100%;}

/* CARDS plain (impose layout.card=plain) */
.c-plain{background:color-mix(in srgb,var(--text) 4%,var(--bg));border-radius:var(--r-lg);padding:28px;}

/* CHIPS */
.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;
  background:color-mix(in srgb,var(--accent) 15%,var(--bg));color:var(--primary);
  font-family:var(--ff-ui);font-size:.82rem;font-weight:500;border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);}
.chip svg{width:12px;height:12px;color:var(--accent);}

/* RATING BADGE */
.rating-badge{display:inline-flex;align-items:center;gap:10px;padding:8px 14px;border-radius:999px;
  background:rgba(255,255,255,0.92);color:var(--text);font-family:var(--ff-ui);font-size:.92rem;font-weight:500;
  text-decoration:none;box-shadow:0 4px 14px rgba(0,0,0,0.08);transition:transform var(--t-fast);}
.rating-badge:hover{transform:translateY(-2px);text-decoration:none;color:var(--text);}
.rating-badge .stars{display:inline-flex;gap:2px;}
.rating-badge .stars svg{width:16px;height:16px;color:var(--star);}
.rating-badge strong{font-weight:600;color:var(--primary);}
.rating-badge span{color:var(--text-2);font-size:.86rem;}

/* DISPO DOT */
.dispo-line{display:inline-flex;align-items:center;gap:8px;font-family:var(--ff-ui);font-size:.86rem;color:#fff;}
.dispo-dot{width:9px;height:9px;border-radius:50%;background:#4ade80;display:inline-block;flex-shrink:0;
  box-shadow:0 0 0 0 rgba(74,222,128,0.6);animation:pulse 2.2s infinite;}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(74,222,128,0.6);}
  70%{box-shadow:0 0 0 9px rgba(74,222,128,0);}
  100%{box-shadow:0 0 0 0 rgba(74,222,128,0);}
}
@media (prefers-reduced-motion:reduce){.dispo-dot{animation:none;}}

/* MODAL */
.modal{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:20px;}
.modal[hidden]{display:none;}
.modal-overlay{position:absolute;inset:0;background:rgba(31,53,49,0.55);backdrop-filter:blur(4px);}
.modal-box{position:relative;background:var(--bg);border-radius:var(--r-lg);max-width:520px;width:100%;
  padding:32px 28px;max-height:88vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,0.25);}
.modal-close{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;
  display:grid;place-items:center;background:color-mix(in srgb,var(--text) 8%,transparent);}
.modal-close svg{width:18px;height:18px;color:var(--text);}
.modal-box h2{margin-bottom:18px;font-size:1.5rem;}
.modal-box h3{margin-top:18px;margin-bottom:4px;font-size:1rem;color:var(--accent);font-family:var(--ff-ui);font-weight:600;text-transform:uppercase;letter-spacing:.05em;}
.modal-box p{font-size:.92rem;color:var(--text-2);line-height:1.6;}

/* LIGHTBOX */
.lightbox{position:fixed;inset:0;z-index:var(--z-modal);background:rgba(31,53,49,0.94);
  display:flex;align-items:center;justify-content:center;padding:20px;}
.lightbox[hidden]{display:none;}
.lightbox img{max-width:92vw;max-height:88vh;width:auto;height:auto;border-radius:var(--r-md);object-fit:contain;}
.lightbox button{position:absolute;background:rgba(255,255,255,0.10);color:#fff;border-radius:50%;
  width:44px;height:44px;display:grid;place-items:center;font-size:1.6rem;line-height:1;}
.lightbox button:hover{background:rgba(255,255,255,0.20);}
.lb-close{top:18px;right:18px;}
.lb-prev{left:18px;top:50%;transform:translateY(-50%);}
.lb-next{right:18px;top:50%;transform:translateY(-50%);}
