/* BUTTONS ---------------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--ff-ui);
  font-size:.95rem;font-weight:600;
  padding:13px 20px;
  border-radius:var(--r-md);
  border:1.5px solid transparent;
  cursor:pointer;
  text-decoration:none;
  white-space:normal;
  min-height:46px;
  transition:transform .15s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}
.btn:active{transform:translateY(1px);}
.btn svg{width:18px;height:18px;flex-shrink:0;}

.btn-primary{
  background:var(--accent);color:var(--surface);
  border-color:var(--accent);
  box-shadow:3px 3px 0 var(--text);
}
.btn-primary:hover{box-shadow:5px 5px 0 var(--text);}

.btn-wa{
  background:var(--wa-green);color:#fff;
  border-color:var(--wa-green);
  box-shadow:3px 3px 0 var(--text);
}
.btn-wa:hover{box-shadow:5px 5px 0 var(--text);}

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

.btn-ghost-light{
  background:transparent;color:var(--text-on-dark);
  border-color:rgba(236,227,203,.55);
}
.btn-ghost-light:hover{background:rgba(236,227,203,.12);}

.btn-sm{padding:9px 14px;font-size:.86rem;min-height:38px;}

/* CTA group */
.cta-group{
  display:flex;flex-direction:column;gap:10px;
  width:100%;
}
.cta-group .btn{width:100%;}
@media(min-width:560px){
  .cta-group{flex-direction:row;flex-wrap:wrap;width:auto;}
  .cta-group .btn{width:auto;}
}

/* CHIPS / PILLS ---------------------------------------------------------- */
.chip{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--ff-ui);
  font-size:.84rem;font-weight:500;
  padding:7px 14px;
  border-radius:99px;
  background:var(--accent-soft);
  color:var(--accent);
  border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);
}
.chip svg{width:14px;height:14px;}

.chip-check{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--ff-ui);font-size:.92rem;
  color:var(--text-2);
  padding:6px 0;
}
.chip-check::before{
  content:"";width:18px;height:18px;flex-shrink:0;
  background:var(--accent-soft);
  border-radius:50%;
  background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7A3A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:center;background-size:12px 12px;
}

/* CARDS - risograph ------------------------------------------------------ */
.c-riso{
  background:var(--surface);
  border:1.5px solid var(--text);
  border-radius:12px;
  padding:24px;
  box-shadow:5px 5px 0 var(--accent);
  transition:transform .2s ease, box-shadow .2s ease;
}
.c-riso:hover{
  transform:translate(-2px,-2px);
  box-shadow:7px 7px 0 var(--accent);
}
@media (prefers-reduced-motion:reduce){
  .c-riso{transition:none;}
  .c-riso:hover{transform:none;box-shadow:5px 5px 0 var(--accent);}
}
.c-riso--alt{
  background:var(--surface-deep);
  border-color:var(--surface-deep);
  color:var(--text-on-dark);
  box-shadow:5px 5px 0 var(--accent-on-dark);
}
.c-riso--alt h3,
.c-riso--alt :where(h3,p,li,span,small,strong){color:var(--text-on-dark);}
.c-riso--alt .svc-num{color:var(--accent-on-dark);}
.c-riso--alt:hover{box-shadow:7px 7px 0 var(--accent-on-dark);}

/* FORM ------------------------------------------------------------------- */
.form{display:grid;gap:14px;}
.form-row{display:grid;grid-template-columns:1fr;gap:14px;}
@media(min-width:560px){.form-row{grid-template-columns:1fr 1fr;}}
.field{min-width:0;display:flex;flex-direction:column;gap:6px;}
.field label{
  font-family:var(--ff-ui);font-size:.82rem;font-weight:600;
  color:var(--text-2);text-transform:uppercase;letter-spacing:.08em;
}
.field input,.field select,.field textarea{
  width:100%;min-width:0;
  font-family:var(--ff-ui);font-size:1rem;
  padding:12px 14px;
  background:var(--surface);
  border:1.5px solid var(--border);
  border-radius:var(--r-md);
  color:var(--text);
}
.field textarea{resize:vertical;min-height:120px;}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:0;border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-soft);
}

/* MODAL mentions legales -------------------------------------------------- */
.ml-modal{
  position:fixed;inset:0;
  z-index:var(--z-modal);
  display:flex;align-items:center;justify-content:center;
  padding:20px;
}
.ml-overlay{
  position:absolute;inset:0;
  background:rgba(20,18,12,.62);
}
.ml-box{
  position:relative;
  background:var(--surface);
  border-radius:14px;
  padding:28px 24px;
  max-width:520px;width:100%;
  max-height:85vh;overflow-y:auto;
  box-shadow:0 30px 60px rgba(0,0,0,.25);
}
.ml-box h2{font-size:1.4rem;margin-bottom:14px;}
.ml-box h3{font-size:.95rem;font-family:var(--ff-ui);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-top:18px;margin-bottom:6px;}
.ml-box p{font-size:.92rem;color:var(--text-2);margin-bottom:8px;}
.ml-close{
  position:absolute;top:12px;right:12px;
  width:36px;height:36px;border-radius:50%;
  display:grid;place-items:center;
  background:var(--bg-alt);color:var(--text);
  font-size:1.2rem;
}
.ml-close:hover{background:var(--accent);color:var(--surface);}

/* LIGHTBOX --------------------------------------------------------------- */
.lightbox{
  position:fixed;inset:0;
  z-index:var(--z-modal);
  background:rgba(20,18,12,.93);
  display:flex;align-items:center;justify-content:center;
  padding:20px;
}
.lightbox img{
  max-width:92vw;max-height:88vh;
  object-fit:contain;
  border-radius:8px;
  box-shadow:0 20px 60px rgba(0,0,0,.6);
}
.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;
  border:1px solid rgba(255,255,255,.2);
}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{background:rgba(255,255,255,.22);}
.lb-close{top:20px;right:20px;}
.lb-prev{left:14px;top:50%;transform:translateY(-50%);}
.lb-next{right:14px;top:50%;transform:translateY(-50%);}
@media(min-width:768px){
  .lb-close{top:28px;right:28px;}
  .lb-prev{left:28px;}
  .lb-next{right:28px;}
}

/* RATING-BADGE hero ------------------------------------------------------ */
.rating-badge{
  display:inline-flex;align-items:center;gap:10px;
  background:color-mix(in srgb,var(--surface) 86%,transparent);
  padding:8px 14px;border-radius:99px;
  border:1px solid var(--border);
  box-shadow:0 6px 18px rgba(0,0,0,.06);
  font-family:var(--ff-ui);font-size:.86rem;font-weight:500;color:var(--text);
  text-decoration:none;
  backdrop-filter:blur(6px);
}
.rating-badge strong{font-weight:700;color:var(--text);}
.rating-badge .stars{display:inline-flex;gap:2px;color:var(--gold);}
.rating-badge .stars svg{width:14px;height:14px;}
