/* =====================================================================
 * NEŽNÁ! 2026 – block templates: header, footer and the homepage sections
 * (patterns/home-*.php). Loaded after main.css, also in the editor.
 * ===================================================================== */

:root {
  --nz-purple: #5e2260;
  --nz-purple-deep: #4c1a4e;
  --nz-plum: #2a112f;
  --nz-lime: #d8e488;
  --nz-lilac: #f3f6ff;
  --nz-lilac-strong: #e6ebfa;
  --nz-peri: #c9d4ef;
  --nz-navy: #22306b;
  --nz-ink: #4f5b8f;
  --nz-ring: #6f8ff0;
  --nz-gutter: clamp(20px, 4.5vw, 64px);
  --nz-max: 1312px;
  --nz-hand: 'Caveat Brush', 'Comic Sans MS', cursive;
  --nz-mono: 'DM Mono', ui-monospace, monospace;
  --nz-sans: 'DM Sans', sans-serif;
}

/* ---------------------------------------------------------------------
 * Shared building blocks
 * ------------------------------------------------------------------- */

/* The sections set their own spacing: no default block gap (24px) between or inside them. */
.wp-site-blocks > .nz-home,
.wp-site-blocks > .site-footer-area,
.nz-home.nz-home > *,
.nz-home .is-layout-flow > *,
.nz-header.nz-header > *,
.site-footer-area.site-footer-area > *,
.nz-partners .is-layout-flow > *,
.nz-footer .is-layout-flow > *,
.nz-footer.nz-footer > * {
  margin-block-start: 0;
  margin-block-end: 0;
}
.nz-home,
.nz-home p,
.nz-partners,
.nz-footer {
  font-family: var(--nz-sans);
}

.nz-home h1,
.nz-home h2,
.nz-home h3,
.nz-partners h2 {
  font-family: var(--nz-sans);
  font-optical-sizing: auto;
  font-weight: 700;
  margin: 0;
}

.nz-home p {
  margin: 0;
}

.nz-inner,
.nz-hero__inner,
.nz-countdown__inner,
.nz-map__inner {
  width: 100%;
  max-width: calc(var(--nz-max) + 2 * var(--nz-gutter));
  margin: 0 auto;
  padding-left: var(--nz-gutter);
  padding-right: var(--nz-gutter);
}

.nz-hand {
  font-family: var(--nz-hand) !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: 1.1;
}

.nz-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 16px !important;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--nz-navy);
}

.nz-eyebrow::before {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--nz-purple);
  flex: none;
}

.nz-eyebrow--lime {
  color: var(--nz-lime);
}

.nz-eyebrow--lime::before {
  background: var(--nz-lime);
}

.nz-title {
  font-size: clamp(38px, 4.6vw, 64px);
  line-height: 0.98;
  letter-spacing: -0.055em;
  color: var(--nz-navy);
}

.nz-title--xl {
  font-size: clamp(44px, 5.6vw, 80px);
}

.nz-display {
  font-size: clamp(64px, 8.4vw, 120px);
  line-height: 0.86;
  letter-spacing: -0.065em;
  color: var(--nz-navy);
}

.nz-display--purple {
  color: var(--nz-purple);
}

.nz-display--lime {
  color: var(--nz-lime);
}

.nz-section-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 440px);
  align-items: end;
  gap: 32px 64px;
}

.nz-section-head__lead {
  font-size: 19px;
  line-height: 1.65;
  color: var(--nz-ink);
}

/* ---------------------------------------------------------------------
 * Buttons (block styles registered in functions.php)
 * ------------------------------------------------------------------- */
.wp-block-button[class*="is-style-"] .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 16px 28px;
  border: 2px solid transparent;
  border-radius: 999px;
  font-family: var(--nz-sans);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease, color 0.18s ease;
}

.wp-block-button[class*="is-style-"] .wp-block-button__link:hover {
  transform: translateY(-2px);
}

.wp-block-button[class*="is-style-"] .wp-block-button__link:focus-visible {
  outline: 3px solid var(--nz-ring);
  outline-offset: 3px;
}

.wp-block-button.is-style-lime .wp-block-button__link {
  background: var(--nz-lime);
  color: var(--nz-purple);
  border-color: var(--nz-ring);
  text-transform: uppercase;
  letter-spacing: 0.01em;
}

.wp-block-button.is-style-lime .wp-block-button__link:hover {
  box-shadow: 0 10px 24px rgba(216, 228, 136, 0.35);
}

.wp-block-button.is-style-outline-lime .wp-block-button__link {
  background: transparent;
  color: var(--nz-lime);
  border-color: var(--nz-lime);
}

.wp-block-button.is-style-outline-lime .wp-block-button__link:hover {
  background: var(--nz-lime);
  color: var(--nz-purple);
}

.wp-block-button.is-style-purple .wp-block-button__link {
  background: var(--nz-purple);
  color: #fff;
  border-color: var(--nz-purple);
  text-transform: uppercase;
}

.wp-block-button.is-style-purple .wp-block-button__link:hover {
  box-shadow: 0 10px 24px rgba(94, 34, 96, 0.3);
}

.wp-block-button.is-style-outline-navy .wp-block-button__link {
  background: transparent;
  color: var(--nz-navy);
  border-color: var(--nz-navy);
  text-transform: uppercase;
}

