html{ scroll-behavior:smooth; }
.fdl{
  --fdl-bg:#ffffff;
  --fdl-ink:#1d1d1f;
  --fdl-muted:#6e6e73;
  --fdl-line:#e5e5e5;
  --fdl-wine:#9a2b3b;
  --fdl-cream:#f5f5f7;
  --fdl-serif:'Fraunces', Georgia, serif;
  --fdl-sans:'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  background:var(--fdl-bg); color:var(--fdl-ink);
  font-family:var(--fdl-sans); -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.fdl *{ box-sizing:border-box; }
.fdl a{ color:inherit; }
.fdl ::selection{ background:var(--fdl-wine); color:#fff; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .fdl *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

.fdl-wrap{ max-width:1100px; margin:0 auto; padding-left:24px; padding-right:24px; }
@media (max-width:720px){ .fdl-wrap{ padding-left:20px; padding-right:20px; } }

/* ---------- scroll reveal ---------- */
.fdl-reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.fdl-reveal.is-visible{ opacity:1; transform:translateY(0); }

/* ---------- top bar ---------- */
.fdl-topbar{ display:flex; align-items:center; justify-content:space-between; padding-top:26px; padding-bottom:26px; max-width:1100px; margin:0 auto; padding-left:24px; padding-right:24px; }
@media (max-width:720px){ .fdl-topbar{ padding-left:20px; padding-right:20px; } }
.fdl-mark{ font-family:var(--fdl-sans); font-weight:600; font-size:16px; text-decoration:none; color:var(--fdl-ink); letter-spacing:-.01em; }
.fdl-topbar nav a{ font-family:var(--fdl-sans); font-size:14px; text-decoration:none; color:var(--fdl-muted); transition:color .15s ease; }
.fdl-topbar nav a:hover{ color:var(--fdl-wine); }

/* ---------- hero (centrovaný) ---------- */
.fdl-hero{ text-align:center; padding-top:64px; padding-bottom:0; display:flex; flex-direction:column; align-items:center; }
@media (max-width:720px){ .fdl-hero{ padding-top:36px; } }
.fdl-eyebrow{ font-family:var(--fdl-sans); font-size:15px; color:var(--fdl-wine); margin:0 0 18px; font-weight:600; }
.fdl h1{
  font-family:var(--fdl-serif); font-weight:600; font-size:clamp(38px,6vw,72px);
  line-height:1.05; letter-spacing:-.015em; margin:0 0 22px; color:var(--fdl-ink);
  max-width:16ch;
}
.fdl-lead{
  font-family:var(--fdl-sans); font-size:19px; line-height:1.55; color:var(--fdl-muted);
  max-width:38ch; margin:0 auto 34px; font-weight:400;
}
.fdl-cta-row{ display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-bottom:64px; }
@media (max-width:420px){ .fdl-cta-row{ flex-direction:column; align-items:stretch; width:100%; max-width:280px; } .fdl-cta-row .fdl-btn{ text-align:center; } }
.fdl-btn{
  font-family:var(--fdl-sans); font-weight:500; font-size:15px;
  padding:14px 26px; border-radius:980px; text-decoration:none; cursor:pointer;
  border:1px solid transparent; transition:transform .15s ease, opacity .15s ease, border-color .15s ease, background .15s ease;
  display:inline-block;
}
.fdl-btn-solid{ background:var(--fdl-ink); color:#fff; }
.fdl-btn-solid:hover{ transform:translateY(-1px); opacity:.86; }
.fdl-btn-line{ border-color:var(--fdl-line); color:var(--fdl-ink); }
.fdl-btn-line:hover{ border-color:var(--fdl-ink); }

/* ---------- ticket (statická, product-shot styl) ---------- */
.fdl-ticket-stage{
  width:100%; background:var(--fdl-cream); padding:88px 24px 100px;
  display:flex; justify-content:center;
}
@media (max-width:720px){ .fdl-ticket-stage{ padding:56px 16px 64px; } }
.fdl-ticket-float{
  width:100%; max-width:560px;
  animation:fdl-float 7s ease-in-out infinite;
  will-change:transform;
}
@keyframes fdl-float{
  0%,100%{ transform:translateY(0) rotate(0deg); }
  50%{ transform:translateY(-10px) rotate(-0.4deg); }
}
.fdl-ticket{
  position:relative; width:100%; max-width:560px;
  background:#ffffff; border:1px solid var(--fdl-line); border-radius:20px;
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
  padding:38px 34px; gap:22px;
  box-shadow:0 40px 80px -32px rgba(0,0,0,.22);
  transition:transform .15s ease-out;
  will-change:transform;
}
.fdl-ticket-notch{
  position:absolute; width:26px; height:26px; border-radius:50%;
  background:var(--fdl-cream); border:1px solid var(--fdl-line);
  top:50%; transform:translateY(-50%);
}
.fdl-ticket-notch-l{ left:-13px; } .fdl-ticket-notch-r{ right:-13px; }
.fdl-ticket-left{ display:flex; flex-direction:column; gap:6px; min-width:0; text-align:left; }
.fdl-ticket-label{ font-family:var(--fdl-sans); font-size:12.5px; font-weight:600; color:var(--fdl-wine); }
.fdl-ticket-word{ font-family:var(--fdl-serif); font-weight:600; font-size:clamp(28px,4.4vw,38px); color:var(--fdl-ink); letter-spacing:-.01em; line-height:1; margin:2px 0; }
.fdl-ticket-sub{ font-family:var(--fdl-sans); font-size:12.5px; color:var(--fdl-muted); }
.fdl-ticket-tags{ font-family:var(--fdl-sans); font-size:12.5px; color:var(--fdl-ink); margin-top:10px; padding-top:10px; border-top:1px solid var(--fdl-line); }
.fdl-ticket-divider{ width:0; align-self:stretch; border-left:2px dashed rgba(29,29,31,.18); }
.fdl-ticket-right{ display:flex; flex-direction:column; align-items:center; gap:8px; }
.fdl-ticket-qrlabel{ font-family:var(--fdl-sans); font-weight:600; font-size:12px; color:var(--fdl-ink); }
.fdl-ticket-qr{
  width:66px; height:66px; border:2px solid var(--fdl-ink); border-radius:4px;
  background-color:#fff;
  background-image:
    linear-gradient(45deg, var(--fdl-ink) 25%, transparent 25%),
    linear-gradient(-45deg, var(--fdl-ink) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, var(--fdl-ink) 75%),
    linear-gradient(-45deg, transparent 75%, var(--fdl-ink) 75%);
  background-size:16px 16px;
  background-position:0 0, 0 8px, 8px -8px, -8px 0px;
}
@media (max-width:520px){
  .fdl-ticket{ grid-template-columns:1fr; text-align:center; }
  .fdl-ticket-left{ text-align:center; align-items:center; }
  .fdl-ticket-divider{ display:none; }
  .fdl-ticket-right{ border-top:1px solid var(--fdl-line); padding-top:16px; }
}

/* ---------- how it works ---------- */
.fdl-band{ background:#ffffff; padding-top:96px; padding-bottom:96px; }
.fdl-how-grid{ text-align:center; max-width:680px; }
.fdl-how-grid h2{
  font-family:var(--fdl-serif); font-weight:600; font-size:clamp(30px,4vw,44px);
  line-height:1.1; letter-spacing:-.01em; margin:0 0 26px; color:var(--fdl-ink);
}
.fdl-how-copy p{ font-family:var(--fdl-sans); font-size:18px; line-height:1.65; color:var(--fdl-muted); margin:0 0 20px; }
.fdl-how-copy p:last-child{ margin-bottom:0; }
.fdl-how-copy strong{ color:var(--fdl-ink); font-weight:600; }

/* ---------- features ---------- */
.fdl-section{ padding-top:96px; padding-bottom:96px; background:var(--fdl-cream); }
@media (max-width:720px){ .fdl-section{ padding-top:60px; padding-bottom:60px; } }
.fdl-section-head{ text-align:center; margin:0 auto 56px; max-width:520px; }
.fdl-section-head h2{
  font-family:var(--fdl-serif); font-weight:600; font-size:clamp(30px,4vw,44px);
  letter-spacing:-.01em; margin:0 0 16px; color:var(--fdl-ink);
}
.fdl-section-head p{ font-family:var(--fdl-sans); font-size:17px; color:var(--fdl-muted); margin:0; line-height:1.6; }

.fdl-flist{ display:grid; grid-template-columns:1fr 1fr; gap:40px 48px; max-width:900px; margin:0 auto; }
@media (max-width:720px){ .fdl-flist{ grid-template-columns:1fr; gap:32px; } }
.fdl-fitem{ background:#fff; border:1px solid var(--fdl-line); border-radius:16px; padding:28px; text-align:left; }
.fdl-fitem h3{ font-family:var(--fdl-sans); font-weight:600; font-size:19px; margin:0 0 10px; color:var(--fdl-ink); letter-spacing:-.005em; }
.fdl-fitem p{ font-family:var(--fdl-sans); font-size:15.5px; line-height:1.6; color:var(--fdl-muted); margin:0; }

/* ---------- footer ---------- */
.fdl footer{
  border-top:1px solid var(--fdl-line); padding-top:72px; padding-bottom:56px;
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:28px;
  background:#ffffff;
}
.fdl footer h4{ font-family:var(--fdl-serif); font-weight:600; font-size:30px; margin:0 0 14px; letter-spacing:-.01em; }
.fdl footer p{ font-family:var(--fdl-sans); font-size:16px; line-height:1.6; color:var(--fdl-muted); max-width:44ch; margin:0 auto 26px; }
.fdl-contact-block{ font-family:var(--fdl-sans); font-size:15px; line-height:2.1; }
.fdl-contact-block a{ text-decoration:none; color:var(--fdl-ink); border-bottom:1px solid var(--fdl-line); }
.fdl-contact-block a:hover{ border-color:var(--fdl-wine); color:var(--fdl-wine); }
.fdl-contact-label{ color:var(--fdl-muted); display:inline-block; width:100px; text-align:right; margin-right:8px; }
.fdl-foot-meta{ font-family:var(--fdl-sans); font-size:13px; color:var(--fdl-muted); }
