/* ==========================================================================
   CLEANTIME: cookie consent
   Vrstva 1: lišta (Prijať / Odmietnuť sú zámerne vizuálne rovnocenné)
   Vrstva 2: dialóg s nastavením kategórií
   ========================================================================== */

.cc-banner,
.cc-modal { --cc-ease: cubic-bezier(.16, 1, .3, 1); }

/* --- Vrstva 1: lišta ---------------------------------------------------- */
.cc-banner {
  position: fixed; left: 24px; bottom: 24px; z-index: 60;
  width: min(432px, calc(100% - 32px));
  padding: 27px 27px 22px;
  background: var(--paper, #f8f8f4);
  border: 1px solid var(--line, #dce3da);
  border-radius: var(--radius-lg, 26px);
  box-shadow: 0 18px 50px rgba(23, 32, 28, .16);
  color: var(--ink, #17201c);
  opacity: 0; transform: translate3d(0, 20px, 0);
  transition: opacity .55s var(--cc-ease), transform .55s var(--cc-ease);
}
.cc-banner[hidden] { display: none; }
.cc-banner.cc-in { opacity: 1; transform: none; }
.cc-banner.cc-out { opacity: 0; transform: translate3d(0, 16px, 0); pointer-events: none; }

.cc-eyebrow {
  color: #536b75; text-transform: uppercase; letter-spacing: .14em;
  font-size: .68rem; font-weight: 750; margin: 0 0 12px;
}
.cc-banner h2 {
  font: 1.85rem/1.02 var(--serif, Georgia, serif);
  letter-spacing: -.045em; margin: 0 0 12px;
}
.cc-text {
  color: var(--muted, #647169); font-size: .88rem; line-height: 1.55; margin: 0 0 20px;
}
.cc-text a { text-decoration: underline; text-underline-offset: 3px; color: var(--ink, #17201c); }
.cc-text a:hover { color: #22779c; }

/* Rovnocenné tlačidlá: zhodná veľkosť, tvar aj kontrast (EDPB 03/2022). */
.cc-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cc-btn {
  border: 0; border-radius: 999px; background: var(--ink, #17201c); color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  padding: 13px 18px; font-size: .87rem; font-weight: 650; text-align: center;
  transition: background .25s var(--cc-ease), transform .25s var(--cc-ease), box-shadow .25s var(--cc-ease);
}
.cc-btn:hover { background: #2d4136; transform: translate3d(0, -2px, 0); box-shadow: 0 8px 18px rgba(23, 32, 28, .16); }
.cc-btn:focus-visible { outline: 2px solid var(--ink, #17201c); outline-offset: 3px; }

.cc-link {
  display: block; width: 100%; margin-top: 15px; padding: 4px 0;
  background: none; border: 0; color: var(--muted, #647169);
  font-size: .82rem; font-weight: 650; text-align: center;
  text-decoration: underline; text-underline-offset: 4px;
  transition: color .25s var(--cc-ease);
}
.cc-link:hover { color: var(--ink, #17201c); }
.cc-link:focus-visible { outline: 2px solid var(--ink, #17201c); outline-offset: 3px; border-radius: 6px; }

/* --- Vrstva 2: dialóg --------------------------------------------------- */
.cc-modal {
  position: fixed; inset: 0; z-index: 70;
  display: grid; place-items: center; padding: 24px;
}
.cc-modal[hidden] { display: none; }
.cc-overlay {
  position: absolute; inset: 0; background: rgba(16, 32, 25, .48);
  backdrop-filter: blur(4px); opacity: 0;
  transition: opacity .4s var(--cc-ease);
}
.cc-modal.cc-in .cc-overlay { opacity: 1; }
.cc-dialog {
  position: relative;
  width: min(560px, 100%); max-height: min(84vh, 720px);
  display: flex; flex-direction: column;
  background: var(--paper, #f8f8f4);
  border-radius: var(--radius-lg, 26px);
  box-shadow: 0 30px 70px rgba(16, 32, 25, .3);
  opacity: 0; transform: translate3d(0, 16px, 0) scale(.98);
  transition: opacity .4s var(--cc-ease), transform .4s var(--cc-ease);
}
.cc-modal.cc-in .cc-dialog { opacity: 1; transform: none; }

.cc-dialog-head { padding: 30px 32px 20px; border-bottom: 1px solid var(--line, #dce3da); }
.cc-dialog-head h2 {
  font: clamp(1.9rem, 3.6vw, 2.5rem)/1 var(--serif, Georgia, serif);
  letter-spacing: -.05em; margin: 0 0 10px;
}
.cc-dialog-head .cc-text { margin: 0; }

.cc-groups { overflow-y: auto; padding: 6px 32px; flex: 1; }
.cc-group {
  display: flex; align-items: flex-start; gap: 20px;
  padding: 22px 0; border-bottom: 1px solid var(--line, #dce3da);
}
.cc-group:last-child { border-bottom: 0; }
.cc-group-copy { flex: 1; min-width: 0; }
.cc-group h3 { font-size: .95rem; font-weight: 700; margin: 0 0 6px; }
.cc-group p { color: var(--muted, #647169); font-size: .84rem; line-height: 1.5; margin: 0; }
.cc-group-note {
  display: inline-block; margin-top: 9px; font-size: .7rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .1em; color: #22779c;
}

.cc-switch { position: relative; flex: 0 0 auto; width: 48px; height: 27px; margin-top: 2px; }
.cc-switch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.cc-track {
  position: absolute; inset: 0; border-radius: 999px; background: #cbd3d6;
  transition: background .28s var(--cc-ease); pointer-events: none;
}
.cc-track::after {
  content: ""; position: absolute; top: 3px; left: 3px; width: 21px; height: 21px;
  border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(23, 32, 28, .28);
  transition: transform .28s var(--cc-ease);
}
.cc-switch input:checked ~ .cc-track { background: var(--forest, #1c3026); }
.cc-switch input:checked ~ .cc-track::after { transform: translate3d(21px, 0, 0); }
.cc-switch input:disabled { cursor: default; }
.cc-switch input:disabled ~ .cc-track { background: #a8bfc9; }
.cc-switch input:focus-visible ~ .cc-track { outline: 2px solid var(--ink, #17201c); outline-offset: 3px; }

.cc-dialog-foot {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
  padding: 20px 32px 26px; border-top: 1px solid var(--line, #dce3da);
}
.cc-dialog-foot .cc-btn-save { grid-column: 1 / -1; background: var(--lime, #52bdec); color: var(--ink, #17201c); }
.cc-dialog-foot .cc-btn-save:hover { background: #aee6ff; }

.cc-close {
  position: absolute; top: 18px; right: 18px; width: 34px; height: 34px;
  display: grid; place-items: center; border: 0; border-radius: 50%;
  background: transparent; color: var(--muted, #647169); font-size: 1.25rem; line-height: 1;
  transition: background .25s var(--cc-ease), color .25s var(--cc-ease);
}
.cc-close:hover { background: rgba(23, 32, 28, .07); color: var(--ink, #17201c); }
.cc-close:focus-visible { outline: 2px solid var(--ink, #17201c); outline-offset: 2px; }

.cc-lock { overflow: hidden; }

/* --- Mobil -------------------------------------------------------------- */
@media (max-width: 620px) {
  .cc-banner {
    left: 12px; right: 12px; bottom: 12px; width: auto;
    padding: 23px 22px 19px; border-radius: var(--radius, 18px);
  }
  .cc-banner h2 { font-size: 1.6rem; }
  .cc-actions { grid-template-columns: 1fr; }
  .cc-modal { padding: 12px; }
  .cc-dialog { max-height: 90vh; border-radius: var(--radius, 18px); }
  .cc-dialog-head { padding: 26px 22px 18px; }
  .cc-groups { padding: 4px 22px; }
  .cc-dialog-foot { grid-template-columns: 1fr; padding: 18px 22px 22px; }
}

/* --- Obmedzený pohyb ---------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .cc-banner, .cc-overlay, .cc-dialog, .cc-track, .cc-track::after, .cc-btn {
    transition-duration: .01ms !important;
  }
  .cc-banner, .cc-dialog { transform: none !important; }
  .cc-btn:hover { transform: none; }
}

/* --- Právny riadok v päte ----------------------------------------------- */
.footer-legal {
  grid-column: 2;                 /* v gridovej päte (domov, o nás); inde sa ignoruje */
  display: flex; flex-wrap: wrap; align-items: center; gap: 9px 24px;
  margin-top: 36px; padding-top: 20px;
  border-top: 1px solid rgba(23, 32, 28, .12);
  font-size: .78rem; color: #526158;
}
.footer-legal a,
.footer-legal button {
  padding: 0; background: none; border: 0; color: inherit;
  font: inherit; font-weight: 650; letter-spacing: .01em;
  text-decoration: underline; text-underline-offset: 4px;
  opacity: .72; transition: opacity .25s cubic-bezier(.16, 1, .3, 1);
}
.footer-legal a:hover,
.footer-legal button:hover { opacity: 1; }
.footer-legal a:focus-visible,
.footer-legal button:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; border-radius: 6px; opacity: 1; }
.footer-legal a[aria-current="page"] { opacity: 1; text-decoration-thickness: 2px; }

.footer-legal-id {
  flex-basis: 100%;
  margin: 0;
  color: inherit;
  opacity: .55;
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: normal;
  text-decoration: none;
}

@media (max-width: 720px) {
  .footer-legal { gap: 8px 18px; margin-top: 28px; }
}