.wp-block-button.is-style-outline-navy .wp-block-button__link:hover {
  background: var(--nz-navy);
  color: #fff;
}

.wp-block-button.nz-btn-arrow .wp-block-button__link::after {
  content: "";
  width: 18px;
  height: 18px;
  flex: none;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform 0.18s ease;
}

.wp-block-button.nz-btn-arrow .wp-block-button__link:hover::after {
  transform: translateX(4px);
}

/* ---------------------------------------------------------------------
 * Header (parts/header.html → patterns/header.php)
 * ------------------------------------------------------------------- */
.site-header:has(> .nz-header) {
  position: sticky;
  top: 0;
  z-index: 50;
  background: #fff;
  border-bottom: 1px solid rgba(34, 48, 107, 0.08);
}

.admin-bar .site-header:has(> .nz-header) {
  top: var(--wp-admin--admin-bar--height, 32px);
}

.nz-header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 32px;
  max-width: calc(var(--nz-max) + 2 * var(--nz-gutter));
  margin: 0 auto;
  padding: 16px var(--nz-gutter);
}

.nz-header .nz-header__logo {
  margin: 0;
}

.nz-header .nz-header__logo img {
  display: block;
  width: auto;
  height: 60px;
}

.nz-header .nz-nav {
  justify-self: center;
  font-size: 16px;
  font-weight: 500;
}

.nz-header .nz-nav .wp-block-navigation__container {
  gap: 34px;
}

.nz-header .nz-nav .wp-block-navigation-item__content {
  color: var(--nz-navy);
  padding: 6px 0;
  background-image: linear-gradient(var(--nz-lime), var(--nz-lime));
  background-size: 0 6px;
  background-position: 0 85%;
  background-repeat: no-repeat;
  transition: background-size 0.2s ease;
}

.nz-header .nz-nav .wp-block-navigation-item__content:hover,
.nz-header .nz-nav .current-menu-item > .wp-block-navigation-item__content {
  background-size: 100% 6px;
}

.nz-header .nz-header__cta {
  margin: 0;
}

.nz-header .nz-header__cta .wp-block-button__link {
  padding: 11px 22px;
  font-size: 16px;
  text-transform: none;
  border-color: var(--nz-ring);
}

@media (max-width: 1080px) {
  .nz-header {
    grid-template-columns: auto 1fr auto;
    gap: 16px;
  }

  .nz-header .nz-nav {
    grid-column: 3;
    grid-row: 1;
  }

  .nz-header .nz-header__cta {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
  }

  .nz-header .nz-nav .wp-block-navigation__responsive-container-open {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--nz-purple);
    background: var(--nz-lilac);
  }

  .nz-header .nz-nav .wp-block-navigation__responsive-container.is-menu-open {
    padding: 28px var(--nz-gutter);
    background: var(--nz-purple) !important;
    color: #fff !important;
  }

  .nz-header .nz-nav .is-menu-open .wp-block-navigation__container {
    gap: 22px !important;
    font-size: 30px;
    font-weight: 700;
    letter-spacing: -0.03em;
  }

  .nz-header .nz-nav .is-menu-open .wp-block-navigation-item__content {
    color: #fff;
  }
}

/* The block navigation collapses below 600px by itself; between 600px and 1080px force it. */
@media (min-width: 600px) and (max-width: 1080px) {
  .nz-header .nz-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: inline-flex;
  }

  .nz-header .nz-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    display: none;
  }
}

@media (max-width: 480px) {
  .nz-header .nz-header__cta .wp-block-button__link {
    padding: 9px 16px;
    font-size: 14px;
  }

  .nz-header .nz-header__logo img {
    height: 48px;
  }
}

/* ---------------------------------------------------------------------
 * Hero
 * ------------------------------------------------------------------- */
.nz-hero {
  position: relative;
  overflow: hidden;
  background: var(--nz-purple);
  color: #fff;
}

.nz-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px);
  background-size: 6px 6px;
  pointer-events: none;
}

.nz-hero__inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  align-items: center;
  gap: 48px;
  padding-top: 64px;
  padding-bottom: 136px;
}

.nz-home .nz-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 28px;
  padding: 9px 20px;
  border-radius: 999px;
  background: var(--nz-lime);
  color: var(--nz-purple);
  font-size: 15px;
  font-weight: 600;
}

.nz-home .nz-pill::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
}

.nz-home .nz-hero__title {
  color: #fff;
  font-size: clamp(72px, 9.5vw, 138px);
  line-height: 0.92;
  letter-spacing: -0.07em;
}

.nz-hero__title mark {
  position: relative;
  display: inline-block;
  color: inherit;
  background: none !important;
}

.nz-hero__title mark::after {
  content: "";
  position: absolute;
  left: -2%;
  right: -6%;
  bottom: -0.1em;
  height: 0.16em;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 20' preserveAspectRatio='none'%3E%3Cpath d='M3 15C60 4 120 3 165 9s95 6 132-6' fill='none' stroke='%23d8e488' stroke-width='7' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}

.nz-home .nz-hero__lead {
  max-width: 520px;
  margin-top: 32px;
  font-size: 20px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.88);
}

.nz-home .nz-hero__actions {
  margin-top: 40px;
  gap: 16px;
}

