/* ===== /cita-previa/ — NIE cita previa tracker ===== */
:root{
  --cita-green:#10b981;
  --cita-shadow:0 6px 24px rgba(15,23,42,.12);
}

/* ---------- header ---------- */
.cita-head{padding:calc(64px + 26px) 0 20px;background:#fff;border-bottom:1px solid var(--color-border);}
.cita-head .container{display:flex;flex-direction:column;gap:8px;align-items:flex-start;}
.cita-badge{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;font-weight:700;
  color:var(--cita-green);background:var(--color-accent-light);border:1px solid rgba(16,185,129,.25);
  padding:5px 12px;border-radius:999px;text-transform:uppercase;letter-spacing:.05em;}
.cita-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--cita-green);
  animation:citaDot 1.8s ease-in-out infinite;}
.cita-head h1{font-size:clamp(1.6rem,3.6vw,2.4rem);line-height:1.1;margin:0;letter-spacing:-.025em;}
.cita-head .cita-sub{margin:0;color:var(--color-text-secondary);font-size:1.02rem;max-width:640px;line-height:1.6;}
.cita-hero-btn{display:block;width:fit-content;margin-top:12px;
  background:#10b981;color:#fff;padding:10px 24px;border-radius:999px;
  font-size:14px;font-weight:600;text-decoration:none;transition:background .15s;}
.cita-hero-btn:hover{background:#0e9f6e;color:#fff;}

/* ---------- app shell ---------- */
.cita-app{background:#fff;}
.cita-app .cita-wrap{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-xl);}

/* mission intro above the map */
.cita-intro{max-width:760px;margin:22px 0 4px;font-size:1.06rem;line-height:1.6;
  color:var(--color-text-secondary);}
.cita-intro strong{color:var(--color-text);}

/* toolbar: breadcrumb + search */
.cita-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;
  flex-wrap:wrap;padding:14px 0 12px;}
.cita-breadcrumb{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:.9rem;min-height:28px;}
.cita-crumb{border:0;background:none;font:inherit;font-weight:600;color:var(--color-primary);
  cursor:pointer;padding:2px 0;transition:color .15s;}
.cita-crumb:hover{color:var(--color-primary-hover);}
.cita-crumb--current{color:var(--color-text);cursor:default;font-weight:700;}
.cita-crumb__sep{color:var(--color-text-muted);}

.cita-search{position:relative;min-width:250px;flex:0 0 auto;}
.cita-search__input{width:100%;box-sizing:border-box;padding:10px 14px 10px 38px;font-family:var(--font-body);
  font-size:.95rem;color:var(--color-text);background:var(--color-bg-subtle) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") no-repeat 13px center;
  border:1.5px solid var(--color-border);border-radius:999px;transition:border-color .15s,background-color .15s;}
.cita-search__input:focus{outline:none;border-color:var(--color-primary);background-color:#fff;}
.cita-search__results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;
  border:1px solid var(--color-border);border-radius:14px;box-shadow:var(--shadow-lg);z-index:1300;
  overflow:hidden;padding:5px;}
.cita-search__results[hidden]{display:none;}
.cita-result{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;
  border:0;background:none;font:inherit;text-align:left;cursor:pointer;padding:10px 12px;
  border-radius:9px;color:var(--color-text);transition:background .12s;}
.cita-result:hover:not(:disabled){background:var(--color-primary-light);}
.cita-result:disabled{cursor:default;}
.cita-result__name{font-weight:600;font-size:.92rem;}
.cita-result.is-soon .cita-result__name{color:var(--color-text-muted);}
.cita-result__go{color:var(--color-primary);font-weight:700;}
.cita-result__tag{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  color:var(--color-text-muted);background:var(--color-bg-muted);padding:3px 9px;border-radius:999px;}
.cita-result--empty{padding:12px;color:var(--color-text-muted);font-size:.9rem;}
.cita-result__hint{padding:8px 12px 6px;font-size:.78rem;color:var(--color-text-muted);line-height:1.4;
  border-top:1px solid var(--color-border-subtle);margin-top:4px;}

/* ---------- layout: map + panel ---------- */
.cita-layout{display:grid;grid-template-columns:1fr 380px;
  height:clamp(520px,72vh,860px);border:1px solid var(--color-border);border-radius:16px;
  overflow:hidden;box-shadow:var(--shadow-sm);}

