:root{
    --ink:#1c1c30;
    --ink-70:rgb(28 28 48 / 68%);
    --ink-50:rgb(28 28 48 / 50%);
    --accent:#e73a1d;
    --accent-dark:#721927;
    --accent-tint:#ffefeb;
    --accent-tint-2:#fff6f3;
    --bg:#fff;
    --soft:#f6f5f3;
    --soft-2:#efeee9;
    --line:#e6e2dc;
    --white:#fff;
    --radius:18px;
    --radius-sm:10px;
    --max:1180px;
    --shadow:0 20px 60px -30px rgb(28 28 48 / 25%);
  }
  *{box-sizing:border-box;}

  html{
    scroll-behavior:smooth;
    overflow-x:clip;
  }

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}

    *{
      animation-duration:.001ms !important;
      animation-iteration-count:1 !important;
      transition-duration:.001ms !important;
    }
  }

  body{
    margin:0;
    overflow-x:clip;
    background:var(--bg);
    color:var(--ink);
    font-family:Inter,system-ui,sans-serif;
    font-size:16px;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3{
    font-family:'Space Grotesk',sans-serif;
    color:var(--ink);
    margin:0 0 .5em;
    letter-spacing:-.01em;
    line-height:1.12;
  }
  p{margin:0 0 1em;}
  a{color:inherit;}
  a:hover{color:var(--accent);}

  .wrap{
    max-width:var(--max);
    margin:0 auto;
    padding:0 24px;
  }

  .eyebrow{
    font-family:'IBM Plex Mono',monospace;
    font-size:.78rem;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--accent);
    font-weight:600;
    display:inline-flex;
    align-items:center;
    gap:.6em;
  }

  .eyebrow::before{
    content:"";
    width:18px;height:1.5px;
    background:var(--accent);
    display:inline-block;
  }
  section{padding:88px 0;}
  #o-konferenci,#recnici,#registrace,#partneri,#faq,#kontakt,#uvod{scroll-margin-top:74px;}

  @media(width <=720px){ section{padding:60px 0;} }

  .btn{
    display:inline-flex;
    position:relative;
    align-items:center;
    justify-content:center;
    gap:.5em;
    padding:0.975rem 2.9rem 0.975rem 1.35rem;
    border:none;
    border-radius:0;
    box-shadow:0 12px 28px rgb(28 28 48 / 12%);
    font-family:Outfit,sans-serif;
    font-size:clamp(1rem, 0.5vw + 0.8rem, 1.25rem);
    font-weight:600;
    line-height:1;
    text-align:center;
    text-decoration:none;
    white-space:nowrap;
    cursor:pointer;
    transition:transform .25s ease, box-shadow .25s ease, background-color .25s ease, background-position .25s ease, filter .25s ease, border-color .25s ease, color .25s ease;
  }

  .btn:focus-visible{
    outline:.1875rem solid rgb(255 121 29 / 65%);
    outline-offset:.1875rem;
  }

  .btn::after{
    content:"";
    position:absolute;
    top:50%; right:.9em;
    width:1.05em; height:1.05em;
    transform:translate(0,-50%);
    transition:transform .25s ease;
    background:center/contain no-repeat;
  }
  .btn-primary::after{background-image:url('https://aivkostce.cz/themes/custom/webai/images/button-tick.svg');}
  .btn:hover::after,.btn:focus-visible::after{transform:translate(3px,-50%);}

  .btn-primary{
    color:var(--white);
    background-color:var(--accent);
    background-image:linear-gradient(281deg,#ff791d 7.03%,#e73a1d 25.27%,#e61f23 36.8%,#c8001c 54.62%,#721927 82.68%,#451923 95.99%);
    background-position:0 50%;
    background-size:220% 100%;
  }

  .btn-primary:hover,.btn-primary:focus-visible{
    transform:translateY(-.125rem);
    box-shadow:0 20px 34px rgb(28 28 48 / 22%);
    filter:saturate(1.08) contrast(1.04);
    background-position:100% 50%;
    color:var(--white);
  }

  .btn-primary:active{
    transform:translateY(.0625rem) scale(.985);
    box-shadow:0 8px 18px rgb(28 28 48 / 18%);
  }

  .btn-nav{
    padding:.85rem 2.7rem .85rem 1rem;
    font-size:clamp(.88rem, .4vw + .72rem, 1.08rem);
    box-shadow:0 8px 18px rgb(28 28 48 / 10%);
  }
  .btn-nav-icon{display:none;}
  .btn-nav:hover{box-shadow:0 14px 24px rgb(28 28 48 / 18%);}

  header{
    position:sticky; top:0; z-index:50;
    background:rgb(255 255 255 / 90%);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }

  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 24px;
    max-width:var(--max); margin:0 auto;
  }

  .nav-logo img{
    height:26px;
    display:block;
  }

  .nav-links{
    display:flex; gap:28px; list-style:none; margin:0; padding:0;
    font-size:.94rem; font-weight:500;
  }

  .nav-links a{
    text-decoration:none;
    color:var(--ink-70);
    transition:color .15s;
  }
  .nav-links a:hover{color:var(--accent);}

  .nav-cta{
    display:flex;
    align-items:center;
    gap:18px;
  }

  .nav-toggle{
    display:none;
    background:none;
    border:none;
    cursor:pointer;
    padding:6px;
  }
  .nav-toggle svg{display:block;}

  @media(width <=860px){
    .nav-links{
      position:fixed; inset:64px 16px auto;
      background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
      flex-direction:column; padding:18px 22px; box-shadow:var(--shadow);
      transform:translateY(-12px); opacity:0; pointer-events:none; transition:all .2s ease;
    }

    .nav-links.open{
      transform:translateY(0);
      opacity:1;
      pointer-events:auto;
    }
    .nav-toggle{display:block;}
    .nav-cta .btn-primary-label-full{display:none;}
    .nav-cta .btn-nav{padding:.7rem; }
    .nav-cta .btn-nav::after{display:none;}

    .nav-cta .btn-nav-icon{
      display:inline-flex;
      align-items:center;
      justify-content:center;
    }
  }

  /* HERO (A) : light opener with blue network */
  .hero{
    position:relative;
    overflow:hidden;
    min-height:calc(100svh - 57px);
    display:flex; align-items:center;
    padding:110px 0 96px;
    color:var(--ink);
    background:
      radial-gradient(1100px 640px at 82% -8%, rgb(47 75 143 / 10%) 0%, rgb(47 75 143 / 0%) 58%),
      radial-gradient(760px 520px at 8% 108%, rgb(47 75 143 / 8%) 0%, rgb(47 75 143 / 0%) 60%),
      linear-gradient(180deg,#fff 0%, #f4f6fb 100%);
  }

  @media(width <=900px){ .hero-grid{grid-template-columns:1fr;} }

  .meta-row{
    display:flex; flex-wrap:wrap; gap:10px;
    margin:26px 0 30px;
  }

  .meta-chip{
    display:flex; align-items:center; gap:8px;
    font-family:'IBM Plex Mono',monospace;
    font-size:.85rem; font-weight:600;
    background:var(--white);
    border:1px solid var(--line);
    padding:9px 14px; border-radius:999px;
    color:var(--ink);
  }
  .meta-chip svg{flex:none;}

  .hero-actions{
    display:flex;
    align-items:center;
    gap:18px;
    flex-wrap:wrap;
  }

  @media(width <=900px){
    .stamp{
      right:auto;
      left:0;
      top:-30px;
    }
  }

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

  @keyframes spin{ to{ transform:rotate(360deg); } }

  @keyframes floaty{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-12px); } }

  @keyframes shimmer{ 0%{ background-position:0% 50%; } 100%{ background-position:200% 50%; } }

  .rv{
    opacity:0;
    transform:translateY(28px);
    transition:opacity .75s cubic-bezier(.16,.8,.24,1), transform .75s cubic-bezier(.16,.8,.24,1);
  }

  .rv.in{
    opacity:1;
    transform:none;
  }

  @media (prefers-reduced-motion: reduce){
    .rv{
      opacity:1 !important;
      transform:none !important;
      transition:none !important;
    }
  }

  .section-head{
    max-width:800px;
    margin-bottom:44px;
  }

  /* bigger, punchier section headings (B) */
  .section-head h2{
    font-size:clamp(2rem,4.2vw,3.1rem);
    font-weight:700;
    letter-spacing:-.025em;
    line-height:1.06;
  }

  .section-head p{
    color:var(--ink-70);
    font-size:1.05rem;
  }

  .about{
    background:var(--white);
    padding-top:20px;
  }

  .about-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:56px;
  }

  @media(width <=860px){
    .about-grid{
      grid-template-columns:1fr;
      gap:36px;
    }
  }

  .about-text p{
    font-size:1.05rem;
    color:var(--ink-70);
  }

  .checklist{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:16px;
  }

  .checklist li{
    display:flex; gap:14px; align-items:flex-start;
    font-size:1rem; color:var(--ink);
  }

  .checklist .tick{
    flex:none; width:26px; height:26px; border-radius:50%;
    background:var(--accent-tint); color:var(--accent);
    display:flex; align-items:center; justify-content:center;
    margin-top:2px;
  }

  /* subtle section tint for dynamics (B) */
  .takeaways{
    background:linear-gradient(180deg,#fff 0%, var(--soft) 100%);
    padding-bottom:150px;
  }

  .cards-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
  }

  @media(width <=900px){ .cards-grid{grid-template-columns:repeat(2,1fr);} }

  @media(width <=600px){ .cards-grid{grid-template-columns:1fr;} }

  .card{
    background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
    padding:26px; display:flex; flex-direction:column; gap:14px;
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  }

  .card:hover{
    transform:translateY(-3px);
    box-shadow:var(--shadow);
    border-color:transparent;
  }

  .card .icon{
    width:44px; height:44px; border-radius:12px;
    background:var(--accent-tint); display:flex; align-items:center; justify-content:center;
  }

  .card h3{
    font-size:1.05rem;
    margin:0;
  }

  /* subtle section tint for dynamics (B) */
  .audience{
    background:radial-gradient(760px 460px at 92% -10%, var(--accent-tint-2) 0%, #fff 62%);
    padding-top:60px;
  }
  .speakers{background:var(--soft);}

  .speaker-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:20px;
  }
  .speaker-grid > *{min-width:0;}

  @media(width <=520px){
    .speaker-card{padding:18px 12px;}
    .speaker-card .role{font-size:.8rem;}
  }

  @media(width <=860px){ .speaker-grid{grid-template-columns:repeat(2,1fr);} }

  .speaker-card{
    background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
    padding:24px 20px; text-align:center;
  }
  .speaker-card.tbd{border-style:dashed;}

  .speaker-avatar{
    width:100%; max-width:170px; aspect-ratio:1/1; height:auto; border-radius:10px; margin:0 auto 16px; overflow:hidden;
    background:var(--soft-2);
    display:flex; align-items:center; justify-content:center;
    color:var(--ink-50);
  }

  .speaker-avatar img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }

  .speaker-card .name{
    font-family:'Space Grotesk',sans-serif;
    font-weight:600;
    font-size:1.05rem;
    color:var(--ink);
  }

  .speaker-card .role{
    font-size:.85rem;
    color:var(--ink-70);
    margin-top:2px;
  }
  .speaker-card.tbd .name,.speaker-card.tbd .role{color:var(--ink-50);}

  .speaker-li{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-top:12px;
    color:#0A66C2;
    transition:opacity .15s, transform .15s;
  }

  .speaker-li:hover{
    opacity:.75;
    transform:translateY(-1px);
    color:#0A66C2;
  }

  .register{
    background:none; color:var(--ink);
    margin:0; padding:0;
    position:relative;
  }

  .register .wrap{
    max-width:840px;
    text-align:center;
    position:relative;
    z-index:2;
  }

  .register h2{
    color:var(--ink);
    font-size:clamp(1.7rem,3.6vw,2.4rem);
  }

  .register p{
    color:var(--ink-70);
    font-size:1.05rem;
    max-width:56ch;
    margin:0 auto 28px;
  }
  .register .eyebrow{color:var(--accent);}
  .register .eyebrow::before{background:var(--accent);}

  .register .btn-primary{
    font-size:1.05rem;
    padding:17px 32px;
  }

  .register-note{
    color:var(--ink-50);
    font-size:.85rem;
  }

  .reg-form{
    max-width:560px;
    margin:8px auto 0;
    text-align:left;
    display:flex;
    flex-direction:column;
    gap:16px;
    padding:34px 34px 30px;
    border-radius:20px;
    border:3px solid transparent;
    background:linear-gradient(var(--white),var(--white)) padding-box, linear-gradient(281deg,#ff791d 7%,#e73a1d 25%,#e61f23 37%,#c8001c 55%,#721927 83%,#451923 96%) border-box;
    background-size:auto, 280% 280%;
    background-position:center, 0% 50%;
    box-shadow:0 24px 50px -30px rgb(231 58 29 / 50%);
    animation:reg-border 7s ease-in-out infinite;
  }

  @keyframes reg-border{0%{background-position:center,0% 50%;}50%{background-position:center,100% 50%;}100%{background-position:center,0% 50%;}}

  .reg-field{
    display:flex;
    flex-direction:column;
    gap:6px;
  }

  .reg-field label{
    font-family:'IBM Plex Mono',monospace;
    font-size:.72rem;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:rgb(28 28 48 / 90%);
    font-weight:600;
  }
  .reg-field label .req{color:var(--accent);}

  .reg-field input[type="text"],.reg-field input[type="tel"],.reg-field input[type="email"]{
    width:100%; padding:13px 15px; border-radius:var(--radius-sm);
    border:1px solid var(--line); background:var(--white); color:var(--ink);
    font-family:Inter,sans-serif; font-size:1rem; transition:border-color .15s, background .15s, box-shadow .15s;
  }
  .reg-field input::placeholder{color:var(--ink-50);}

  .reg-field input:focus{
    outline:none;
    border-color:var(--accent);
    box-shadow:0 0 0 3px rgb(231 58 29 / 12%);
  }

  .reg-field input.err{
    border-color:#e0483a;
    background:#fff5f3;
  }

  .reg-err{
    color:#c8341f;
    font-size:.82rem;
    margin:0;
  }

  .reg-gdpr{
    display:flex;
    align-items:flex-start;
    gap:11px;
    font-size:.9rem;
    color:var(--ink-70);
    line-height:1.45;
    cursor:pointer;
  }

  /* stylelint-disable-next-line no-descending-specificity -- .reg-gdpr and .reg-field never match the same element */
  .reg-gdpr input{
    margin-top:3px;
    width:18px;
    height:18px;
    flex:none;
    accent-color:var(--accent);
    cursor:pointer;
  }

  /* stylelint-disable-next-line no-descending-specificity -- .reg-gdpr and .nav-links never match the same element */
  .reg-gdpr a{
    color:var(--accent);
    text-decoration:underline;
    text-underline-offset:2px;
  }

  .reg-form .btn-primary{
    width:100%;
    margin-top:4px;
    padding-right:3rem;
  }

  .reg-form .btn-primary:disabled{
    opacity:.45;
    cursor:not-allowed;
    filter:grayscale(.3);
    transform:none;
    box-shadow:0 8px 18px rgb(28 28 48 / 18%);
  }

  .reg-alert{
    background:#fff1ee;
    border:1px solid rgb(231 58 29 / 35%);
    color:#c8341f;
    border-radius:var(--radius-sm);
    padding:12px 15px;
    font-size:.9rem;
    margin:0;
  }

  .reg-success{
    max-width:560px;
    margin:8px auto 0;
    text-align:center;
    padding:40px 34px;
    background:var(--white);
    border:1px solid var(--line);
    border-radius:20px;
    box-shadow:0 24px 50px -32px rgb(28 28 48 / 40%);
  }

  .reg-success .check{
    width:64px;
    height:64px;
    border-radius:50%;
    margin:0 auto 20px;
    background:var(--accent-tint);
    border:1px solid var(--accent-tint);
    display:flex;
    align-items:center;
    justify-content:center;
  }

  .reg-success p{
    color:var(--ink);
    font-size:1.2rem;
    font-family:'Space Grotesk',sans-serif;
    margin:0;
  }

  .register-glow{
    display:none;
  }
  .hosts{background:var(--white);}

  .host-grid{
    display:flex;
    justify-content:center;
    gap:28px;
    flex-wrap:wrap;
  }

  .host-card{
    width:260px; text-align:center; padding:28px 22px;
    border:1px solid var(--line); border-radius:var(--radius);
    background:var(--soft);
  }

  .host-avatar{
    width:96px; height:96px; border-radius:50%; margin:0 auto 16px; overflow:hidden;
    background:var(--accent-tint);
    display:flex; align-items:center; justify-content:center;
    color:var(--accent);
  }

  .host-avatar img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }

  /* stylelint-disable-next-line no-descending-specificity -- .host-card and .speaker-card never match the same element */
  .host-card .name{
    font-family:'Space Grotesk',sans-serif;
    font-weight:600;
    font-size:1.05rem;
  }

  /* stylelint-disable-next-line no-descending-specificity -- .host-card and .speaker-card never match the same element */
  .host-card .role{
    font-size:.86rem;
    color:var(--ink-70);
    margin-bottom:6px;
  }

  .host-card .bio{
    font-size:.86rem;
    color:var(--ink-50);
  }

  @media(width <=720px){ .stats-grid{grid-template-columns:repeat(2,1fr);} }

  .stat b{
    display:block; font-family:'Space Grotesk',sans-serif; font-size:clamp(1.6rem,3vw,2.2rem);
    color:var(--accent);
  }

  .stat span{
    font-size:.9rem;
    color:var(--ink-70);
  }

  .partners{
    background:var(--white);
    text-align:center;
  }

  .partner-logos{
    display:flex; align-items:center; justify-content:center; gap:56px; flex-wrap:wrap;
    margin-top:35px;
  }
  .partner-logos img{height:39px;}
  .faq{background:var(--soft);}

  .faq-list{
    display:flex;
    flex-direction:column;
    gap:12px;
    max-width:760px;
  }

  .faq-item{
    background:var(--white); border:1px solid var(--line); border-radius:var(--radius-sm);
    overflow:hidden;
  }

  .faq-q{
    width:100%; text-align:left; background:none; border:none; cursor:pointer;
    padding:18px 22px; display:flex; justify-content:space-between; align-items:center; gap:16px;
    font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:1rem; color:var(--ink);
  }

  .faq-q:focus-visible{
    outline:3px solid var(--accent);
    outline-offset:-3px;
  }

  .faq-q .plus{
    transition:transform .2s ease;
    color:var(--accent);
    flex:none;
  }
  .faq-item.open .faq-q .plus{transform:rotate(45deg);}

  .faq-a{
    max-height:0; overflow:hidden; transition:max-height .25s ease;
    padding:0 22px;
  }
  .faq-item.open .faq-a{padding-bottom:18px;}

  .faq-a p{
    color:var(--ink-70);
    font-size:.96rem;
    margin:0;
  }
  .contact{background:var(--white);}

  .contact-box{
    display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px;
    background:var(--accent-tint-2); border:1px solid var(--accent-tint);
    border-radius:var(--radius); padding:34px 36px;
  }
  .contact-box h3{margin:0 0 6px;}

  .contact-box p{
    margin:0;
    color:var(--ink-70);
  }

  footer{
    background:var(--ink);
    color:rgb(255 255 255 / 70%);
    padding:48px 0 28px;
  }

  .footer-top{
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px;
    padding-bottom:28px; border-bottom:1px solid rgb(255 255 255 / 12%);
  }
  .footer-top img{height:24px;}

  .footer-top .footer-logo{
    height:26px;
    width:auto;
    display:block;
  }

  .footer-links{
    display:flex;
    gap:24px;
    list-style:none;
    padding:0;
    margin:0;
    font-size:.9rem;
  }

  /* stylelint-disable-next-line no-descending-specificity -- .footer-links and .nav-links never match the same element */
  .footer-links a{
    text-decoration:none;
    color:rgb(255 255 255 / 70%);
  }
  .footer-links a:hover{color:var(--white);}

  .footer-bottom{
    padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
    font-size:.8rem; color:rgb(255 255 255 / 45%);
  }

  /* ===================== v1B — dynamic redesign ===================== */

  /* bigger, punchier section headings (B) */
  .about-text h2{
    font-size:clamp(1.9rem,3.6vw,2.7rem);
    font-weight:700;
    letter-spacing:-.02em;
  }

  @media(width <=900px){ .hero-shield{display:none;} }

  .btn-hero-ghost{
    color:var(--ink); background:#fff; border:1px solid var(--line);
    box-shadow:0 6px 18px rgb(28 28 48 / 8%); font-weight:500;
  }
  .btn-hero-ghost::after{background-image:url('https://aivkostce.cz/themes/custom/webai/images/button-tick-orange.svg');}

  .btn-hero-ghost:hover{
    background:#fff;
    border-color:var(--accent);
    color:var(--accent-dark);
    transform:translateY(-.125rem);
    box-shadow:0 12px 26px rgb(28 28 48 / 12%);
  }

  .hero-coorg{
    display:flex;
    align-items:center;
    gap:18px;
    flex-wrap:wrap;
    margin-top:40px;
  }

  .hero-coorg .lbl{
    font-family:'IBM Plex Mono',monospace;
    font-size:.72rem;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--ink-50);
  }

  .hero-coorg .logos{
    display:flex;
    gap:14px;
    flex-wrap:wrap;
  }

  .coorg-chip{
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    padding:0 20px;
    height:58px;
    display:flex;
    align-items:center;
    box-shadow:0 12px 30px -14px rgb(28 28 48 / 28%);
    transition:transform .18s ease, box-shadow .18s ease;
  }

  .coorg-chip:hover{
    transform:translateY(-3px);
    box-shadow:0 18px 40px -16px rgb(28 28 48 / 34%);
  }

  .coorg-chip img{
    height:26px;
    width:auto;
    display:block;
  }

  .hero-scroll{
    position:absolute;
    left:50%;
    bottom:24px;
    transform:translateX(-50%);
    z-index:2;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    color:var(--ink-50);
    text-decoration:none;
    font-family:'IBM Plex Mono',monospace;
    font-size:.68rem;
    letter-spacing:.16em;
    text-transform:uppercase;
    animation:bob 2.4s ease-in-out infinite;
  }
  .hero-scroll:hover{color:var(--accent);}

  @keyframes hero-float-1{0%,100%{transform:translate(0,0);}50%{transform:translate(-44px,34px);}}

  @keyframes hero-float-2{0%,100%{transform:translate(0,0);}50%{transform:translate(44px,-30px);}}

  @keyframes node-pulse{
    0%,100%{
      r:4.5;
      fill-opacity:.85;
    }

    50%{
      r:6.5;
      fill-opacity:1;
    }
  }

  @keyframes bob{0%,100%{transform:translateX(-50%) translateY(0);}50%{transform:translateX(-50%) translateY(6px);}}

  @keyframes draw-check{to{stroke-dashoffset:0;}}

  /* ---------- HERO v2A : video background, centered title only ---------- */
  .hero.hero-video{
    position:relative; overflow:hidden;
    min-height:calc(100svh - 57px);
    display:flex; align-items:center; justify-content:center;
    padding:120px 0;
    background:#0b0d16 radial-gradient(circle at 50% 40%, #1c2338 0%, #0b0d16 72%);
    color:var(--white);
    text-align:center;
  }

  .hero-video-bg{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; z-index:0; pointer-events:none;
  }

  .hero-video-scrim{
    position:absolute; inset:0; z-index:1;
    background:
      radial-gradient(circle at 50% 46%, rgb(11 13 22 / 13%) 0%, rgb(11 13 22 / 57%) 62%, rgb(11 13 22 / 81%) 100%),
      linear-gradient(180deg, rgb(11 13 22 / 55%) 0%, rgb(11 13 22 / 15%) 34%, rgb(11 13 22 / 50%) 78%, #0f1220 100%);
  }

  .hero-video-inner{
    position:relative;
    z-index:2;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
  }

  .hero-video .eyebrow{
    color:#fff; letter-spacing:.34em; font-size:.86rem;
    padding:9px 20px; border:1px solid rgb(255 255 255 / 40%); border-radius:999px;
    background:rgb(255 255 255 / 7%); backdrop-filter:blur(6px);
    margin-bottom:22px;
  }
  .hero-video .eyebrow::before{display:none;}

  .hero-video h1{
    color:#fff; font-weight:700; letter-spacing:-.035em; line-height:.98; margin:0;
    font-size:clamp(2.9rem,9vw,7.4rem);
    text-shadow:0 24px 70px rgb(0 0 0 / 55%);
  }

  .hero-video .hero-scroll{
    left:50%; bottom:34px; color:#fff; opacity:.95; gap:10px;
    font-size:.72rem; letter-spacing:.2em; text-shadow:0 2px 12px rgb(0 0 0 / 50%);
  }

  .hero-video .hero-scroll:hover{
    color:#fff;
    opacity:1;
  }

  .hero-scroll-circle{
    width:46px; height:46px; border-radius:50%;
    border:1.5px solid rgb(255 255 255 / 70%); background:rgb(255 255 255 / 10%);
    backdrop-filter:blur(6px);
    display:flex; align-items:center; justify-content:center;
    transition:background .2s ease, border-color .2s ease, transform .2s ease;
  }

  .hero-scroll:hover .hero-scroll-circle{
    background:var(--accent);
    border-color:var(--accent);
    transform:translateY(3px);
  }

  /* ---------- INTRO section (below the video hero) ---------- */
  .intro{
    position:relative; overflow:hidden;
    padding:86px 0 78px;
    color:var(--white);
    background:linear-gradient(178deg,#0f1220 0%,#161a2c 42%,#1c1c30 100%);
  }

  .intro-bg{
    position:absolute;
    inset:0;
    z-index:0;
    overflow:hidden;
  }

  .intro-net{position:absolute; inset:0; width:100%; height:100%; opacity:.3;
    mask-image:radial-gradient(circle at 60% 40%, #000 0%, transparent 86%);}
  .intro-net .net-lines line{stroke-opacity:.5;}
  .intro-net .net-dots circle{fill-opacity:.75;}

  .intro-net .node-hot{
    fill:var(--accent);
    fill-opacity:.95;
    animation:node-pulse 3.4s ease-in-out infinite;
  }

  .intro-glow{
    position:absolute;
    border-radius:50%;
    filter:blur(34px);
    opacity:.55;
  }

  .intro-glow-1{
    width:600px;
    height:600px;
    right:-12%;
    top:-40%;
    background:radial-gradient(circle, rgb(231 58 29 / 40%), transparent 66%);
    animation:hero-float-1 19s ease-in-out infinite;
  }

  .intro-glow-2{
    width:520px;
    height:520px;
    left:-12%;
    bottom:-46%;
    background:radial-gradient(circle, rgb(47 75 143 / 55%), transparent 68%);
    animation:hero-float-2 23s ease-in-out infinite;
  }

  .intro-inner{
    position:relative;
    z-index:2;
    max-width:900px;
  }

  .intro-title{
    color:#fff; font-weight:700; letter-spacing:-.028em; line-height:1.06;
    font-size:clamp(1.9rem,4.4vw,3.3rem); margin:0 0 .45em;
    background-image:linear-gradient(100deg,#ff8a52 0%,#ffb894 26%,#fff 52%,#ffb894 76%,#ff8a52 100%);
    background-size:200% auto; background-clip:text;
    -webkit-text-fill-color:transparent;
    animation:shimmer 8s linear infinite;
  }

  .intro-lede{
    color:rgb(255 255 255 / 78%);
    font-size:1.14rem;
    max-width:58ch;
    margin:0 0 1.6em;
  }

  .intro-lede em{
    color:#fff;
    font-style:normal;
    font-weight:600;
    border-bottom:2px solid rgb(255 138 82 / 65%);
  }
  .intro .meta-row{margin:0 0 32px;}

  .intro .meta-chip{
    background:rgb(255 255 255 / 8%);
    border-color:rgb(255 255 255 / 20%);
    color:rgb(255 255 255 / 94%);
    backdrop-filter:blur(6px);
  }
  .intro .meta-chip svg{color:#ff9b6b;}

  .intro .btn-hero-ghost{
    color:#fff; background:rgb(255 255 255 / 7%); border:1px solid rgb(255 255 255 / 32%); box-shadow:none;
  }
  .intro .btn-hero-ghost::after{background-image:url('https://aivkostce.cz/themes/custom/webai/images/button-tick.svg');}

  .intro .btn-hero-ghost:hover{
    background:rgb(255 255 255 / 14%);
    border-color:#fff;
    color:#fff;
  }

  .intro .hero-coorg{
    margin-top:38px;
    padding-top:28px;
    border-top:1px solid rgb(255 255 255 / 14%);
  }
  .intro .hero-coorg .lbl{color:rgb(255 255 255 / 55%);}

  .intro .coorg-chip{
    border-color:transparent;
    box-shadow:0 16px 38px -14px rgb(0 0 0 / 60%);
  }

  @media (prefers-reduced-motion: reduce){
    .intro-title,.intro-glow,.intro-net .node-hot,.hero-video .hero-scroll{animation:none;}
  }

  /* ---------- BRANDBAND (C) ---------- */
  .brandband{
    background:linear-gradient(180deg,#fff 0%, #faf9f7 100%);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }

  .brandband-grid{
    display:grid;
    grid-template-columns:300px 1fr;
    gap:48px;
    align-items:center;
  }

  @media(width <=820px){
    .brandband-grid{
      grid-template-columns:1fr;
      gap:30px;
    }
  }

  .podcast-tile{
    position:relative; aspect-ratio:1/1; width:100%; border-radius:var(--radius); overflow:hidden;
    display:block; text-decoration:none; background:var(--soft-2);
    box-shadow:var(--shadow); transition:transform .2s ease, box-shadow .2s ease;
  }

  .podcast-tile:hover{
    transform:translateY(-4px);
    box-shadow:0 30px 70px -28px rgb(28 28 48 / 50%);
  }

  .podcast-tile img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    display:block;
  }

  .brandband-body h2{
    font-size:clamp(1.7rem,3.2vw,2.5rem);
    font-weight:700;
    letter-spacing:-.02em;
    margin:.15em 0 .35em;
  }

  .brandband-body > p{
    color:var(--ink-70);
    font-size:1.08rem;
    max-width:52ch;
    margin-bottom:26px;
  }

  .stat-band{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
    border-top:1px solid var(--line);
    padding-top:22px;
  }

  @media(width <=620px){
    .stat-band{
      grid-template-columns:repeat(2,1fr);
      gap:22px 14px;
    }
  }

  /* ---------- CTA BAND (D) ---------- */
  .cta-band{
    padding:0;
    position:relative;
    z-index:5;
    margin-top:-101px;
    margin-bottom:8px;
  }

  .cta-band-inner{
    display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap;
    background:linear-gradient(281deg,#ff791d 4%,#e73a1d 26%,#c8001c 58%,#721927 92%);
    border-radius:24px; padding:44px 46px; color:#fff;
    box-shadow:0 30px 60px -30px rgb(231 58 29 / 60%);
  }

  .cta-band-inner h2{
    color:#fff;
    font-size:clamp(1.6rem,3vw,2.2rem);
    margin:0 0 .3em;
    font-weight:700;
    letter-spacing:-.02em;
  }

  .cta-band-inner p{
    color:rgb(255 255 255 / 88%);
    margin:0;
    max-width:52ch;
  }

  .btn-oncolor{
    background:#fff;
    color:var(--accent-dark);
    box-shadow:0 12px 28px rgb(0 0 0 / 20%);
    flex:none;
  }
  .btn-oncolor::after{background-image:url('https://aivkostce.cz/themes/custom/webai/images/button-tick-orange.svg');}

  .btn-oncolor:hover{
    background:#fff;
    color:var(--accent);
    transform:translateY(-.125rem);
    box-shadow:0 18px 36px rgb(0 0 0 / 26%);
  }

  /* ---------- AUDIENCE (F) — floating roles ---------- */
  .roles-cloud{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    align-items:center;
    gap:20px 22px;
    max-width:940px;
    margin:0 auto;
    padding:18px 0 8px;
  }

  .role-chip{
    font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:clamp(1rem,1.4vw,1.2rem);
    padding:16px 26px; border-radius:16px; background:var(--white); color:var(--ink);
    border:1px solid var(--line); box-shadow:0 18px 34px -20px rgb(28 28 48 / 45%);
    transform:rotate(var(--rot,0deg));
    animation:bob-chip var(--dur,6.5s) ease-in-out infinite; animation-delay:var(--delay,0s);
    will-change:transform;
  }

  .role-chip.alt{
    background:linear-gradient(135deg,var(--accent-tint-2),var(--accent-tint));
    border-color:var(--accent-tint);
  }

  @keyframes bob-chip{0%,100%{transform:translateY(0) rotate(var(--rot,0deg));}50%{transform:translateY(-12px) rotate(var(--rot,0deg));}}

  @media (prefers-reduced-motion: reduce){ .role-chip{animation:none;} .hero-shield,.hero-glow,.hero-net .node-hot,.hero-scroll{animation:none;} .reg-form{animation:none;} }

  /* ---------- FILM STRIP (E) ---------- */
  .filmstrip-sec{
    background:linear-gradient(180deg,#fff 0%, var(--soft) 100%);
    padding-bottom:92px;
  }

  .film-reel{
    background:transparent;
    overflow:hidden;
    cursor:grab;
    touch-action:pan-y;
  }
  .film-reel.dragging{cursor:grabbing;}

  .filmstrip{
    display:flex;
    gap:16px;
    padding:16px 24px;
    width:max-content;
  }

  .film-frame{
    flex:0 0 clamp(280px,34vw,400px); position:relative; margin:0; padding:0;
    aspect-ratio:3/2; border-radius:14px; overflow:hidden;
    background:var(--soft-2); border:1px solid var(--line); cursor:zoom-in;
    box-shadow:0 20px 40px -24px rgb(28 28 48 / 35%);
    transition:transform .2s ease, box-shadow .2s ease; appearance:none;
  }

  .film-frame:hover{
    transform:translateY(-3px);
    box-shadow:0 26px 50px -24px rgb(28 28 48 / 45%);
  }

  .film-frame:focus-visible{
    outline:3px solid var(--accent);
    outline-offset:3px;
  }

  .film-frame img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    pointer-events:none;
    user-select:none;
  }
  .lightbox[hidden]{display:none !important;}

  .lightbox{
    position:fixed; inset:0; z-index:200;
    background:rgb(8 9 16 / 94%); backdrop-filter:blur(6px);
    display:flex; align-items:center; justify-content:center; gap:8px; padding:24px;
    animation:lb-in .18s ease;
  }

  @keyframes lb-in{from{opacity:0;}to{opacity:1;}}

  .lightbox-img{
    max-width:min(92vw,1400px);
    max-height:88vh;
    width:auto;
    height:auto;
    border-radius:10px;
    box-shadow:0 40px 90px rgb(0 0 0 / 60%);
    display:block;
  }

  .lightbox-close{
    position:absolute; top:20px; right:20px; width:48px; height:48px; border-radius:50%;
    background:rgb(255 255 255 / 10%); border:1px solid rgb(255 255 255 / 30%); color:#fff;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    transition:background .18s ease, transform .18s ease;
  }

  .lightbox-close:hover{
    background:var(--accent);
    border-color:var(--accent);
    transform:rotate(90deg);
  }

  .lightbox-nav{
    width:52px; height:52px; flex:none; border-radius:50%;
    background:rgb(255 255 255 / 10%); border:1px solid rgb(255 255 255 / 30%); color:#fff;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    transition:background .18s ease, border-color .18s ease;
  }

  .lightbox-nav:hover{
    background:var(--accent);
    border-color:var(--accent);
  }

  @media(width <=620px){
    .lightbox{
      padding:12px;
      gap:4px;
    }

    .lightbox-nav{
      position:absolute;
      bottom:20px;
      width:46px;
      height:46px;
    }
    .lightbox-prev{left:22%;}
    .lightbox-next{right:22%;}
    .lightbox-img{max-height:74vh;}
  }
  #registrace.register-sec{background:var(--soft);}