.nz-hero__art {
  position: relative;
  padding: 40px 24px 96px 0;
}

.nz-home .nz-polaroid {
  position: relative;
  margin: 0;
  padding: 14px 14px 0;
  background: #fff;
  transform: rotate(2.4deg);
  box-shadow: 0 30px 60px rgba(20, 4, 22, 0.35);
}

.nz-polaroid img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9.4;
  object-fit: cover;
}

.nz-home .nz-polaroid figcaption {
  margin: 0;
  padding: 12px 8px 16px;
  font-family: var(--nz-hand);
  font-size: clamp(22px, 2.2vw, 31px);
  color: var(--nz-navy);
  text-align: left;
}

/* Tape on the corners. */
.nz-polaroid::before,
.nz-polaroid::after {
  content: "";
  position: absolute;
  width: 130px;
  height: 38px;
  background: rgba(216, 228, 136, 0.82);
  z-index: 1;
}

.nz-polaroid::before {
  top: -24px;
  left: -26px;
  transform: rotate(-26deg);
}

.nz-polaroid::after {
  top: -6px;
  right: -46px;
  transform: rotate(34deg);
}

.nz-home .nz-badge {
  position: absolute;
  right: -12px;
  bottom: 28px;
  width: 156px;
  height: 156px;
  display: grid;
  place-content: center;
  border-radius: 50%;
  background: var(--nz-lime);
  color: var(--nz-purple);
  font-size: 46px;
  font-weight: 800;
  line-height: 0.82;
  letter-spacing: -0.04em;
  text-align: center;
  text-transform: uppercase;
  transform: rotate(14deg);
  box-shadow: 0 16px 34px rgba(20, 4, 22, 0.3);
  z-index: 2;
}

.nz-home .nz-badge::before {
  content: "";
  position: absolute;
  inset: 9px;
  border: 2px dashed var(--nz-purple);
  border-radius: 50%;
}

.nz-home .nz-hero__note {
  position: absolute;
  left: 34%;
  bottom: 0;
  color: var(--nz-lime);
  font-size: clamp(26px, 2.4vw, 34px);
  transform: rotate(-4deg);
}

/* ---------------------------------------------------------------------
 * Ticker
 * ------------------------------------------------------------------- */
/* The tilted ticker bleeds past both screen edges on purpose; clip it so the page does not
   scroll sideways (`clip`, not `hidden`, keeps sticky elements and vertical overflow working). */
.nz-home {
  overflow-x: clip;
}

.nz-ticker {
  position: relative;
  z-index: 3;
  margin: -64px -2% 0;
  overflow: hidden;
  background: var(--nz-lime);
  color: var(--nz-purple);
  transform: rotate(-2deg);
  box-shadow: 0 10px 30px rgba(42, 17, 47, 0.18);
}

.nz-ticker__track {
  display: flex;
  width: max-content;
  padding: 22px 0;
  animation: nz-ticker var(--nz-ticker-duration, 36s) linear infinite;
}

.nz-home .nz-ticker__track p {
  display: flex;
  align-items: center;
  flex: none;
  margin: 0;
  font-size: clamp(22px, 2.3vw, 32px);
  font-weight: 700;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  white-space: nowrap;
}

.nz-home .nz-ticker__track p::after {
  content: "✦";
  margin: 0 40px;
  font-size: 0.8em;
}

@keyframes nz-ticker {
  to {
    transform: translateX(var(--nz-ticker-shift, -50%));
  }
}

@media (prefers-reduced-motion: reduce) {
  .nz-ticker__track {
    animation: none;
  }
}

.editor-styles-wrapper .nz-ticker__track {
  animation: none;
}

/* ---------------------------------------------------------------------
 * Countdown
 * ------------------------------------------------------------------- */
.nz-countdown {
  padding: 120px 0 88px;
  background: #fff;
}

.nz-countdown__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 48px;
}

.nz-home .nz-countdown__note {
  margin-top: 28px;
  font-size: clamp(24px, 2.3vw, 32px);
  color: var(--nz-purple);
}

.nz-countdown .nz-title {
  max-width: 520px;
}

.nz-countdown__clock {
  display: flex;
  align-items: center;
  gap: 16px;
}

.nz-countdown__unit {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 176px;
  height: 200px;
  border-radius: 22px;
  background: var(--nz-purple);
  box-shadow: 0 14px 0 var(--nz-peri);
  overflow: hidden;
}

/* The fold of a flip clock. */
.nz-countdown__unit::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 2px;
  background: rgba(216, 228, 136, 0.45);
}

.nz-countdown__num {
  font-size: 104px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.06em;
  color: #fff;
  font-variant-numeric: tabular-nums;
}

.nz-countdown__label {
  margin-top: 14px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--nz-lime);
}

.nz-countdown__sep {
  font-size: 48px;
  font-weight: 800;
  color: var(--nz-purple);
}

/* ---------------------------------------------------------------------
 * Program: the Nezná Events widget with the featured events
 * ------------------------------------------------------------------- */
.nz-program {
  padding: 24px 0 112px;
  background: #fff;
  scroll-margin-top: 80px;
}

.nz-home .nz-program__widget {
  margin-top: 48px;
}

.nz-home .nz-program__actions {
  justify-content: center;
  margin-top: 48px;
}