.cita-map-shell{position:relative;background:#eef2f6;min-width:0;}
#cita-map{position:absolute;inset:0;width:100%;height:100%;background:#eef2f6;z-index:1;}
.cita-map__error{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:var(--color-text-muted);font-size:.95rem;padding:20px;text-align:center;}
.leaflet-interactive{outline:none;}
.leaflet-container{font-family:inherit;}
.leaflet-bar a{color:var(--color-text);}

/* live banner */
.cita-banner{position:absolute;top:14px;left:50%;z-index:1000;display:flex;align-items:center;gap:10px;
  max-width:92%;padding:9px 16px 9px 14px;border-radius:999px;background:var(--cita-green);color:#fff;
  font-weight:600;font-size:.9rem;white-space:nowrap;box-shadow:0 10px 26px rgba(16,185,129,.4);
  opacity:0;pointer-events:none;transform:translate(-50%,-14px);transition:opacity .3s,transform .3s;}
.cita-banner.is-on{opacity:1;transform:translate(-50%,0);}
.cita-banner__dot{width:9px;height:9px;border-radius:50%;background:#fff;flex:0 0 auto;
  box-shadow:0 0 0 0 rgba(255,255,255,.7);animation:citaBanner 1.4s ease-out infinite;}
.cita-banner__ago{font-weight:500;opacity:.85;font-variant-numeric:tabular-nums;}

/* ---------- markers ---------- */
.cmk-wrap{background:none;border:0;}
.cmk--prov{display:flex;align-items:center;gap:7px;}
.cmk__dot{width:14px;height:14px;border-radius:50%;flex:0 0 auto;}
.cmk--active .cmk__dot{background:var(--cita-green);box-shadow:0 0 0 4px rgba(16,185,129,.25);}
.cmk--soon .cmk__dot{background:#9ca3af;box-shadow:0 0 0 3px rgba(156,163,175,.22);}
.cmk__label{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--color-border);
  border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:700;color:var(--color-text);
  white-space:nowrap;box-shadow:var(--shadow-sm);}
.cmk--soon .cmk__label{color:var(--color-text-muted);}
.cmk__soon{font-style:normal;font-weight:700;font-size:.6rem;text-transform:uppercase;letter-spacing:.04em;
  color:var(--color-text-muted);}
.cmk--prov:hover .cmk__label{border-color:var(--color-primary);}

/* office marker: coloured dot + a permanent name label underneath */
.cmk--office{display:flex;flex-direction:column;align-items:center;width:96px;cursor:pointer;}
.cmk__pin{position:relative;width:20px;height:20px;flex:0 0 auto;}
.cmk--office .cmk__dot{position:absolute;inset:4px;border-radius:50%;
  background:#374151;border:2px solid #fff;box-shadow:0 1px 5px rgba(15,23,42,.4);
  transition:background .2s,transform .2s;}
.cmk--office .cmk__pulse{position:absolute;inset:0;border-radius:50%;background:rgba(16,185,129,.45);opacity:0;}
.cmk__name{margin-top:4px;padding:2px 7px;border-radius:6px;font-size:.64rem;font-weight:600;
  color:#fff;background:#374151;box-shadow:0 2px 6px rgba(15,23,42,.28);white-space:nowrap;
  transition:background .2s,font-weight .2s;}
.cmk--office:hover .cmk__dot{transform:scale(1.18);}
.cmk--office:hover .cmk__name{background:#1f2937;}
.cmk--office.is-selected .cmk__dot{background:var(--color-primary);transform:scale(1.2);}
.cmk--office.is-selected .cmk__name{background:var(--color-primary);font-weight:800;
  box-shadow:0 3px 11px rgba(37,99,235,.42);}
.cmk--office.is-live .cmk__dot{background:var(--cita-green);transform:scale(1.15);}
.cmk--office.is-live .cmk__name{background:var(--cita-green);}
.cmk--office.is-live .cmk__pulse{animation:citaMarker 1.4s ease-out infinite;}

/* ---------- panel ---------- */
.cita-panel{background:#fff;border-left:1px solid var(--color-border);overflow-y:auto;
  position:relative;display:flex;flex-direction:column;}
.cita-panel__close{display:none;position:absolute;top:10px;right:12px;z-index:5;border:0;background:none;
  font-size:1.7rem;line-height:1;color:var(--color-text-muted);cursor:pointer;padding:2px 6px;}

.cp-empty{padding:32px 24px;text-align:center;margin:auto 0;}
.cp-empty__icon{font-size:2.4rem;margin-bottom:10px;}
.cp-empty__title{font-size:1.15rem;margin:0 0 8px;}
.cp-empty__text{font-size:.9rem;color:var(--color-text-secondary);margin:0 0 20px;line-height:1.55;}

.cp-head{padding:20px 22px 14px;border-bottom:1px solid var(--color-border-subtle);}
.cp-eyebrow{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  color:var(--color-text-muted);}
.cp-name{font-size:1.2rem;margin:4px 0 3px;line-height:1.2;}
.cp-addr{font-size:.84rem;color:var(--color-text-secondary);}

.cp-label{padding:16px 22px 0;font-size:.72rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.05em;color:var(--color-text-muted);}

.cp-card{margin:8px 22px 0;background:var(--color-bg-subtle);border:1px solid var(--color-border);
  border-radius:10px;padding:14px;}
.cp-card.is-live{background:var(--color-accent-light);border-color:rgba(16,185,129,.35);}
.cp-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.cp-card__name{font-weight:700;font-size:.96rem;color:var(--color-text);}
.cp-card__desc{font-size:.78rem;color:var(--color-text-secondary);margin-top:2px;line-height:1.4;}
.cp-badge{flex:0 0 auto;border-radius:999px;font-size:.62rem;font-weight:700;padding:4px 9px;
  text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}
.cp-badge--no{background:#fee2e2;color:#b91c1c;}
.cp-badge--yes{background:var(--cita-green);color:#fff;box-shadow:0 0 0 0 rgba(16,185,129,.6);
  animation:citaBadge 1.6s ease-out infinite;}
.cp-checked{margin-top:10px;font-size:.78rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums;}

.cp-live{margin-top:12px;}
.cp-live__pulse{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;font-weight:700;
  color:#0e9f6e;text-transform:uppercase;letter-spacing:.04em;}
.cp-live__pulse span{width:8px;height:8px;border-radius:50%;background:var(--cita-green);
  animation:citaDot 1.2s ease-in-out infinite;}
.cp-live__grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;}
.cp-live__cell{background:#fff;border:1px solid rgba(16,185,129,.3);border-radius:8px;padding:9px 11px;}
.cp-live__l{display:block;font-size:.66rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;
  color:var(--color-text-muted);}
.cp-live__v{display:block;font-size:1.15rem;font-weight:800;color:#0e9f6e;margin-top:2px;
  font-variant-numeric:tabular-nums;}

.cp-stats{margin:8px 22px 0;display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.cp-stat{background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:10px;
  padding:10px 12px;}
.cp-stat__l{display:block;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;
  color:var(--color-text-muted);}
.cp-stat__v{display:block;font-size:1.05rem;font-weight:800;color:var(--color-text);margin-top:3px;
  font-variant-numeric:tabular-nums;}

.cp-hist{margin:10px 22px 0;display:flex;align-items:flex-end;gap:3px;
  padding:10px 10px 8px;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:10px;}
.cp-hist__col{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;}
.cp-hist__barwrap{width:100%;height:48px;display:flex;align-items:flex-end;justify-content:center;}
.cp-hist__bar{width:64%;max-width:12px;min-height:8px;border-radius:3px 3px 0 0;background:var(--cita-green);}
.cp-hist__bar--empty{width:64%;max-width:12px;height:3px;min-height:3px;background:#d1d5db;border-radius:2px;}
.cp-hist__day{font-size:.56rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums;
  line-height:1;white-space:nowrap;}

/* CTAs */
.cp-cta{display:block;margin:12px 22px 0;padding:16px;border-radius:14px;text-decoration:none;
  transition:transform .15s,box-shadow .15s;}
.cp-cta:last-child{margin-bottom:22px;}
.cp-cta--alert{background:var(--color-accent-light);border:1px solid rgba(16,185,129,.3);}
.cp-cta--alert:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(16,185,129,.18);}
.cp-cta--book{background:var(--color-text);border:1px solid var(--color-text);}
.cp-cta--book:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg);}
.cp-cta__title{font-weight:700;font-size:.95rem;color:var(--color-text);line-height:1.3;}
.cp-cta--book .cp-cta__title{color:#fff;}
.cp-cta__text{font-size:.82rem;line-height:1.5;margin-top:5px;color:var(--color-text-secondary);}
.cp-cta--book .cp-cta__text{color:rgba(255,255,255,.8);}
.cp-cta__pricerow{display:flex;align-items:baseline;gap:8px;margin-top:12px;}
.cp-cta__pricerow s{color:var(--color-text-muted);font-size:.9rem;}
.cp-cta__pricerow b{color:var(--color-text);font-size:1.5rem;font-weight:800;letter-spacing:-.02em;}
.cp-cta__arrow{color:var(--color-text-muted);font-weight:700;}
.cp-cta__btn{display:inline-block;margin-top:12px;padding:10px 22px;border-radius:999px;
  font-weight:700;font-size:.88rem;}
.cp-cta__btn--green{background:var(--cita-green);color:#fff;}
.cp-cta--alert:hover .cp-cta__btn--green{background:#0e9f6e;}
.cp-cta__btn--dark{background:#fff;color:var(--color-text);}
.cp-cta__sub{margin-top:9px;font-size:.72rem;font-weight:700;color:#0e9f6e;}
.cp-cta__note{margin-top:10px;font-size:.72rem;color:var(--color-text-muted);}

/* panel booking waitlist card (light) */
.cp-cta--wl{background:var(--color-bg-subtle);border:1px solid var(--color-border);}
.cp-cta--wl .cita-wl{margin-top:12px;}

/* ---------- waitlist widget (inline email capture, no <form>) ---------- */
.cita-wl{width:100%;}
.cita-wl__row{display:flex;gap:8px;}
.cita-wl__input{flex:1;min-width:0;padding:11px 14px;font-family:var(--font-body);font-size:.92rem;
  color:var(--color-text);background:#fff;border:1.5px solid var(--color-border);border-radius:10px;
  transition:border-color .15s;}
.cita-wl__input:focus{outline:none;border-color:var(--color-primary);}
.cita-wl__btn{flex:0 0 auto;padding:11px 18px;font-family:var(--font-body);font-size:.9rem;font-weight:700;
  color:#fff;background:var(--cita-green);border:0;border-radius:10px;cursor:pointer;white-space:nowrap;
  transition:background .15s,transform .15s;}
.cita-wl__btn:hover{background:#0e9f6e;transform:translateY(-1px);}
.cita-wl__err{margin-top:7px;font-size:.78rem;font-weight:600;color:#dc2626;}
.cita-wl__done{display:flex;align-items:center;gap:8px;padding:11px 14px;border-radius:10px;
  background:rgba(16,185,129,.14);border:1px solid rgba(16,185,129,.4);color:#0e9f6e;
  font-size:.9rem;font-weight:700;}

/* ---------- booking waitlist card (between sections) ---------- */
.cita-wlcard-wrap{padding:0 var(--space-xl);}
.cita-wlcard{max-width:420px;width:100%;margin:40px auto;background-color:#ffffff;
  border:1px solid #e5e7eb;border-radius:12px;padding:28px 32px;box-shadow:0 2px 8px rgba(0,0,0,.05);
  display:flex;flex-direction:column;align-items:center;text-align:center;}
.cita-wlcard__badge{font-size:11px;font-weight:600;color:#2563eb;background:rgba(37,99,235,.06);
  padding:4px 12px;border-radius:999px;margin-bottom:14px;}
.cita-wlcard__title{font-size:18px;font-weight:700;color:#111827;margin-bottom:6px;line-height:1.25;}
.cita-wlcard__desc{font-size:13px;color:#6b7280;margin-bottom:18px;line-height:1.5;}
.cita-wlcard__price{font-size:32px;font-weight:800;color:#111827;margin-bottom:18px;line-height:1;}
.cita-wlcard__form{width:100%;max-width:320px;margin-bottom:14px;}
.cita-wlcard__row{display:flex;gap:8px;}
.cita-wlcard__input{flex:1;min-width:0;padding:10px 14px;border:1px solid #d1d5db;border-radius:8px;
  font-size:13px;background-color:#ffffff;color:#111827;font-family:var(--font-body);}
.cita-wlcard__input:focus{outline:none;border-color:#2563eb;}
.cita-wlcard__btn{padding:10px 20px;background-color:#111827;color:#fff;border:none;border-radius:8px;
  font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer;font-family:var(--font-body);
  transition:background-color .15s;}
.cita-wlcard__btn:hover{background-color:#000;}
.cita-wlcard__err{margin-top:7px;font-size:12px;font-weight:600;color:#dc2626;}
.cita-wlcard__note1{font-size:12px;font-weight:600;color:#059669;margin-bottom:2px;}
.cita-wlcard__note2{font-size:11px;color:#9ca3af;}

/* ---------- FAQ waitlist callout ---------- */
.cita-faq-wl{margin-top:14px;padding:12px 14px;background:var(--color-bg-subtle);
  border:1px solid var(--color-border);border-radius:10px;font-size:.92rem;line-height:1.55;color:var(--color-text);}
.cita-faq-wl a{font-weight:700;color:var(--color-primary);white-space:nowrap;}
.cita-faq-wl a:hover{text-decoration:underline;}

/* ---------- status strip ---------- */
.cita-status{display:flex;align-items:center;justify-content:center;gap:8px 24px;flex-wrap:wrap;
  padding:16px 20px;margin-top:16px;background:var(--color-bg-subtle);border:1px solid var(--color-border);
  border-radius:14px;font-size:.86rem;color:var(--color-text-secondary);}
.cita-status__item{display:inline-flex;align-items:center;gap:7px;font-weight:600;}
.cita-status__item--live{color:var(--cita-green);}
.cita-status__pulse{width:9px;height:9px;border-radius:50%;background:var(--cita-green);
  animation:citaDot 1.6s ease-in-out infinite;}
.cita-status__sep{color:var(--color-border);}
.cita-status__tag{color:var(--color-text);font-weight:700;}

/* ---------- animations ---------- */
@keyframes citaDot{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.45;transform:scale(1.4);}}
@keyframes citaMarker{0%{transform:scale(.5);opacity:.7;}100%{transform:scale(2.3);opacity:0;}}
@keyframes citaBanner{0%{box-shadow:0 0 0 0 rgba(255,255,255,.6);}70%{box-shadow:0 0 0 8px rgba(255,255,255,0);}100%{box-shadow:0 0 0 0 rgba(255,255,255,0);}}
@keyframes citaBadge{0%{box-shadow:0 0 0 0 rgba(16,185,129,.55);}70%{box-shadow:0 0 0 7px rgba(16,185,129,0);}100%{box-shadow:0 0 0 0 rgba(16,185,129,0);}}

/* ---------- SEO section ---------- */
.cita-seo h2{margin-bottom:var(--space-sm);}
.cita-seo h2:not(:first-child){margin-top:var(--space-2xl);}

/* ---------- NIE long-form guide ---------- */
.cita-guide-intro{margin-top:var(--space-2xl);font-size:1.08rem;line-height:1.65;
  color:var(--color-text-muted);padding-bottom:var(--space-lg);
  border-bottom:1px solid var(--color-border);}
.cita-guide-sec{margin-top:var(--space-2xl);scroll-margin-top:88px;}
.cita-guide-sec h2{margin-bottom:var(--space-sm);}
.cita-guide-sec p{margin-bottom:var(--space-md);line-height:1.7;}
.cita-guide-sec p:last-child{margin-bottom:0;}
.cita-guide-more{margin-top:var(--space-2xl);padding-top:var(--space-lg);
  border-top:1px solid var(--color-border);color:var(--color-text-muted);line-height:1.7;}

/* ---------- responsive: map on top, panel as bottom sheet ---------- */
@media (max-width:860px){
  .cita-layout{grid-template-columns:1fr;height:auto;border:0;border-radius:0;box-shadow:none;overflow:visible;}
  .cita-map-shell{height:56vh;min-height:420px;border:1px solid var(--color-border);border-radius:14px;overflow:hidden;}

  /* panel becomes a bottom sheet overlay driven by .is-open */
  .cita-panel{position:fixed;left:0;right:0;bottom:0;z-index:1400;max-height:76vh;
    border-left:0;border-top:1px solid var(--color-border);border-radius:18px 18px 0 0;
    box-shadow:0 -10px 34px rgba(15,23,42,.2);transform:translateY(102%);transition:transform .26s ease;}
  .cita-panel.is-open{transform:translateY(0);}
  .cita-panel__close{display:block;}
  .cita-panel .cp-empty{display:none;}      /* nothing to show when no office picked on mobile */

  .cita-toolbar{padding:12px 0;}
  .cita-search{min-width:0;flex:1 1 100%;order:2;}
  .cita-breadcrumb{order:1;flex:1 1 100%;}
}

@media (max-width:420px){
  .cp-stats{grid-template-columns:1fr 1fr;}
  .cita-status{gap:6px 16px;}
}
