@font-face {
  font-family: 'Adobe Garamond Pro';
  src: url('/assets/fonts/agp-regular.woff') format('woff');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Adobe Garamond Pro';
  src: url('/assets/fonts/agp-italic.woff') format('woff');
  font-weight: 400; font-style: italic; font-display: swap;
}
@font-face {
  font-family: 'Adobe Garamond Pro';
  src: url('/assets/fonts/agp-bold.woff') format('woff');
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Adobe Garamond Pro';
  src: url('/assets/fonts/agp-bolditalic.woff') format('woff');
  font-weight: 700; font-style: italic; font-display: swap;
}

  :root{
    --ivory:#F5F0E3;
    --ivory-deep:#ECE4D2;
    --ink:#1B1811;
    --hunter:#24331E;
    --hunter-deep:#182417;
    --cognac:#8A5A34;
    --cognac-deep:#6E4527;
    --brass:#C6A15B;
    --brass-bright:#E4C077;
    --midnight:#121110;
    --midnight-2:#1B1815;
    --line: rgba(27,24,17,0.14);
    --line-light: rgba(245,240,227,0.16);
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }
  body{
    background:var(--ivory);
    color:var(--ink);
    font-family:'Work Sans', sans-serif;
    font-weight:400;
    line-height:1.55;
    overflow-x:hidden;
  }
  h1,h2,h3,h4{
    font-family:'Adobe Garamond Pro', serif;
    font-weight:400;
    letter-spacing:-0.01em;
    line-height:1.08;
  }
  .mono{
    font-family:'Work Sans', sans-serif;
    font-weight:600;
  }
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
  @media (max-width:640px){ .wrap{padding:0 20px;} }

  .eyebrow{
    font-family:'Work Sans', sans-serif;
    text-transform:uppercase;
    letter-spacing:0.16em;
    font-size:12px;
    display:inline-flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:22px; height:1px;
    background:currentColor;
    display:inline-block;
  }

  /* ---------- HEADER ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding:22px 0;
    transition:background .4s ease, padding .4s ease, box-shadow .4s ease;
  }
  header .wrap{display:flex; align-items:center; justify-content:space-between;}
  header.scrolled{
    background:rgba(245,240,227,0.92);
    backdrop-filter:blur(10px);
    padding:14px 0;
    box-shadow:0 1px 0 var(--line);
  }
  .logo{
    font-family:'Adobe Garamond Pro', serif;
    font-size:20px;
    font-weight:600;
    letter-spacing:0.02em;
    color:var(--ivory);
    transition:color .4s ease;
    display:flex; align-items:baseline; gap:8px;
  }
  .logo-img{
    height:36px; width:auto; display:block;
    filter:brightness(0) invert(1);
    transition:filter .4s ease;
  }
  header.scrolled .logo-img{filter:none;}
  .logo-img-footer{height:48px; filter:brightness(0) invert(1);}
  header.scrolled .logo{color:var(--ink);}

  nav.mainnav{display:flex; align-items:center; gap:34px;}
  nav.mainnav a.navlink{
    font-size:14px;
    color:var(--ivory);
    opacity:0.82;
    position:relative;
    padding:4px 0;
    transition:opacity .3s ease, color .4s ease;
  }
  header.scrolled nav.mainnav a.navlink{color:var(--ink);}
  nav.mainnav a.navlink::after{
    content:"";
    position:absolute; left:0; bottom:-2px;
    width:0; height:1px;
    background:var(--brass-bright);
    transition:width .3s ease;
  }
  header.scrolled nav.mainnav a.navlink::after{background:var(--cognac);}
  nav.mainnav a.navlink:hover, nav.mainnav a.navlink.active{opacity:1;}
  nav.mainnav a.navlink:hover::after, nav.mainnav a.navlink.active::after{width:100%;}

  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:12px 24px;
    border:1px solid currentColor;
    font-family:'Work Sans', sans-serif;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:0.1em;
    border-radius:2px;
    transition:background .3s ease, color .3s ease, transform .3s ease;
    cursor:pointer;
    background:transparent;
  }
  .btn-brass{
    color:var(--ink);
    background:var(--brass);
    border-color:var(--brass);
  }
  .btn-brass:hover{background:var(--brass-bright); transform:translateY(-2px);}
  .btn-outline-light{color:var(--ivory);}
  .btn-outline-light:hover{background:var(--ivory); color:var(--ink); transform:translateY(-2px);}
  .btn-outline-dark{color:var(--ink);}
  .btn-outline-dark:hover{background:var(--ink); color:var(--ivory); transform:translateY(-2px);}

  .navcta{display:flex; align-items:center; gap:18px;}
  .hamburger{display:none; flex-direction:column; gap:5px; cursor:pointer; z-index:110;}
  .hamburger span{width:24px; height:1.5px; background:var(--ivory); transition:.3s;}
  header.scrolled .hamburger span{background:var(--ink);}

  @media (max-width:900px){
    nav.mainnav{
      position:fixed; inset:0; background:var(--hunter-deep);
      flex-direction:column; justify-content:center; align-items:center; gap:30px;
      transform:translateX(100%); transition:transform .4s ease;
    }
    nav.mainnav.open{transform:translateX(0);}
    nav.mainnav a.navlink{color:var(--ivory) !important; font-size:20px;}
    .hamburger{display:flex;}
    .navcta .btn-brass{padding:10px 16px; font-size:11px;}
  }

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    min-height:100vh;
    display:flex; flex-direction:column; justify-content:center;
    background:radial-gradient(ellipse at 80% 20%, #2c3f24 0%, var(--hunter) 45%, var(--hunter-deep) 100%);
    color:var(--ivory);
    overflow:hidden;
    padding-top:120px; padding-bottom:60px;
  }
  .hero-grain{
    position:absolute; inset:0;
    background-image:radial-gradient(rgba(245,240,227,0.05) 1px, transparent 1px);
    background-size:3px 3px;
    opacity:0.5;
    pointer-events:none;
  }
  .hero .wrap{position:relative; z-index:2; width:100%;}
  .hero-top{
    display:grid; grid-template-columns:1.15fr 0.85fr; gap:40px; align-items:center;
  }
  .hero-eyebrow{color:var(--brass-bright); margin-bottom:26px;}
  .hero h1{
    font-size:clamp(48px, 7vw, 92px);
    color:var(--ivory);
  }
  .hero h1 em{
    font-style:italic; color:var(--brass-bright); font-weight:400;
  }
  .hero-sub{
    margin-top:24px; max-width:460px;
    font-size:17px; color:rgba(245,240,227,0.78); font-weight:300;
  }
  .hero-meta{
    display:flex; gap:28px; margin-top:38px; flex-wrap:wrap;
  }
  .hero-meta div{border-left:1px solid var(--line-light); padding-left:16px;}
  .hero-meta .mono{font-size:13px; color:var(--brass-bright); display:block; margin-bottom:4px;}
  .hero-meta .val{font-size:15px; color:var(--ivory);}
  .hero-cta{display:flex; gap:16px; margin-top:44px; flex-wrap:wrap;}

  .hero-horse{width:100%; max-width:520px; justify-self:end;}
  .hero-horse svg{width:100%; height:auto; overflow:visible;}
  .horse-path{
    fill:none; stroke:var(--brass-bright); stroke-width:1.4;
    stroke-linecap:round; stroke-linejoin:round;
    stroke-dasharray:2400; stroke-dashoffset:2400;
    animation:draw 2.6s cubic-bezier(.4,0,.2,1) .3s forwards;
  }
  @keyframes draw{ to{stroke-dashoffset:0;} }

  .scroll-hint{
    margin-top:70px; display:flex; align-items:center; gap:12px;
    font-family:'Work Sans', sans-serif; font-size:11px; letter-spacing:0.1em;
    color:rgba(245,240,227,0.55); text-transform:uppercase;
  }
  .scroll-hint .line{width:1px; height:34px; background:rgba(245,240,227,0.4); position:relative; overflow:hidden;}
  .scroll-hint .line::after{
    content:""; position:absolute; top:-100%; left:0; width:100%; height:100%;
    background:var(--brass-bright);
    animation:scrolldown 1.8s ease-in-out infinite;
  }
  @keyframes scrolldown{ 0%{top:-100%;} 60%{top:100%;} 100%{top:100%;} }

  /* ---------- GATEWAY ---------- */
  .gateway{
    background:var(--ivory);
    padding:110px 0 100px;
  }
  .gateway-head{max-width:640px; margin-bottom:60px;}
  .gateway-head .eyebrow{color:var(--cognac); margin-bottom:20px;}
  .gateway-head h2{font-size:clamp(32px,4vw,44px);}
  .gateway-grid{display:grid; grid-template-columns:1fr 1fr; gap:2px; background:var(--line);}
  .gate-card{
    background:var(--ivory);
    padding:56px 44px;
    position:relative;
    transition:background .4s ease;
    display:flex; flex-direction:column; min-height:360px;
  }
  .gate-card:hover{background:var(--ivory-deep);}
  .gate-num{font-family:'Work Sans', sans-serif; font-size:12px; color:var(--cognac); letter-spacing:0.1em;}
  .gate-card h3{font-size:clamp(26px,3vw,34px); margin-top:20px;}
  .gate-card p{margin-top:16px; max-width:340px; color:rgba(27,24,17,0.72); font-weight:300;}
  .gate-card .btn{margin-top:auto; align-self:flex-start; margin-top:32px;}
  .gate-card.exhibitor{background:var(--cognac); color:var(--ivory);}
  .gate-card.exhibitor:hover{background:var(--cognac-deep);}
  .gate-card.exhibitor .gate-num{color:var(--brass-bright);}
  .gate-card.exhibitor p{color:rgba(245,240,227,0.82);}
  @media (max-width:820px){
    .gateway-grid{grid-template-columns:1fr;}
  }

  /* ---------- SECTION SHARED ---------- */
  section{scroll-margin-top:90px;}
  .section-pad{padding:110px 0;}
  .section-head{max-width:680px; margin-bottom:56px;}
  .section-head .eyebrow{margin-bottom:20px;}
  .section-head h2{font-size:clamp(32px,4.2vw,48px);}
  .section-head p{margin-top:18px; font-size:17px; color:rgba(27,24,17,0.68); font-weight:300;}

  /* ---------- VISITORS SECTION ---------- */
  #navstevnici{background:var(--ivory-deep); border-top:1px solid var(--line); box-shadow:0 1px 0 var(--ivory) inset;}
  .halls-split{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); margin-bottom:90px;}
  .hall-card{background:var(--ivory); padding:44px;}
  .hall-card .mono{color:var(--cognac); font-size:12px; letter-spacing:0.1em;}
  .hall-card h3{margin-top:14px; font-size:26px;}
  .hall-card p{margin-top:14px; color:rgba(27,24,17,0.7); font-weight:300; font-size:15px;}
  @media (max-width:760px){.halls-split{grid-template-columns:1fr;}}

  .program-tags{display:flex; flex-wrap:wrap; gap:10px; margin-top:22px;}
  .tag{
    font-size:13px; padding:8px 16px; border:1px solid var(--line);
    border-radius:100px; color:var(--ink); background:transparent;
    font-weight:400;
  }

  /* Gala dark subsection */
  .gala{
    background:radial-gradient(ellipse at 20% 0%, #221f1a 0%, var(--midnight) 60%);
    color:var(--ivory);
    padding:120px 0;
    margin:0 -32px;
    position:relative;
  }
  .gala::before{
    content:""; position:absolute; inset:0;
    background-image:linear-gradient(rgba(198,161,91,0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(198,161,91,0.06) 1px, transparent 1px);
    background-size:64px 64px;
    mask-image:radial-gradient(ellipse at center, black, transparent 75%);
  }
  .gala .wrap{position:relative; z-index:2;}
  .gala-top{display:grid; grid-template-columns:1.1fr 0.9fr; gap:50px; align-items:end;}
  .gala .eyebrow{color:var(--brass-bright);}
  .gala h2{font-size:clamp(36px,5vw,56px); margin-top:22px;}
  .gala h2 em{font-style:italic; color:var(--brass-bright); font-weight:400;}
  .gala-desc{color:rgba(245,240,227,0.72); font-weight:300; font-size:16px;}
  .gala-note{
    font-family:'Work Sans', sans-serif; font-size:12px; text-transform:uppercase;
    letter-spacing:0.08em; color:var(--brass-bright); margin-top:24px;
    border-left:2px solid var(--brass); padding-left:14px;
  }
  @media (max-width:820px){.gala-top{grid-template-columns:1fr;}}

  /* Tickets */
  .tickets{margin-top:80px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-light);}
  .gala .tickets{background:rgba(245,240,227,0.12);}
  .ticket{
    background:var(--midnight-2); padding:38px 30px;
    display:flex; flex-direction:column;
    border-top:2px solid transparent;
    transition:border-color .3s ease, transform .3s ease;
  }
  .ticket:hover{border-color:var(--brass); transform:translateY(-4px);}
  .ticket .tname{font-family:'Work Sans', sans-serif; font-size:12px; text-transform:uppercase; letter-spacing:0.1em; color:var(--brass-bright);}
  .ticket .tprice{font-family:'Adobe Garamond Pro', serif; font-size:34px; margin-top:14px; color:var(--ivory);}
  .ticket .tprice small{font-family:'Work Sans', sans-serif; font-size:12px; color:rgba(245,240,227,0.55); margin-left:6px;}
  .ticket .tprice-list{margin-top:14px; display:flex; flex-direction:column;}
  .tprice-row{
    display:flex; justify-content:space-between; align-items:baseline; gap:12px;
    padding:9px 0; font-size:13px; color:rgba(245,240,227,0.8);
    border-top:1px solid var(--line-light);
  }
  .tprice-row:first-child{border-top:none; padding-top:0;}
  .tprice-row small{display:block; margin-top:2px; font-size:10px; font-weight:300; color:rgba(245,240,227,0.4);}
  .tprice-row .mono{font-size:13px; color:var(--brass-bright); white-space:nowrap;}
  .ticket .tdesc{margin-top:14px; font-size:14px; color:rgba(245,240,227,0.65); font-weight:300; flex-grow:1;}
  .ticket .btn{margin-top:24px;}
  @media (max-width:760px){.tickets{grid-template-columns:1fr;}}

  /* ---------- EXHIBITORS SECTION ---------- */
  #vystavovatele{background:var(--ivory-deep);}
  .why-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); margin-bottom:90px;}
  .why-card{background:var(--ivory-deep); padding:34px 26px;}
  .why-card .mono{font-size:11px; color:var(--cognac); letter-spacing:0.08em;}
  .why-card h4{margin-top:14px; font-size:19px;}
  .why-card p{margin-top:10px; font-size:14px; color:rgba(27,24,17,0.66); font-weight:300;}
  @media (max-width:900px){.why-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:560px){.why-grid{grid-template-columns:1fr;}}

  .price-table-wrap{
    margin-bottom:70px; border:1px solid var(--line); padding:44px;
    background:var(--ivory);
  }
  .price-table-head h3{font-size:24px;}
  .price-table-head p{margin-top:10px; color:rgba(54,29,18,0.68); font-weight:300; font-size:14px; max-width:520px;}
  .price-table{margin-top:30px; overflow-x:auto;}
  .price-row{
    display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:14px; align-items:center;
    padding:14px 0; border-top:1px solid var(--line); font-size:14px; min-width:520px;
  }
  .price-row:first-child{border-top:none;}
  .price-row-head{
    font-family:'Work Sans', sans-serif; font-size:11px; text-transform:uppercase;
    letter-spacing:0.06em; color:var(--cognac); border-top:none; padding-bottom:8px;
  }
  .price-row .mono{font-size:14px;}
  .price-fee{
    margin-top:22px; padding-top:18px; border-top:1px solid var(--line);
    display:flex; justify-content:space-between; align-items:center;
    font-family:'Work Sans', sans-serif; font-size:13px; text-transform:uppercase; letter-spacing:0.06em;
  }

  .packages{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
  .package{
    border:1px solid var(--line); padding:40px 32px; background:var(--ivory);
    display:flex; flex-direction:column;
    transition:transform .3s ease, box-shadow .3s ease;
  }
  .package:hover{transform:translateY(-6px); box-shadow:0 16px 40px rgba(27,24,17,0.08);}
  .package.featured{background:var(--hunter); color:var(--ivory); border-color:var(--hunter);}
  .package .mono{font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--cognac);}
  .package.featured .mono{color:var(--brass-bright);}
  .package h3{margin-top:16px; font-size:26px;}
  .package ul{margin-top:22px; list-style:none; flex-grow:1;}
  .package li{
    padding:10px 0; font-size:14px; font-weight:300;
    border-top:1px solid var(--line);
    color:rgba(27,24,17,0.75);
  }
  .package.featured li{border-color:var(--line-light); color:rgba(245,240,227,0.82);}
  .package .btn{margin-top:28px;}
  @media (max-width:900px){.packages{grid-template-columns:1fr;}}

  .cta-strip{
    margin-top:90px; padding:56px; border:1px solid var(--cognac);
    display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap;
  }
  .cta-strip h3{font-size:26px; max-width:480px;}
  .cta-strip p{margin-top:8px; color:rgba(27,24,17,0.68); font-weight:300; font-size:14px;}

  /* ---------- VENUE / MAP ---------- */
  .venue{background:var(--ivory); padding:110px 0;}
  .venue-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:60px; align-items:center;}
  .venue-info .mono{color:var(--cognac);}
  .venue-info h2{margin-top:18px; font-size:clamp(30px,4vw,40px);}
  .venue-info p{margin-top:18px; color:rgba(27,24,17,0.68); font-weight:300;}
  .venue-facts{margin-top:32px; display:grid; gap:16px;}
  .venue-facts div{display:flex; gap:16px; border-top:1px solid var(--line); padding-top:14px;}
  .venue-facts .mono{min-width:110px; color:var(--cognac); font-size:12px; padding-top:3px;}
  .floorplan{background:var(--hunter-deep); padding:34px;}
  .floorplan svg{width:100%; height:auto;}
  @media (max-width:860px){.venue-grid{grid-template-columns:1fr;}}

  /* ---------- FOOTER ---------- */
  footer{background:var(--midnight); color:rgba(245,240,227,0.7); padding:80px 0 30px;}
  .footer-top{display:grid; grid-template-columns:1.3fr 0.7fr 0.7fr 1fr; gap:40px; padding-bottom:60px; border-bottom:1px solid var(--line-light);}
  footer .logo{color:var(--ivory);}
  footer h5{font-family:'Work Sans', sans-serif; font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--brass-bright); margin-bottom:18px;}
  footer .foot-links{display:flex; flex-direction:column; gap:10px; font-size:14px;}
  footer .foot-links a:hover{color:var(--brass-bright);}
  footer p{font-size:14px;}
  .foot-bottom{padding-top:26px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:12px; color:rgba(245,240,227,0.4);}
  .foot-bottom a{color:rgba(245,240,227,0.6); text-decoration:underline; text-underline-offset:2px;}
  .foot-bottom a:hover{color:var(--brass-bright);}
  @media (max-width:820px){.footer-top{grid-template-columns:1fr 1fr; row-gap:40px;}}
  @media (max-width:520px){.footer-top{grid-template-columns:1fr;}}

  /* reveal on scroll */
  .reveal{opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}

  :focus-visible{outline:2px solid var(--brass); outline-offset:3px;}