.nz-home .nz-program__note {
  max-width: 560px;
  margin: 16px auto 0;
  color: #6b6b6b;
  font-size: 14px;
  line-height: 1.5;
  text-align: center;
}

.nz-home .nz-program__note a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ---------------------------------------------------------------------
 * Map of the cities ([nezna_home_map])
 * ------------------------------------------------------------------- */
.nz-map {
  background: var(--nz-plum);
  color: #fff;
  padding: 72px 0 96px;
}

.nz-map__inner {
  max-width: calc(1120px + 2 * var(--nz-gutter));
}

.nz-map__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 24px 72px;
  margin-bottom: 48px;
}

.nz-map__stat {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.nz-map__num {
  font-size: clamp(64px, 7vw, 96px);
  font-weight: 800;
  line-height: 0.9;
  letter-spacing: -0.06em;
  color: var(--nz-lime);
}

.nz-map__label {
  font-family: var(--nz-mono);
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.85);
}

.nz-map__body {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: 28px;
  align-items: stretch;
}

.nz-map__tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 18px;
}

.nz-map__tab {
  padding: 9px 16px;
  border: 1.5px solid rgba(255, 255, 255, 0.4);
  border-radius: 999px;
  background: transparent;
  color: #fff;
  font-family: var(--nz-mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}

.nz-map__tab.is-active {
  border-color: var(--nz-lime);
  background: var(--nz-lime);
  color: var(--nz-plum);
}

.nz-map__tab:focus-visible {
  outline: 2px solid var(--nz-lime);
  outline-offset: 2px;
}

.nz-map__list {
  max-height: 460px;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-y: auto;
  scrollbar-color: rgba(216, 228, 136, 0.5) transparent;
}

.nz-map__list li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.nz-map__list li[hidden] {
  display: none;
}

.nz-map__list a,
.nz-map__list li > span {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 4px;
  color: #fff;
}

.nz-map__list a:hover .nz-map__city,
.nz-map__list li.is-active .nz-map__city {
  color: var(--nz-lime);
}

.nz-map__city {
  font-size: 17px;
  font-weight: 600;
  transition: color 0.15s ease;
}

.nz-map__count {
  flex: none;
  font-family: var(--nz-mono);
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
}

.nz-map__empty {
  padding: 16px 4px;
  font-size: 15px;
  color: rgba(255, 255, 255, 0.7);
}

.nz-map__canvas {
  min-height: 520px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 18px;
  overflow: hidden;
  background: #3a1640;
}

.nz-map-marker {
  display: block;
  box-sizing: border-box;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--nz-lime);
  border: 4px solid rgba(255, 255, 255, 0.85);
  box-shadow: 0 0 0 6px rgba(216, 228, 136, 0.25);
}

/* Google Maps: the dot is an HTML overlay centred on its point. */
.nz-map-marker--google {
  position: absolute;
  padding: 0;
  transform: translate(-50%, -50%);
  cursor: pointer;
  transition: transform 0.15s ease;
}

.nz-map-marker--google:hover,
.nz-map-marker--google:focus-visible {
  transform: translate(-50%, -50%) scale(1.25);
  outline: none;
}

.nz-map__canvas .gm-style .gm-style-iw-c {
  padding: 14px 18px !important;
  border-radius: 14px;
  background: var(--nz-lilac);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.35);
}

.nz-map__canvas .gm-style .gm-style-iw-d {
  overflow: visible !important;
  font-family: var(--nz-sans);
  color: var(--nz-navy);
}

.nz-map__canvas .gm-style .gm-style-iw-tc::after {
  background: var(--nz-lilac);
}

.nz-map__canvas .gm-style .gm-style-iw-chr {
  position: absolute;
  top: 0;
  right: 0;
}

.nz-map-popup {
  padding-right: 24px;
  font-family: var(--nz-sans);
  color: var(--nz-navy);
}

.nz-map-popup__name {
  display: block;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.nz-map-popup__count {
  display: block;
  margin-top: 4px;
  font-family: var(--nz-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--nz-ink);
}

.nz-map-popup__link {
  display: inline-block;
  margin-top: 8px;
  font-size: 13px;
  font-weight: 700;
  color: var(--nz-purple) !important;
}

/* ---------------------------------------------------------------------
 * Zapoj sa
 * ------------------------------------------------------------------- */
.nz-join {
  padding: 120px 0;
  background: var(--nz-lilac);
}

.nz-home .nz-join__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  gap: 24px;
  margin-top: 64px;
}

.nz-join__side {
  display: grid;
  gap: 24px;
}

.wp-block-group.is-style-card-purple,
.wp-block-group.is-style-card-white,
.wp-block-group.is-style-card-dashed {
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: 28px;
  padding: 48px 44px;
}

.wp-block-group.is-style-card-purple {
  padding: 56px;
  background: var(--nz-purple);
  color: rgba(255, 255, 255, 0.88);
}

.wp-block-group.is-style-card-white {
  background: #fff;
  border: 2px solid var(--nz-peri);
}

.wp-block-group.is-style-card-dashed {
  border: 2px dashed var(--nz-purple);
}

.nz-home [class*="is-style-card-"] h3 {
  font-size: clamp(26px, 2.4vw, 34px);
  line-height: 1.05;
  letter-spacing: -0.045em;
  color: var(--nz-navy);
}

