/* ──────────────── Callback Modal (compartido) ──────────────── */
.cb-modal{
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:center;justify-content:center;
  padding:clamp(1rem,3vw,2rem);
  opacity:0;pointer-events:none;
  transition:opacity .25s ease;
}
.cb-modal.is-open{opacity:1;pointer-events:auto}
.cb-backdrop{
  position:absolute;inset:0;cursor:pointer;
  background:rgba(8,5,15,.72);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
.cb-panel{
  position:relative;z-index:1;
  width:100%;max-width:520px;
  background:linear-gradient(160deg,#1A0B2E 0%,#2E1065 60%,#3D1879 100%);
  color:#fff;
  border-radius:22px;
  padding:2.5rem 2.25rem 2rem;
  box-shadow:0 32px 80px -16px rgba(0,0,0,.65),0 0 0 1px rgba(168,85,247,.14) inset;
  overflow:hidden;
  transform:translateY(16px) scale(.98);
  transition:transform .35s cubic-bezier(.4,0,.2,1);
  max-height:calc(100vh - 2rem);
}
.cb-modal.is-open .cb-panel{transform:translateY(0) scale(1)}

.cb-decor{position:absolute;pointer-events:none;border-radius:50%;filter:blur(60px);opacity:.4}
.cb-decor-1{top:-90px;right:-70px;width:220px;height:220px;background:radial-gradient(circle,rgba(168,85,247,.55),transparent 70%)}
.cb-decor-2{bottom:-110px;left:-90px;width:240px;height:240px;background:radial-gradient(circle,rgba(207,255,101,.12),transparent 70%)}

.cb-close{
  position:absolute;top:.9rem;right:.9rem;z-index:3;
  width:32px;height:32px;border-radius:50%;
  display:grid;place-items:center;
  background:rgba(255,255,255,.06);color:rgba(255,255,255,.7);
  border:1px solid rgba(255,255,255,.12);cursor:pointer;
  transition:background .2s,transform .2s,border-color .2s,color .2s;
}
.cb-close:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.24);color:#fff;transform:rotate(90deg)}
.cb-close svg{width:14px;height:14px}

.cb-head{position:relative;z-index:2;text-align:center;margin-bottom:2rem}
.cb-head h2,
.cb-head .cb-title{
  display:block;
  color:#fff;font-size:clamp(1.55rem,3vw,1.9rem);
  line-height:1.2;letter-spacing:-.025em;margin:0 0 .65rem;font-weight:700;
  font-family:var(--display,'Bricolage Grotesque',sans-serif);
}
.cb-modal .cb-head h2 em,
.cb-modal .cb-head .cb-title em{font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;color:#cfff65}
.cb-head p{color:rgba(255,255,255,.68);font-size:.93rem;line-height:1.55;margin:0;max-width:38ch;margin-left:auto;margin-right:auto}

.cb-form{position:relative;z-index:2;display:flex;flex-direction:column;gap:.85rem}
.cb-label{
  font-size:.78rem;font-weight:600;color:rgba(255,255,255,.85);
  letter-spacing:.01em;margin:0 0 .15rem;
}
.cb-row{display:flex;flex-direction:column;gap:.7rem}
.cb-input{
  display:flex;align-items:center;gap:.6rem;
  background:rgba(255,255,255,.06);color:#fff;
  border-radius:12px;padding:.1rem 1rem;
  border:1px solid rgba(255,255,255,.14);
  transition:box-shadow .2s,border-color .2s,background .2s;
}
.cb-input:focus-within{
  background:rgba(255,255,255,.1);
  border-color:rgba(207,255,101,.5);
  box-shadow:0 0 0 3px rgba(207,255,101,.18);
}
.cb-prefix{
  font-weight:600;color:rgba(255,255,255,.6);font-size:.92rem;
  flex-shrink:0;padding-right:.7rem;border-right:1px solid rgba(255,255,255,.14);
}
.cb-input input{
  flex:1;min-width:0;border:0;outline:0;background:transparent;
  font:inherit;font-size:.95rem;padding:.95rem 0;color:#fff;
}
.cb-input input::placeholder{color:rgba(255,255,255,.35)}
.cb-submit{
  display:inline-flex;align-items:center;justify-content:center;gap:.45rem;
  padding:1rem 1.2rem;border:0;cursor:pointer;
  background:linear-gradient(135deg,#cfff65,#b8ee3f);
  color:#0a0a0a;font-family:'Bricolage Grotesque',sans-serif;font-weight:700;
  font-size:.95rem;letter-spacing:-.005em;border-radius:12px;
  box-shadow:0 12px 28px -10px rgba(207,255,101,.45);
  transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s;
}
.cb-submit:hover{transform:translateY(-1px);box-shadow:0 16px 32px -10px rgba(207,255,101,.55)}
.cb-submit .arr{width:13px;height:13px;transition:transform .2s cubic-bezier(.4,0,.2,1)}
.cb-submit:hover .arr{transform:translateX(3px)}
.cb-form-ok{
  margin:.5rem 0 0;font-size:.88rem;color:#cfff65;font-weight:600;text-align:center;
}

.cb-alt{
  position:relative;z-index:2;
  margin-top:1.85rem;padding-top:1.5rem;
  border-top:1px solid rgba(255,255,255,.08);
  text-align:center;
}
.cb-alt-title{
  margin:0 0 1rem;font-size:.88rem;color:rgba(255,255,255,.85);font-weight:600;
  line-height:1.45;
}
.cb-alt-title span{color:rgba(255,255,255,.55);font-weight:400;display:block;margin-top:.15rem}
.cb-alt-row{
  display:flex;align-items:center;justify-content:center;gap:.7rem;flex-wrap:wrap;
}
.cb-hours-badge{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.55rem .9rem;border-radius:999px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1);
  font-size:.78rem;font-weight:500;color:rgba(255,255,255,.7);letter-spacing:.005em;
}
.cb-hours-badge svg{width:13px;height:13px;color:#cfff65;flex-shrink:0}
.cb-tel-btn{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.6rem 1.1rem;border-radius:999px;
  background:rgba(207,255,101,.1);
  border:1px solid rgba(207,255,101,.35);
  color:#cfff65;font-weight:700;font-family:'Bricolage Grotesque',sans-serif;
  font-size:.95rem;letter-spacing:-.005em;text-decoration:none;
  transition:background .2s,border-color .2s,color .2s,transform .2s;
}
.cb-tel-btn:hover{
  background:#cfff65;border-color:#cfff65;color:#0a0a0a;
  transform:translateY(-1px);
}
.cb-tel-btn svg{width:14px;height:14px;flex-shrink:0}
.cb-coverage{
  margin:1rem 0 0;font-size:.72rem;color:rgba(255,255,255,.42);
  letter-spacing:.02em;
}

@media(max-width:520px){
  .cb-panel{padding:2rem 1.4rem 1.6rem;border-radius:20px}
  .cb-head{margin-bottom:1.6rem}
  .cb-head h2,
  .cb-head .cb-title{font-size:1.4rem}
  .cb-alt-row{flex-direction:column;gap:.55rem}
  .cb-hours-badge,.cb-tel-btn{width:100%;justify-content:center}
}
