/* ============================================================
   PetEco · Consentimiento de cookies (RGPD / LSSI / guía AEPD)
   Banner + panel de preferencias + placeholders de contenido externo
   ============================================================ */

.ck{ position:fixed; z-index:200; font-family:'Figtree', system-ui, sans-serif; }
.ck[hidden]{ display:none !important; }

/* ---------- Banner ---------- */
.ck-banner{
  left:22px; bottom:22px; width:min(460px, calc(100vw - 44px));
  background:var(--surface); border:1px solid var(--border-2); border-radius:var(--radius);
  box-shadow:var(--shadow-lg); padding:26px 26px 22px;
  animation:ckUp .5s var(--ease) both;
}
@keyframes ckUp{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }

.ck-banner__ic{
  width:44px; height:44px; border-radius:14px; display:grid; place-items:center;
  background:var(--yellow-soft); color:var(--yellow-ink); margin-bottom:14px;
}
.ck-banner h2{ font-family:'Hanken Grotesk', system-ui, sans-serif; font-size:20px; line-height:1.15; margin-bottom:8px; }
.ck-banner p{ color:var(--muted); font-size:14.5px; line-height:1.55; margin-bottom:18px; }
.ck-banner p a{ color:var(--brand-ink); text-decoration:underline; text-underline-offset:2px; }

.ck-actions{ display:flex; flex-wrap:wrap; gap:10px; }
.ck-btn{
  flex:1 1 auto; min-width:132px; appearance:none; border:0; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:13px 20px; border-radius:100px;
  font-family:'Hanken Grotesk', system-ui, sans-serif; font-weight:700; font-size:15px; line-height:1;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
}
.ck-btn:hover{ transform:translateY(-2px); }
/* Aceptar y Rechazar tienen el MISMO tamaño y peso: la guía de la AEPD
   exige que rechazar sea tan fácil y visible como aceptar. */