.nz-home .is-style-card-purple h3 {
  margin-top: 48px;
  font-size: clamp(36px, 3.6vw, 50px);
  color: #fff;
}

.nz-home [class*="is-style-card-"] p {
  margin-top: 18px;
  font-size: 17px;
  line-height: 1.65;
  color: var(--nz-ink);
}

.nz-home .is-style-card-purple p {
  max-width: 500px;
  margin-top: 40px;
  font-size: 19px;
  color: rgba(255, 255, 255, 0.86);
}

.nz-home .nz-card__actions {
  margin-top: 28px;
}

.nz-home .is-style-card-purple .nz-card__actions {
  margin-top: auto;
  padding-top: 56px;
}

.nz-home .nz-join__icon {
  margin: 0;
}

.nz-join__icon img {
  display: block;
}

.nz-home .is-style-card-purple .nz-join__note {
  position: absolute;
  top: 56px;
  right: 44px;
  margin: 0;
  font-size: clamp(38px, 3.6vw, 52px);
  line-height: 1.05;
  color: var(--nz-lime);
  text-align: right;
  transform: rotate(6deg);
}

.nz-home .is-style-card-dashed .nz-join__years {
  position: absolute;
  right: 60px;
  bottom: 48px;
  margin: 0;
  font-size: 38px;
  color: var(--nz-purple);
  transform: rotate(-5deg);
}

/* ---------------------------------------------------------------------
 * November, ktorý nás spája – notes on a clothesline
 * ------------------------------------------------------------------- */
.nz-november {
  padding: 120px 0 140px;
  background: #fff;
  overflow: hidden;
}

.nz-home .nz-clothesline {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  max-width: calc(var(--nz-max) + 2 * var(--nz-gutter));
  margin: 64px auto 0;
  padding: 64px calc(var(--nz-gutter) + 32px) 0;
}

.nz-clothesline::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  height: 90px;
  transform: translateX(-50%);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 90' preserveAspectRatio='none'%3E%3Cpath d='M0 8C240 40 420 64 720 64s520-30 720-60' fill='none' stroke='%2365708a' stroke-width='3'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  pointer-events: none;
}

.wp-block-group.is-style-note {
  position: relative;
  padding: 64px 40px 48px;
  border-radius: 6px;
  box-shadow: 0 24px 40px rgba(34, 48, 107, 0.1);
  transform-origin: 50% 0;
  transition: transform 0.3s ease;
}

/* The clothes-peg. */
.wp-block-group.is-style-note::before {
  content: "";
  position: absolute;
  top: -22px;
  left: 50%;
  width: 18px;
  height: 52px;
  margin-left: -9px;
  border-radius: 4px;
  background: linear-gradient(90deg, #8b96a9, #c3cad6 50%, #8b96a9);
  box-shadow: 0 3px 4px rgba(0, 0, 0, 0.18);
}

.nz-clothesline > .is-style-note:nth-child(1) {
  transform: rotate(-3deg);
  margin-top: -12px;
}

.nz-clothesline > .is-style-note:nth-child(1)::before {
  left: 46%;
}

.nz-clothesline > .is-style-note:nth-child(2) {
  transform: rotate(1.6deg);
  margin-top: 28px;
}

.nz-clothesline > .is-style-note:nth-child(3) {
  transform: rotate(-2deg);
  margin-top: -10px;
}

.nz-clothesline > .is-style-note:nth-child(3)::before {
  left: 48%;
}

.nz-clothesline > .is-style-note:hover {
  transform: rotate(0deg);
}

.nz-note--lilac {
  background: var(--nz-lilac-strong);
  color: var(--nz-ink);
}

.nz-note--lime {
  background: var(--nz-lime);
  color: var(--nz-purple);
}

.nz-note--purple {
  background: var(--nz-purple);
  color: #fff;
}

.nz-home .is-style-note p {
  font-size: 17px;
  line-height: 1.6;
}

.nz-home .is-style-note .nz-note__year {
  margin-bottom: 28px;
  font-size: clamp(72px, 7.5vw, 108px);
  font-weight: 800;
  line-height: 0.9;
  letter-spacing: -0.07em;
  color: var(--nz-navy);
}

.nz-home .nz-note--lime .nz-note__year {
  color: var(--nz-purple);
}

.nz-home .nz-note--purple .nz-note__year {
  color: #fff;
}

.nz-home .nz-note__tag {
  position: absolute;
  top: 28px;
  right: 28px;
  font-size: 30px !important;
  color: var(--nz-lime);
  transform: rotate(-6deg);
}

/* ---------------------------------------------------------------------
 * O nás
 * ------------------------------------------------------------------- */
.nz-about {
  padding: 120px 0;
  background: var(--nz-lilac);
  border-top: 1px solid var(--nz-peri);
  scroll-margin-top: 80px;
}

.nz-about__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 48px 96px;
}

.nz-home .nz-about__title {
  font-size: clamp(36px, 4vw, 56px);
  line-height: 1.04;
}

