/* Distroil - botones flotantes + barra inferior movil */
:root{--dp-f-ink:#14181C;--dp-f-amber:#FFB400;--dp-f-wa:#25D366;--dp-f-line:#E7EAEE}

/* ============ FLOTANTES (escritorio) ============ */
.dp-fabs{position:fixed;right:26px;bottom:26px;z-index:99990;display:flex;flex-direction:column;gap:14px;
  align-items:flex-end;font-family:'Open Sans',Arial,sans-serif}
.dp-fab{position:relative;display:flex;align-items:center;gap:0;border:0;cursor:pointer;padding:0;
  background:transparent;text-decoration:none!important;-webkit-tap-highlight-color:transparent}
.dp-fab .dp-fab-txt{
  max-width:0;overflow:hidden;white-space:nowrap;opacity:0;transform:translateX(8px);
  font:700 12.5px/1 'Open Sans',Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;
  color:var(--dp-f-ink);background:#fff;border-radius:999px;box-shadow:0 8px 24px rgba(16,20,24,.14);
  transition:max-width .35s cubic-bezier(.2,.8,.3,1),opacity .25s,padding .35s,margin .35s;padding:0;margin-right:0}
.dp-fab:hover .dp-fab-txt,.dp-fab:focus-visible .dp-fab-txt{max-width:220px;opacity:1;transform:none;padding:12px 18px;margin-right:10px}
.dp-fab .dp-fab-ic{
  position:relative;width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  transition:transform .28s cubic-bezier(.2,.8,.3,1),box-shadow .28s;flex:0 0 58px}
.dp-fab:hover .dp-fab-ic{transform:translateY(-3px) scale(1.05)}
.dp-fab:active .dp-fab-ic{transform:scale(.94)}
.dp-fab svg{width:27px;height:27px;display:block}

/* whatsapp */
.dp-fab-wa .dp-fab-ic{background:linear-gradient(145deg,#3ee07c,#1faa50);box-shadow:0 10px 26px rgba(37,211,102,.42)}
.dp-fab-wa svg{fill:#fff}
.dp-fab-wa .dp-fab-ic:before,.dp-fab-wa .dp-fab-ic:after{
  content:"";position:absolute;inset:0;border-radius:50%;border:2px solid rgba(37,211,102,.55);
  animation:dpFabPulso 2.6s cubic-bezier(.24,.6,.4,1) infinite}
.dp-fab-wa .dp-fab-ic:after{animation-delay:1.3s}
@keyframes dpFabPulso{0%{transform:scale(1);opacity:.75}70%{transform:scale(1.75);opacity:0}100%{opacity:0}}

/* como llegar */
.dp-fab-mapa .dp-fab-ic{background:#fff;border:1px solid var(--dp-f-line);box-shadow:0 10px 26px rgba(16,20,24,.14)}
.dp-fab-mapa svg{fill:none;stroke:var(--dp-f-ink);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.dp-fab-mapa:hover .dp-fab-ic{border-color:var(--dp-f-amber);box-shadow:0 14px 30px rgba(255,180,0,.3)}
.dp-fab-mapa .dp-fab-ic .dp-pin{animation:dpPinSalta 3.4s ease-in-out infinite;transform-origin:50% 90%}
@keyframes dpPinSalta{0%,72%,100%{transform:translateY(0)}80%{transform:translateY(-5px)}88%{transform:translateY(0)}94%{transform:translateY(-2px)}}

/* entrada */
.dp-fabs .dp-fab{animation:dpFabEntra .55s cubic-bezier(.2,.9,.3,1) backwards}
.dp-fabs .dp-fab:nth-child(1){animation-delay:.35s}
.dp-fabs .dp-fab:nth-child(2){animation-delay:.5s}
@keyframes dpFabEntra{from{opacity:0;transform:translateY(22px) scale(.8)}to{opacity:1;transform:none}}

/* ============ MODAL DEL MAPA ============ */
.dp-mapa{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:24px;
  font-family:'Open Sans',Arial,sans-serif}
.dp-mapa[hidden]{display:none!important}
.dp-mapa-fondo{position:absolute;inset:0;background:rgba(12,15,18,.55);backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);animation:dpFade .2s ease}
.dp-mapa-caja{position:relative;width:100%;max-width:940px;background:#fff;border-radius:20px;overflow:hidden;
  box-shadow:0 30px 90px rgba(10,14,18,.4);animation:dpPop .3s cubic-bezier(.2,.85,.3,1)}
@keyframes dpFade{from{opacity:0}to{opacity:1}}
@keyframes dpPop{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}
.dp-mapa-top{display:flex;align-items:center;gap:14px;padding:18px 20px;border-bottom:1px solid var(--dp-f-line)}
.dp-mapa-top .ic{width:40px;height:40px;flex:0 0 40px;border-radius:12px;background:#FFF6E0;display:flex;
  align-items:center;justify-content:center}
.dp-mapa-top .ic svg{width:20px;height:20px;fill:none;stroke:var(--dp-f-ink);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.dp-mapa-top h3{margin:0!important;padding:0!important;font:700 10.5px/1 'Open Sans',Arial,sans-serif!important;
  letter-spacing:.16em;text-transform:uppercase;color:#9AA4AE!important}
.dp-mapa-top .dir{display:block;margin-top:5px;font:600 15px/1.25 'Open Sans',Arial,sans-serif;color:var(--dp-f-ink)}
.dp-mapa-top .dp-mapa-abrir{margin-left:auto;display:inline-flex;align-items:center;gap:8px;background:var(--dp-f-amber);
  color:var(--dp-f-ink)!important;border-radius:999px;padding:11px 18px;text-decoration:none!important;
  font:700 11.5px/1 'Open Sans',Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;
  box-shadow:0 6px 18px rgba(255,180,0,.32);transition:transform .2s,box-shadow .2s,background .2s}
.dp-mapa-top .dp-mapa-abrir:hover{background:#FFC633;transform:translateY(-1px);box-shadow:0 10px 24px rgba(255,180,0,.4)}
.dp-mapa-cerrar{width:38px;height:38px;flex:0 0 38px;border-radius:50%;border:1px solid var(--dp-f-line);background:#fff;
  cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s}
.dp-mapa-cerrar:hover{border-color:var(--dp-f-ink);transform:rotate(90deg)}
.dp-mapa-cerrar svg{width:15px;height:15px;fill:none;stroke:var(--dp-f-ink);stroke-width:2.2;stroke-linecap:round}
.dp-mapa-marco{position:relative;height:min(62vh,520px);background:#EEF1F4}
.dp-mapa-marco iframe{width:100%;height:100%;border:0;display:block}
html.dp-lock{overflow:hidden}

/* ============ BARRA INFERIOR (movil) ============ */
.dp-tabbar{display:none}
@media (max-width:980px){
  .dp-fabs{display:none!important}
  .dp-tabbar{
    display:grid!important;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:99991;
    background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);
    border-top:1px solid rgba(20,24,28,.08);box-shadow:0 -6px 22px rgba(16,20,24,.06);
    padding-bottom:env(safe-area-inset-bottom);font-family:'Open Sans',Arial,sans-serif;
    animation:dpTabEntra .45s cubic-bezier(.2,.9,.3,1) both}
  @keyframes dpTabEntra{from{transform:translateY(100%)}to{transform:none}}
  .dp-tabbar a,.dp-tabbar button{
    display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:4px;
    padding:9px 2px 8px;background:transparent;border:0;cursor:pointer;text-decoration:none!important;
    color:#6E7884!important;-webkit-tap-highlight-color:transparent;transition:color .2s,transform .18s}
  .dp-tabbar .dp-tb-ic{position:relative;width:26px;height:26px;display:flex;align-items:center;justify-content:center}
  .dp-tabbar svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .dp-tabbar .dp-tb-wa svg{fill:currentColor;stroke:none}
  .dp-tabbar span.dp-tb-tx{font:600 10px/1 'Open Sans',Arial,sans-serif;letter-spacing:.01em}
  .dp-tabbar a:active,.dp-tabbar button:active{transform:scale(.92)}
  .dp-tabbar .dp-tb-wa{color:#12A150!important}
  .dp-tabbar .dp-tb-cot{color:#B87F00!important}
  .dp-tabbar .dp-tb-cot .dp-tb-ic:after{
    content:"";position:absolute;inset:-7px;border-radius:50%;background:radial-gradient(circle,rgba(255,180,0,.28),transparent 70%);
    animation:dpTabBrillo 2.8s ease-in-out infinite}
  @keyframes dpTabBrillo{0%,100%{opacity:.25;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}
  body{padding-bottom:calc(62px + env(safe-area-inset-bottom))!important}
  .dp-mapa{padding:0}
  .dp-mapa-caja{max-width:none;height:100%;border-radius:0}
  .dp-mapa-top{flex-wrap:wrap;padding:14px 16px}
  .dp-mapa-top .dp-mapa-abrir{order:3;width:100%;margin:10px 0 0;justify-content:center}
  .dp-mapa-marco{height:calc(100% - 150px)}
}
