
/* ── Decorative wave stripe above footer ── */
.sv-foot-curve {
  display: block;
  width: 100%;
  height: 100px;
  margin: 0;
  margin-bottom: -1px;
  line-height: 0;
  pointer-events: none;
}
.sv-foot-curve svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.sv-foot-curve-a {
  stroke-dasharray: 4000;
  stroke-dashoffset: 4000;
  animation: svCurveDraw 2.4s cubic-bezier(.22,1,.36,1) .2s forwards;
}
.sv-foot-curve-c {
  opacity: 0;
  animation: svCurveFade 1.6s ease .9s forwards;
}
@keyframes svCurveDraw {
  to { stroke-dashoffset: 0; }
}
@keyframes svCurveFade {
  to { opacity: .6; }
}
@media (max-width: 768px) {
  .sv-foot-curve { height: 64px; }
}

/* ── Modern footer ── */
.sv-foot {
  position: relative;
  background: transparent;
  color: #1a1515;
  padding: 48px 24px 28px;
  overflow: hidden;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}
.sv-foot::before {
  content: "";
  position: absolute; inset: 0;
  background: none;
  pointer-events: none;
}

/* Decorative floating shapes */
.sv-foot-deco {
  position: absolute; inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.sv-foot-shape {
  position: absolute;
  border-radius: 50%;
  filter: blur(30px);
  opacity: .35;
}
.sv-foot-shape-1 {
  width: 260px; height: 260px;
  top: 10%; right: -60px;
  background: radial-gradient(circle, #fcb9cc, transparent 70%);
  animation: svFootFloat1 12s ease-in-out infinite alternate;
}
.sv-foot-shape-2 {
  width: 200px; height: 200px;
  bottom: 18%; left: -40px;
  background: radial-gradient(circle, #fcb9cc, transparent 70%);
  animation: svFootFloat2 14s ease-in-out infinite alternate;
}
@keyframes svFootFloat1 {
  0% { transform: translate(0,0); }
  100% { transform: translate(-30px, 20px); }
}
@keyframes svFootFloat2 {
  0% { transform: translate(0,0); }
  100% { transform: translate(25px, -15px); }
}
.sv-foot-sparkle {
  position: absolute;
  color: #f48ea8;
  opacity: .55;
  font-size: 14px;
  animation: svFootSparkle 4s ease-in-out infinite;
}
.sv-foot-sparkle-1 { top: 14%; left: 8%; font-size: 12px; animation-delay: 0s; }
.sv-foot-sparkle-2 { top: 34%; right: 10%; font-size: 18px; animation-delay: 1.2s; }
.sv-foot-sparkle-3 { bottom: 26%; left: 42%; font-size: 10px; animation-delay: 2.4s; }
@keyframes svFootSparkle {
  0%, 100% { opacity: .3; transform: scale(.9); }
  50% { opacity: .7; transform: scale(1.1); }
}
.sv-foot-wrap { position: relative; max-width: 1200px; margin: 0 auto; }

/* ── Newsletter card ── */
.sv-nl {
  position: relative;
  background: #ffffff;
  border-radius: 28px;
  border: 1px solid rgba(26, 21, 21, .05);
  padding: 40px 44px;
  box-shadow:
    0 1px 0 rgba(255,255,255,1) inset,
    0 24px 60px -30px rgba(26, 21, 21, .2),
    0 0 0 1px rgba(193, 73, 104, .04);
  overflow: hidden;
}
.sv-nl-decor {
  position: absolute;
  top: -10px; right: -20px;
  width: 400px; height: 160px;
  opacity: .5;
  pointer-events: none;
}
.sv-nl-decor svg { width: 100%; height: 100%; display: block; overflow: visible; }
.sv-nl-grid {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 44px;
  align-items: center;
}
@media (max-width: 900px) {
  .sv-nl { padding: 28px 22px; border-radius: 22px; }
  .sv-nl-grid { grid-template-columns: 1fr; gap: 22px; }
  .sv-nl-decor { width: 240px; height: 100px; }
}
@media (max-width: 480px) {
  .sv-nl-field {
    flex-direction: column;
    border-radius: 18px;
    padding: 6px;
    gap: 6px;
    align-items: stretch;
  }
  .sv-nl-field .sv-nl-icon { display: none; }
  .sv-nl-field input {
    background: #fff;
    border-radius: 14px;
    padding: 14px 16px;
    text-align: center;
  }
  .sv-nl-btn {
    width: 100%;
    justify-content: center;
    border-radius: 14px;
    padding: 14px 22px;
  }
  .sv-nl-meta { padding-left: 0; justify-content: center; gap: 12px 16px; }
}
.sv-nl-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: #e11d48;
  margin-bottom: 18px;
  line-height: 1;
}
.sv-nl-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #e11d48;
  box-shadow: 0 0 0 0 rgba(225, 29, 72, .5);
  animation: svNlPulse 2.2s cubic-bezier(.22, 1, .36, 1) infinite;
}
@keyframes svNlPulse {
  0% { box-shadow: 0 0 0 0 rgba(225, 29, 72, .55); }
  70% { box-shadow: 0 0 0 9px rgba(225, 29, 72, 0); }
  100% { box-shadow: 0 0 0 0 rgba(225, 29, 72, 0); }
}
.sv-nl-title {
  font-family: inherit;
  font-size: clamp(1.65rem, 3vw, 2.35rem);
  font-weight: 700;
  letter-spacing: -.028em;
  line-height: 1.1;
  color: #1a1515;
  margin: 0 0 14px;
}
.sv-nl-title em {
  font-family: 'Parisienne', cursive;
  font-style: normal;
  font-weight: 400;
  color: #e11d48;
  padding: 0 .04em;
  font-size: 1.15em;
}
.sv-nl-sub {
  font-size: .95rem;
  color: #5c4f51;
  line-height: 1.65;
  max-width: 42ch;
  margin: 0;
}

/* Form */
.sv-nl-form { display: flex; flex-direction: column; gap: 14px; }
.sv-nl-field {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fafafa;
  border: 1px solid rgba(26, 21, 21, .1);
  border-radius: 100px;
  padding: 5px 5px 5px 20px;
  transition: border-color .3s, box-shadow .3s, background .3s;
}
.sv-nl-field:focus-within {
  background: #ffffff;
  border-color: #c14968;
  box-shadow: 0 0 0 4px rgba(193, 73, 104, .1);
}
.sv-nl-icon {
  width: 18px; height: 18px;
  color: #8a7a7c;
  flex-shrink: 0;
  transition: color .3s;
}
.sv-nl-field:focus-within .sv-nl-icon { color: #c14968; }
.sv-nl-field input {
  flex: 1 1 auto;
  min-width: 0;
  border: none; outline: none;
  background: transparent;
  font-family: inherit;
  font-size: .95rem;
  font-weight: 500;
  color: #1a1515;
  padding: 14px 4px;
  letter-spacing: -.005em;
}
.sv-nl-field input::placeholder { color: #9a8789; font-weight: 500; }

/* Submit button — flat, matches header CTA */
.sv-nl-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #e11d48;
  color: #fff;
  padding: 13px 22px;
  border-radius: 100px;
  font-family: inherit;
  font-size: .9rem;
  font-weight: 600;
  letter-spacing: -.005em;
  border: none;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(225, 29, 72, .22);
  transition: background .25s, transform .25s, box-shadow .25s;
}
.sv-nl-btn:hover {
  background: #be123c;
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(190, 18, 60, .32);
}
.sv-nl-btn:active { transform: translateY(0) scale(.98); }
.sv-nl-btn svg { transition: transform .3s cubic-bezier(.34, 1.56, .64, 1); }
.sv-nl-btn:hover svg { transform: translateX(3px); }

/* GDPR consent (kompaktní řádek pod e-mail polem) */
.sv-nl-consent {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin: 12px 0 4px;
  padding-left: 22px;
  cursor: pointer;
  user-select: none;
}
.sv-nl-consent input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 0; height: 0;
}
.sv-nl-consent-mark {
  flex-shrink: 0;
  width: 16px; height: 16px;
  margin-top: 1px;
  border: 1.5px solid #c9bcbe;
  border-radius: 4px;
  background: #fff;
  display: inline-flex;
  align-items: center; justify-content: center;
  color: transparent;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.sv-nl-consent input[type="checkbox"]:checked ~ .sv-nl-consent-mark {
  background: #e11d48;
  border-color: #e11d48;
  color: #fff;
}
.sv-nl-consent input[type="checkbox"]:focus-visible ~ .sv-nl-consent-mark {
  outline: 2px solid #e11d48;
  outline-offset: 2px;
}
.sv-nl-consent-text {
  font-size: .72rem;
  font-weight: 500;
  color: #8a7a7c;
  line-height: 1.5;
  letter-spacing: -.005em;
}
.sv-nl-consent-text a {
  color: #e11d48;
  text-decoration: underline;
  text-underline-offset: 2px;
  font-weight: 600;
}
.sv-nl-consent-text a:hover { color: #be123c; }
.sv-nl-consent.sv-nl-consent-error .sv-nl-consent-mark {
  border-color: #dc2626;
  background: #fff5f5;
  animation: svNlConsentShake .35s cubic-bezier(.36,.07,.19,.97);
}
.sv-nl-consent.sv-nl-consent-error .sv-nl-consent-text { color: #dc2626; }
@keyframes svNlConsentShake {
  0%, 100% { transform: translateX(0); }
  20%, 60% { transform: translateX(-3px); }
  40%, 80% { transform: translateX(3px); }
}

/* Trust row */
.sv-nl-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 20px;
  padding-left: 22px;
}
.sv-nl-trust {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .72rem;
  font-weight: 500;
  color: #8a7a7c;
  letter-spacing: -.005em;
}
.sv-nl-trust svg {
  color: #10b981;
  flex-shrink: 0;
}

/* Ack state */
.sv-nl-ack {
  display: none;
  align-items: center;
  gap: 12px;
  background: linear-gradient(135deg, rgba(16, 185, 129, .08), rgba(16, 185, 129, 0));
  border: 1px solid rgba(16, 185, 129, .2);
  padding: 20px 24px;
  border-radius: 100px;
  font-size: 1rem;
  font-weight: 600;
  color: #0c8a64;
  letter-spacing: -.01em;
  animation: svNlAckIn .5s cubic-bezier(.34, 1.56, .64, 1);
}
.sv-nl-ack-check {
  display: inline-grid; place-items: center;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: #10b981;
  color: #fff;
  flex-shrink: 0;
}
@keyframes svNlAckIn {
  0% { opacity: 0; transform: translateY(8px); }
  100% { opacity: 1; transform: translateY(0); }
}
.sv-nl.is-sent .sv-nl-form { display: none; }
.sv-nl.is-sent .sv-nl-ack { display: inline-flex; }

/* Divider */
.sv-foot-rule {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(26, 21, 21, .12), transparent);
  margin: 56px 0 40px;
}

/* Link grid */
.sv-foot-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
}
@media (min-width: 768px) {
  .sv-foot-grid { grid-template-columns: 2fr 1fr 1fr 1fr 1fr; gap: 40px; }
}
.sv-foot-brand {
  display: flex; flex-direction: column; gap: 16px;
  max-width: 340px;
}
.sv-foot-logo { height: 42px; width: auto; }
.sv-foot-tag {
  font-size: .88rem;
  color: #5c4f51;
  line-height: 1.7;
  margin: 0;
}
.sv-foot-collab {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  font-size: .78rem;
  color: #8a7a7c;
  padding-top: 4px;
  letter-spacing: -.005em;
}
.sv-foot-collab a {
  color: #c14968;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(193, 73, 104, .25);
  transition: color .2s, border-color .2s;
}
.sv-foot-collab a:hover { color: #9d3551; border-color: #9d3551; }

.sv-foot-col { display: flex; flex-direction: column; gap: 10px; }
.sv-foot-col-label {
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #8a7a7c;
  margin-bottom: 6px;
}
.sv-foot-col a {
  position: relative;
  display: inline-block;
  width: fit-content;
  color: #1a1515;
  text-decoration: none;
  font-size: .92rem;
  font-weight: 500;
  letter-spacing: -.005em;
  padding-bottom: 2px;
  transition: color .2s;
}
.sv-foot-col a::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: #c14968;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .35s cubic-bezier(.22, 1, .36, 1);
}
.sv-foot-col a:hover { color: #c14968; }
.sv-foot-col a:hover::after { transform: scaleX(1); }

/* Logo signature */
.sv-foot-signature {
  position: relative;
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  text-align: center;
  user-select: none;
}
.sv-foot-signature-logo {
  display: block;
  width: clamp(220px, 34vw, 360px);
  height: auto;
  opacity: .95;
}
.sv-foot-signature-caption {
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: .74rem;
  font-weight: 600;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: #9d3551;
  opacity: .8;
}

/* Bottom bar */
.sv-foot-bottom {
  position: relative;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid rgba(26, 21, 21, .08);
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  justify-content: space-between;
  align-items: center;
  font-size: .78rem;
  color: #8a7a7c;
  letter-spacing: -.005em;
}

/* Social icons */
.sv-foot-social {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.sv-foot-social a {
  display: inline-grid;
  place-items: center;
  width: 52px; height: 52px;
  border-radius: 50%;
  color: #9d3551;
  background: #fff;
  border: 1px solid rgba(193, 73, 104, .14);
  box-shadow: 0 2px 6px -2px rgba(193, 73, 104, .1);
  transition: background .25s, color .25s, border-color .25s, transform .3s cubic-bezier(.34,1.56,.64,1);
}
.sv-foot-social a svg { width: 24px; height: 24px; }
.sv-foot-social a:hover {
  background: #fff;
  border-color: rgba(193, 73, 104, .18);
  color: #c14968;
  transform: translateY(-2px);
  box-shadow: 0 8px 18px -6px rgba(193, 73, 104, .3);
}
.sv-foot-made em {
  font-family: 'Parisienne', cursive;
  font-style: normal;
  color: #c14968;
  font-size: 1.05rem;
  padding: 0 2px;
}

@media (max-width: 640px) {
  .sv-foot { padding: 36px 18px 22px; }
  .sv-foot-rule { margin: 36px 0 28px; }
  .sv-foot-grid { gap: 28px; }
  .sv-foot-brand { gap: 12px; }
  .sv-foot-tag { font-size: .82rem; line-height: 1.55; }
  .sv-foot-col { gap: 8px; }
  .sv-foot-col-label { margin-bottom: 2px; font-size: .62rem; }
  .sv-foot-col { flex-direction: row !important; flex-wrap: wrap; gap: 8px 16px !important; }
  .sv-foot-col-label { width: 100%; margin-bottom: 4px !important; }
  .sv-foot-col a { font-size: .88rem; padding-bottom: 1px; white-space: nowrap; }
  .sv-foot-signature { margin-top: 22px; gap: 8px; }
  .sv-foot-signature-logo { width: 56vw; max-width: 200px; }
  .sv-foot-signature-caption { letter-spacing: .18em; font-size: .72rem; }
  .sv-foot-bottom {
    margin-top: 18px;
    padding-top: 14px;
    gap: 10px 14px;
    justify-content: center;
    text-align: center;
    font-size: .72rem;
  }
  .sv-foot-social { order: -1; margin-bottom: 4px; gap: 8px; }
  .sv-foot-social a { width: 40px; height: 40px; }
  .sv-foot-social a svg { width: 18px; height: 18px; }
  .sv-foot-shape-1, .sv-foot-shape-2 { display: none; }
  .sv-nl-field { flex-wrap: wrap; padding: 8px; border-radius: 22px; }
  .sv-nl-field input { width: 100%; padding: 10px 12px; }
  .sv-nl-btn { width: 100%; justify-content: center; padding: 14px 22px; }
  .sv-nl-meta { padding-left: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  .sv-nl-dot,
  .sv-foot-shape,
  .sv-foot-sparkle,
  .sv-foot-curve-a,
  .sv-foot-curve-c { animation: none; }
  .sv-foot-curve-a { stroke-dashoffset: 0; }
  .sv-foot-curve-c { opacity: .6; }
}