.nz-about__title mark {
  padding: 0 0.12em;
  border-radius: 6px;
  color: var(--nz-purple);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.nz-home .nz-about__claim {
  margin-top: 16px;
  font-size: clamp(40px, 4.4vw, 62px);
  color: var(--nz-purple);
}

.nz-about__text {
  display: grid;
  gap: 20px;
  align-content: start;
  padding-top: 36px;
}

.nz-home .nz-about__text p {
  font-size: 18px;
  line-height: 1.7;
  color: var(--nz-ink);
}

.nz-home .nz-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-top: 96px;
}

.wp-block-group.is-style-stat {
  position: relative;
  min-height: 228px;
  padding: 40px 36px;
  border-radius: 22px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.nz-stats > .is-style-stat:nth-child(1) {
  transform: rotate(-2deg);
}

.nz-stats > .is-style-stat:nth-child(2) {
  transform: rotate(1.2deg);
}

.nz-stats > .is-style-stat:nth-child(3) {
  transform: rotate(-1deg);
}

.nz-stat--lime {
  background: var(--nz-lime);
  color: var(--nz-purple);
}

.nz-stat--white {
  background: #fff;
  border: 2px solid var(--nz-peri);
  color: var(--nz-navy);
}

.nz-stat--purple {
  background: var(--nz-purple);
  color: #fff;
}

.nz-home .nz-stat__num {
  font-size: clamp(72px, 7vw, 100px);
  font-weight: 800;
  line-height: 0.9;
  letter-spacing: -0.06em;
}

.nz-home .nz-stat--white .nz-stat__num {
  color: var(--nz-navy);
}

.nz-home .nz-stat__label {
  max-width: 260px;
  margin-top: 18px;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.35;
}

.nz-home .nz-stat__note {
  position: absolute;
  top: 26px;
  right: 30px;
  font-size: 26px;
  transform: rotate(-4deg);
}

/* ---------------------------------------------------------------------
 * Zacinkaj s nami
 * ------------------------------------------------------------------- */
.nz-keys {
  position: relative;
  overflow: hidden;
  padding: 140px 0 96px;
  background: var(--nz-purple);
  color: rgba(255, 255, 255, 0.88);
}

.nz-keys__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 48px;
}

.nz-home .nz-keys__text > p:not(.nz-eyebrow):not(.nz-keys__small) {
  max-width: 540px;
  margin-top: 24px;
  font-size: 20px;
  line-height: 1.6;
}

.nz-home .nz-keys .nz-display {
  margin-bottom: 24px;
}

.nz-home .nz-keys__actions {
  margin-top: 40px;
}

.nz-jingle .wp-block-button__link {
  text-transform: none !important;
  border-color: transparent !important;
}

.nz-jingle .wp-block-button__link::before {
  content: "";
  width: 20px;
  height: 20px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 5 6 9H2v6h4l5 4z' fill='black'/%3E%3Cpath d='M15.5 8.5a5 5 0 0 1 0 7M19 5a10 10 0 0 1 0 14'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 5 6 9H2v6h4l5 4z' fill='black'/%3E%3Cpath d='M15.5 8.5a5 5 0 0 1 0 7M19 5a10 10 0 0 1 0 14'/%3E%3C/svg%3E") center / contain no-repeat;
}

.nz-home .nz-keys__small {
  margin-top: 28px;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.6);
}

.nz-keys__art {
  position: relative;
  min-height: 560px;
}

.nz-home .nz-keys__image {
  position: absolute;
  top: 0;
  left: 50%;
  width: min(360px, 70%);
  margin: 0;
  transform: translateX(-42%) rotate(-4deg);
  transform-origin: 50% 8%;
}

.nz-keys__image img {
  display: block;
  width: 100%;
  height: auto;
}