.ck-btn--accept{ background:var(--black); color:#fff; box-shadow:0 8px 22px rgba(20,20,25,.18); }
.ck-btn--reject{ background:var(--grey); color:var(--fg); }
.ck-btn--reject:hover{ background:var(--grey-2); }
.ck-btn--link{
  flex:1 1 100%; min-width:0; background:none; padding:6px 0 0; color:var(--muted);
  font-weight:600; font-size:14px; text-decoration:underline; text-underline-offset:3px;
}
.ck-btn--link:hover{ color:var(--fg); transform:none; }
.ck-btn--save{ background:var(--brand-ink); color:#fff; }

/* ---------- Panel de preferencias ---------- */
.ck-modal{ inset:0; display:grid; place-items:center; padding:20px; }
.ck-modal__bg{ position:absolute; inset:0; background:rgba(20,20,25,.5); backdrop-filter:blur(3px); animation:ckFade .35s var(--ease) both; }
@keyframes ckFade{ from{ opacity:0; } to{ opacity:1; } }

.ck-panel{
  position:relative; width:min(620px, 100%); max-height:min(86vh, 760px); overflow:auto;
  background:var(--surface); border-radius:var(--radius); box-shadow:var(--shadow-lg);
  padding:clamp(24px,4vw,36px); animation:ckUp .45s var(--ease) both;
}
.ck-panel h2{ font-family:'Hanken Grotesk', system-ui, sans-serif; font-size:clamp(22px,3vw,27px); margin-bottom:8px; }
.ck-panel > p{ color:var(--muted); font-size:15px; line-height:1.6; margin-bottom:22px; }
.ck-panel > p a{ color:var(--brand-ink); text-decoration:underline; text-underline-offset:2px; }
.ck-panel__x{
  position:absolute; top:16px; right:16px; width:38px; height:38px; border:0; cursor:pointer;
  border-radius:50%; background:var(--grey); color:var(--fg-2); display:grid; place-items:center; font-size:20px; line-height:1;
}
.ck-panel__x:hover{ background:var(--grey-2); }

.ck-group{ border:1px solid var(--border); border-radius:var(--radius-sm); padding:18px 20px; margin-bottom:12px; }
.ck-group__top{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:7px; }
.ck-group h3{ font-family:'Hanken Grotesk', system-ui, sans-serif; font-size:17px; }
.ck-group p{ color:var(--muted); font-size:14px; line-height:1.55; }
.ck-group__fixed{ flex:0 0 auto; font-size:13px; font-weight:600; color:var(--green-ink); background:var(--green-soft); padding:6px 12px; border-radius:100px; }

/* Interruptor */
.ck-sw{ flex:0 0 auto; position:relative; width:50px; height:29px; cursor:pointer; }
.ck-sw input{ position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.ck-sw__track{
  position:absolute; inset:0; border-radius:100px; background:var(--grey-2);
  transition:background .3s var(--ease); pointer-events:none;
}
.ck-sw__track::after{
  content:""; position:absolute; top:3px; left:3px; width:23px; height:23px; border-radius:50%;
  background:#fff; box-shadow:0 1px 4px rgba(20,20,25,.28); transition:transform .3s var(--ease);
}
.ck-sw input:checked + .ck-sw__track{ background:var(--green-ink); }
.ck-sw input:checked + .ck-sw__track::after{ transform:translateX(21px); }
.ck-sw input:focus-visible + .ck-sw__track{ outline:2px solid var(--brand-ink); outline-offset:3px; }

.ck-panel__actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.ck-panel__note{ margin-top:16px; font-size:13px; color:var(--muted); line-height:1.55; }
.ck-panel__note a{ color:var(--brand-ink); text-decoration:underline; text-underline-offset:2px; }

/* ---------- Placeholder de contenido externo (mapas, vídeos) ---------- */
/* El iframe sin consentimiento se oculta con el atributo [hidden]; hace falta
   ganarle en especificidad a reglas como `.map-frame iframe{ display:block }`. */
[data-ck-embed] iframe[hidden]{ display:none; }

.ck-embed{
  display:grid; place-items:center; align-content:center; text-align:center; gap:16px;
  min-height:260px; height:100%; padding:32px 26px;
  background:var(--bg-soft); border:1px dashed var(--border-2); border-radius:var(--radius-sm);
}
.ck-embed__ic{ width:46px; height:46px; border-radius:14px; display:grid; place-items:center; background:var(--blue-soft); color:var(--blue-ink); }
.ck-embed h3{ font-family:'Hanken Grotesk', system-ui, sans-serif; font-size:18px; }
.ck-embed p{ color:var(--muted); font-size:14.5px; line-height:1.55; max-width:46ch; margin-inline:auto; }
.ck-embed__row{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.ck-embed .ck-btn{ flex:0 0 auto; }
.ck-embed__alt{ color:var(--brand-ink); font-weight:600; font-size:14.5px; text-decoration:underline; text-underline-offset:3px; align-self:center; }

/* ---------- Enlace "Configurar cookies" del footer ---------- */
.ck-open{ appearance:none; border:0; background:none; padding:0; cursor:pointer;
  font:inherit; color:inherit; opacity:.75; transition:opacity .25s var(--ease); }
.ck-open:hover{ opacity:1; }

/* ---------- Responsive ---------- */
@media (max-width:640px){
  .ck-banner{
    left:0; right:0; bottom:0; width:100%;
    border-radius:var(--radius) var(--radius) 0 0; border-left:0; border-right:0; border-bottom:0;
    padding:22px 20px calc(20px + env(safe-area-inset-bottom));
  }
  .ck-actions .ck-btn{ flex:1 1 100%; }
}

@media (prefers-reduced-motion:reduce){
  .ck-banner, .ck-panel, .ck-modal__bg{ animation:none; }
  .ck-btn:hover{ transform:none; }
}

/* ---------- Casilla de consentimiento del formulario de cita ---------- */
.field .form-consent{
  display:flex; align-items:flex-start; gap:11px; cursor:pointer;
  font-family:'Figtree', system-ui, sans-serif; font-weight:400; font-size:14.5px; line-height:1.5;
}
.field .form-consent input[type="checkbox"]{
  flex:0 0 auto; width:20px; height:20px; margin-top:2px; padding:0;
  border-radius:6px; accent-color:var(--green-ink); cursor:pointer;
}
.field .form-consent a{ text-decoration:underline; text-underline-offset:2px; }
.field.error .form-consent input[type="checkbox"]{ outline:2px solid #e0567f; outline-offset:2px; }
.form-note a{ text-decoration:underline; text-underline-offset:2px; }
