/* BUTTONS */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 22px;
  font-family:var(--ff-ui);
  font-size:1rem;font-weight:600;
  border-radius:999px;
  text-decoration:none;
  border:1px solid transparent;
  transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast), transform var(--t-fast);
  min-height:48px;
  letter-spacing:.01em;
}
.btn:hover{transform:translateY(-1px);}
.btn-primary{background:var(--accent);color:#fff;}
.btn-primary:hover{background:var(--accent-2);color:#fff;}
.btn-wa{background:var(--wa-green);color:#fff;}
.btn-wa:hover{background:#1ebc59;color:#fff;}
.btn-ghost{background:transparent;color:var(--text);border-color:var(--border-strong);}
.btn-ghost:hover{background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text);}
.btn-ghost-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.5);}
.btn-ghost-light:hover{background:rgba(255,255,255,.12);color:#fff;}
.btn svg{width:18px;height:18px;flex-shrink:0;}

/* CHIPS */
.chip{
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 14px;
  background:color-mix(in srgb,var(--accent) 12%,var(--bg));
  color:var(--accent);
  border-radius:999px;
  font-family:var(--ff-ui);
  font-size:.86rem;
  font-weight:600;
  letter-spacing:.01em;
  border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);
}
.chip svg{width:14px;height:14px;}

/* CARDS - line */
.c-line{
  border:1px solid var(--border-strong);
  border-radius:14px;
  padding:26px;
  background:transparent;
  transition:transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base);
}
.c-line:hover{
  transform:translateY(-3px);
  border-color:var(--accent);
  box-shadow:0 8px 28px rgba(46,40,32,.08);
}

/* FORMS */
.field{
  display:flex;flex-direction:column;gap:6px;
  min-width:0;
}
.field label{
  font-family:var(--ff-ui);
  font-size:.86rem;
  font-weight:600;
  color:var(--text);
  letter-spacing:.01em;
}
.field input,
.field textarea,
.field select{
  width:100%;
  min-width:0;
  padding:13px 14px;
  background:var(--surface);
  border:1px solid var(--border-strong);
  border-radius:10px;
  color:var(--text);
  font-size:1rem;
  transition:border-color var(--t-fast), background var(--t-fast);
}
.field textarea{min-height:120px;resize:vertical;}
.field input:focus,
.field textarea:focus,
.field select:focus{
  outline:none;
  border-color:var(--accent);
  background:#fff;
}
.form-message{
  margin-top:8px;
  font-size:.94rem;
  padding:10px 14px;
  border-radius:8px;
  display:none;
}
.form-message.is-success{display:block;background:color-mix(in srgb,var(--accent) 16%,var(--bg));color:var(--accent);}
.form-message.is-error{display:block;background:#FBE9E7;color:#9C2A1A;}

/* LIGHTBOX */
.lightbox{
  position:fixed;inset:0;
  background:rgba(20,18,12,.92);
  z-index:var(--z-modal);
  display:flex;align-items:center;justify-content:center;
  padding:20px;
}
.lightbox[hidden]{display:none !important;}
.lb-image{
  max-width:90vw;
  max-height:88vh;
  width:auto;height:auto;
  object-fit:contain;
  border-radius:6px;
  box-shadow:0 12px 60px rgba(0,0,0,.4);
}
.lb-close,.lb-prev,.lb-next{
  position:absolute;
  width:48px;height:48px;
  border-radius:50%;
  background:rgba(255,255,255,.12);
  color:#fff;
  display:grid;place-items:center;
  font-size:1.6rem;
  line-height:1;
  transition:background var(--t-fast);
}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{background:rgba(255,255,255,.22);}
.lb-close{top:18px;right:18px;}
.lb-prev{left:18px;top:50%;transform:translateY(-50%);}
.lb-next{right:18px;top:50%;transform:translateY(-50%);}
@media (max-width:640px){
  .lb-prev,.lb-next{top:auto;bottom:18px;transform:none;}
  .lb-prev{left:18px;}
  .lb-next{right:18px;}
}

/* MODAL mentions legales */
.modal{
  position:fixed;inset:0;
  z-index:var(--z-modal);
  display:flex;align-items:center;justify-content:center;
  padding:20px;
}
.modal[hidden]{display:none !important;}
.modal-overlay{
  position:absolute;inset:0;
  background:rgba(20,18,12,.55);
}
.modal-box{
  position:relative;
  width:100%;max-width:520px;
  background:var(--bg);
  border-radius:16px;
  padding:32px 28px 28px;
  box-shadow:0 18px 60px rgba(20,18,12,.32);
  max-height:88vh;
  overflow-y:auto;
}
.modal-close{
  position:absolute;top:12px;right:12px;
  width:38px;height:38px;border-radius:50%;
  display:grid;place-items:center;
  color:var(--text);
  font-size:1.4rem;line-height:1;
  background:color-mix(in srgb,var(--text) 6%,transparent);
}
.modal-close:hover{background:color-mix(in srgb,var(--text) 10%,transparent);}
.modal-box h2{
  font-family:var(--ff-display);
  font-size:1.6rem;
  margin:0 0 12px;
  color:var(--text);
}
.modal-box p{
  font-size:.94rem;
  color:var(--text-2);
  line-height:1.55;
  margin:0 0 12px;
}
.modal-box strong{color:var(--text);}