.nz-keys__image img {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.nz-keys__image img:focus-visible {
  outline: 3px solid var(--nz-lime);
  outline-offset: 8px;
  border-radius: 12px;
}

.nz-keys__art.is-ringing .nz-keys__image {
  animation: nz-jingle 0.9s ease-in-out;
}

/* The bubbles around the keys: hidden until the keys ring, then they pop out one by one
   (`scale` adds to each bubble's own rotation). */
.nz-keys__art.is-ready .nz-sticker,
.nz-keys__art.is-ready .nz-keys__word {
  opacity: 0;
  scale: 0.3;
  pointer-events: none;
  transition: opacity 0.2s ease, scale 0.2s ease;
}

.nz-keys__art.is-ready.is-ringing .nz-sticker,
.nz-keys__art.is-ready.is-ringing .nz-keys__word {
  opacity: 1;
  scale: 1;
  transition: opacity 0.2s ease, scale 0.45s cubic-bezier(0.34, 1.7, 0.64, 1);
}

.nz-keys__art.is-ringing .nz-sticker--cink {
  transition-delay: 0.05s;
}

.nz-keys__art.is-ringing .nz-keys__word--cink {
  transition-delay: 0.2s;
}

.nz-keys__art.is-ringing .nz-keys__word--strng {
  transition-delay: 0.35s;
}

.nz-keys__art.is-ringing .nz-sticker--zvoni {
  transition-delay: 0.5s;
}

@media (prefers-reduced-motion: reduce) {
  .nz-keys__art.is-ringing .nz-keys__image {
    animation: none;
  }

  .nz-keys__art.is-ready .nz-sticker,
  .nz-keys__art.is-ready .nz-keys__word {
    scale: 1;
  }
}

@keyframes nz-jingle {
  0%, 100% { transform: translateX(-42%) rotate(-4deg); }
  15% { transform: translateX(-42%) rotate(9deg); }
  35% { transform: translateX(-42%) rotate(-12deg); }
  55% { transform: translateX(-42%) rotate(7deg); }
  75% { transform: translateX(-42%) rotate(-7deg); }
}

.nz-home .nz-sticker {
  position: absolute;
  padding: 10px 26px;
  border-radius: 999px;
  background: #fff;
  color: var(--nz-purple);
  font-size: 20px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  box-shadow: 0 10px 24px rgba(20, 4, 22, 0.25);
  white-space: nowrap;
}

.nz-home .nz-sticker--cink {
  top: 40px;
  right: 0;
  font-size: 26px;
  transform: rotate(12deg);
}

.nz-home .nz-sticker--zvoni {
  bottom: 120px;
  left: 4%;
  padding: 8px 20px;
  font-size: 19px;
  letter-spacing: 0;
  text-transform: none;
  transform: rotate(-10deg);
}

.nz-home .nz-keys__word {
  position: absolute;
  font-size: clamp(36px, 3.6vw, 52px);
}

.nz-home .nz-keys__word--cink {
  top: 120px;
  left: 2%;
  color: var(--nz-lime);
  transform: rotate(-16deg);
}

.nz-home .nz-keys__word--strng {
  right: 0;
  bottom: 190px;
  color: #fff;
  transform: rotate(10deg);
}

/* ---------------------------------------------------------------------
 * Partners + footer (parts/footer.html → patterns/footer.php)
 * ------------------------------------------------------------------- */
.nz-partners {
  max-width: calc(var(--nz-max) + 2 * var(--nz-gutter));
  margin: 0 auto;
  padding: 120px var(--nz-gutter) 96px;
  background: #fff;
}

.nz-partners .nz-partners__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 16px 120px;
  margin-bottom: 56px;
}

.nz-partners .nz-partners__title {
  margin: 0;
  font-size: clamp(48px, 5.6vw, 80px);
  line-height: 0.95;
  letter-spacing: -0.06em;
  color: var(--nz-purple);
}

.nz-partners .nz-partners__note {
  margin: 0 0 4px;
  font-size: clamp(30px, 2.8vw, 40px);
  color: var(--nz-purple);
  transform: rotate(-4deg);
}

.nz-partners .footer-partner-section {
  max-width: none;
  margin: 0;
}

.nz-partners .footer-partner-section--categories > * + * {
  margin-top: 48px;
  padding-top: 0;
  border-top: 0;
}

.nz-partners .footer-partner-section--categories .footer-partner-column h3 {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--nz-purple);
}

.nz-partners .footer-partner-section--categories .footer-partner-column--wide .footer-partner-logos {
  grid-template-columns: repeat(10, minmax(0, 1fr));
}

.nz-people-chain {
  height: 82px;
  margin: 0 !important;
  background: url("../images/people-chain.svg") 0 100% / auto 82px repeat-x;
}

.nz-footer {
  margin: 0 !important;
  padding: 48px var(--nz-gutter) 28px;
  background: var(--nz-purple);
  color: rgba(255, 255, 255, 0.82);
}

.nz-footer > * {
  max-width: var(--nz-max);
  margin-left: auto;
  margin-right: auto;
}

.nz-footer__top {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 32px;
  padding: 0 16px 36px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.nz-footer .nz-footer__claim {
  margin: 0;
  font-size: clamp(40px, 4vw, 58px);
  color: var(--nz-lime);
}

.nz-footer__aside {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 24px;
}

.nz-footer__social {
  gap: 10px;
  justify-content: flex-end;
}

.wp-block-button.is-style-pill .wp-block-button__link {
  padding: 11px 22px;
  border: 1.5px solid rgba(255, 255, 255, 0.5);
  background: transparent;
  color: #fff;
  font-size: 17px;
  font-weight: 600;
}

.wp-block-button.is-style-pill .wp-block-button__link::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
}

.wp-block-button.is-style-pill .wp-block-button__link:hover {
  background: var(--nz-lime);
  border-color: var(--nz-lime);
  color: var(--nz-purple);
}

.nz-footer .nz-footer__org {
  margin: 0;
  font-size: 15px;
}

.nz-footer a {
  color: inherit;
}

.nz-footer__org a:hover,
.nz-footer__bottom a:hover {
  color: var(--nz-lime);
}

.nz-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px 32px;
  padding: 20px 16px 0;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.7);
}

.nz-footer__bottom p {
  margin: 0;
}

.nz-footer__bottom p a {
  margin-left: 24px;
}

.nz-footer__bottom p:last-child a {
  margin-left: 0;
}

/* The old footer styles of the classic templates must not leak into the block footer. */
.site-footer-area:has(> .nz-partners) {
  margin: 0;
}

/* ---------------------------------------------------------------------
 * Responsive
 * ------------------------------------------------------------------- */
@media (max-width: 1180px) {
  .nz-countdown__inner {
    grid-template-columns: 1fr;
  }

  .nz-countdown__unit {
    width: 150px;
    height: 172px;
  }

  .nz-countdown__num {
    font-size: 88px;
  }
}

@media (max-width: 1024px) {
  .nz-hero__inner {
    grid-template-columns: 1fr;
    padding-bottom: 120px;
  }

  .nz-hero__art {
    max-width: 640px;
    width: 100%;
    margin: 0 auto;
  }

  .nz-section-head,
  .nz-about__grid,
  .nz-keys__grid,
  .nz-home .nz-join__grid {
    grid-template-columns: 1fr;
  }

  .nz-about__text {
    padding-top: 0;
  }

  .nz-map__body {
    grid-template-columns: 1fr;
  }

  .nz-map__list {
    max-height: 280px;
  }

  .nz-map__canvas {
    min-height: 420px;
  }

  .nz-home .nz-clothesline {
    grid-template-columns: 1fr;
    max-width: 560px;
    gap: 56px;
    padding-left: var(--nz-gutter);
    padding-right: var(--nz-gutter);
  }

  .nz-clothesline > .is-style-note:nth-child(n) {
    margin-top: 0;
  }

  .nz-home .nz-stats {
    grid-template-columns: 1fr;
    max-width: 560px;
  }

  .nz-keys__art {
    min-height: 480px;
    max-width: 520px;
    width: 100%;
    margin: 0 auto;
  }

  .nz-partners .footer-partner-section--categories .footer-partner-column--wide .footer-partner-logos {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .nz-footer__aside {
    align-items: flex-start;
  }

  .nz-footer__social {
    justify-content: flex-start;
  }
}

@media (max-width: 640px) {
  .nz-hero__inner {
    padding-top: 40px;
    padding-bottom: 104px;
  }

  .nz-home .nz-hero__lead {
    font-size: 18px;
  }

  .nz-hero__actions .wp-block-button,
  .nz-hero__actions .wp-block-button__link {
    width: 100%;
    justify-content: center;
  }

  .nz-hero__art {
    padding: 28px 8px 80px 0;
  }

  .nz-home .nz-badge {
    width: 104px;
    height: 104px;
    font-size: 30px;
    right: -4px;
    bottom: 36px;
  }

  .nz-polaroid::before,
  .nz-polaroid::after {
    width: 84px;
    height: 26px;
  }

  .nz-polaroid::after {
    right: -20px;
  }

  .nz-home .nz-hero__note {
    left: 8%;
  }

  .nz-ticker {
    margin-top: -48px;
  }

  .nz-ticker__track {
    padding: 14px 0;
  }

  .nz-home .nz-ticker__track p::after {
    margin: 0 22px;
  }

  .nz-countdown,
  .nz-join,
  .nz-november,
  .nz-about,
  .nz-keys,
  .nz-partners {
    padding-top: 80px;
    padding-bottom: 80px;
  }

  .nz-countdown__clock {
    gap: 6px;
  }

  .nz-countdown__unit {
    flex: 1;
    width: auto;
    height: 128px;
    border-radius: 16px;
  }

  .nz-countdown__num {
    font-size: 56px;
  }

  .nz-countdown__label {
    margin-top: 8px;
    font-size: 11px;
    letter-spacing: 0.12em;
  }

  .nz-countdown__sep {
    font-size: 28px;
  }

  .nz-map {
    padding: 56px 0 64px;
  }

  .nz-map__stats {
    gap: 24px 36px;
  }

  .nz-map__num {
    font-size: 56px;
  }

  .wp-block-group.is-style-card-purple,
  .wp-block-group.is-style-card-white,
  .wp-block-group.is-style-card-dashed {
    padding: 36px 26px;
  }

  .nz-home .is-style-card-purple .nz-join__note {
    top: 32px;
    right: 24px;
    font-size: 34px;
  }

  .nz-home .is-style-card-dashed .nz-join__years {
    position: static;
    margin-top: 24px !important;
    align-self: flex-end;
  }

  .wp-block-group.is-style-stat {
    min-height: 0;
  }

  .nz-keys__art {
    min-height: 420px;
  }

  .nz-home .nz-sticker--cink {
    font-size: 20px;
  }

  .nz-home .nz-keys__word--strng {
    bottom: 120px;
  }

  .nz-home .nz-sticker--zvoni {
    bottom: 60px;
  }

  .nz-partners .footer-partner-section--categories .footer-partner-column--wide .footer-partner-logos {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  /* Organizer and media partners stack on phones: centred, headings and logos. */
  .nz-partners .footer-partner-section--categories .footer-partner-stack {
    align-items: stretch;
  }

  .nz-partners .footer-partner-section--categories .footer-partner-stack .footer-partner-column {
    align-items: center;
    text-align: center;
  }

  .nz-partners .footer-partner-section--categories .footer-partner-stack .footer-partner-column h3 {
    padding-left: 0.2em; /* balances the letter-spacing after the last letter */
  }

  .nz-partners .footer-partner-stack__logos {
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .nz-people-chain {
    height: 56px;
    background-size: auto 56px;
  }

  .nz-footer__bottom p a {
    margin-left: 12px;
  }
}

/* ---------------------------------------------------------------------
 * Editor: absolutely placed decorations stay visible but must not cover the fields.
 * ------------------------------------------------------------------- */
.editor-styles-wrapper .nz-ticker {
  transform: none;
  margin-top: 0;
}

.editor-styles-wrapper .nz-ticker__track {
  flex-wrap: wrap;
  width: auto;
}
