:root{--navy:#0e2a57;--navy-2:#17407e;--ink:#12294d;--teal:#4bb1b6;--teal-dark:#37979c;--blue:#214a8a;--paper:#f5f7f8;--paper-2:#e7ecee;--white:#fff;--grey:#5a6274;--line:#dfe4e7;--shadow:0 18px 50px -22px rgba(14,42,87,.42);--radius:16px;--maxw:1180px;--serif:"Fraunces",Georgia,serif;--sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
  *{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}
  body{font-family:var(--sans);color:var(--ink);background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
  .wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}
  h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.14;letter-spacing:-.01em;color:var(--navy)}
  .eyebrow{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--teal)}
  .btn{appearance:none;-webkit-appearance:none;background:none;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-weight:600;font-size:.86rem;padding:.55em 1em;border-radius:100px;transition:.22s;cursor:pointer;border:1.5px solid transparent}
  .btn-primary{background:var(--teal);color:var(--navy)}.btn-primary:hover{background:var(--teal-dark);color:#fff}
  .btn-outline{border-color:var(--navy);color:var(--navy)}.btn-outline:hover{background:var(--navy);color:#fff}
  header{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--white);box-shadow:0 6px 24px -14px rgba(14,42,87,.35)}
  .nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
  .navmenu{display:contents}
  .nav .brand{flex:1 1 0;min-width:0}
  .brand img{height:44px;display:block}
  nav.menu{display:flex;gap:6px;flex:0 0 auto}nav.menu a.link{padding:.55em .9em;border-radius:8px;font-weight:500;font-size:.95rem;color:var(--ink);white-space:nowrap}
  nav.menu a.link:hover,nav.menu a.link.active{background:var(--paper-2);color:var(--blue)}
  .nav-cta{display:flex;align-items:center;gap:10px;flex:1 1 0;justify-content:flex-end;white-space:nowrap}.nav-cta .login{font-weight:600;font-size:.92rem;color:var(--navy);padding:.5em .7em;white-space:nowrap}
  .burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}.burger span{width:26px;height:2.5px;background:var(--navy);border-radius:2px}
  .phead{background:radial-gradient(120% 160% at 88% 0%,var(--navy-2),var(--navy) 62%);color:#fff;padding:112px 0 44px;position:relative;overflow:hidden}
  .phead::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:26px 26px;opacity:.6}
  .phead .wrap{position:relative;z-index:2}
  .crumbs{font-size:.85rem;color:rgba(255,255,255,.6);margin-bottom:16px}.crumbs a:hover{color:var(--teal)}.crumbs span{margin:0 8px;opacity:.5}
  .phead h1{color:#fff;font-size:clamp(2rem,3.6vw,2.9rem);margin:8px 0 12px}.phead p{color:rgba(255,255,255,.78);max-width:60ch;font-size:1.05rem}
  .controls{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:34px 0 8px}
  .seg{display:inline-flex;background:var(--paper);border:1px solid var(--line);border-radius:100px;padding:5px}
  .seg button{border:0;background:none;font-family:var(--sans);font-weight:600;font-size:.9rem;color:var(--grey);padding:.5em 1.15em;border-radius:100px;cursor:pointer;transition:.2s}
  .seg button.on{background:var(--navy);color:#fff}
  .fgroup{display:flex;gap:10px;flex-wrap:wrap}
  .fsel{padding:.55em .8em;border:1px solid var(--line);border-radius:100px;font-family:var(--sans);color:var(--ink);background:#fff;font-size:.9rem}
  .reg-note{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 16px;margin:6px 0 2px;font-size:.9rem;color:var(--grey)}
  .reg-note b{color:var(--navy);font-weight:600}
  .logbtn{border:1.5px solid var(--line);background:#fff;color:var(--navy);font-family:var(--sans);font-size:.82rem;padding:.4em .9em;border-radius:100px;cursor:pointer;white-space:nowrap}
  .logbtn.in{background:var(--navy);color:#fff;border-color:var(--navy)}.logbtn.in b{color:#fff}
  .reg-cta{display:flex;gap:8px;flex-wrap:wrap}.reg-cta .btn{font-size:.82rem;padding:.45em 1em}
  .reg-ok{color:var(--teal-dark);font-weight:600}
  .sco{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
  .sco span{font-size:.68rem;font-weight:600;color:var(--blue);background:rgba(33,74,138,.09);border-radius:100px;padding:.2em .7em}
  .sco span.all{color:var(--teal-dark);background:rgba(75,177,182,.14)}
  .btn[disabled]{opacity:.5;pointer-events:none}
  .lockmsg{font-size:.72rem;color:var(--grey);font-style:italic;text-align:center;margin-top:2px}
  .list{padding:16px 0 40px}
  .ev{display:flex;gap:20px;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;margin-bottom:12px;transition:.2s}
  .ev:hover{box-shadow:var(--shadow);border-color:transparent;transform:translateY(-2px)}
  .ev .date{flex-shrink:0;width:66px;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:8px 4px}
  .ev.up .date{background:var(--navy);border-color:var(--navy)}
  .ev .date .g{font-family:var(--serif);font-size:1.5rem;font-weight:600;color:var(--navy);line-height:1}
  .ev.up .date .g{color:#fff}
  .ev .date .m{font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:var(--grey);margin-top:2px}
  .ev.up .date .m{color:var(--teal)}
  .ev .date .y{font-size:.64rem;color:var(--grey);margin-top:1px}.ev.up .date .y{color:rgba(255,255,255,.6)}
  .ev .main{flex:1;min-width:0}
  .ev .tp{font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--teal-dark);margin-bottom:3px}
  .ev h3{font-size:1.08rem;margin-bottom:3px;line-height:1.2}
  .ev .lo{color:var(--grey);font-size:.88rem}
  .ev .lo .closed{color:var(--grey);font-style:italic}
  .ev .act{flex-shrink:0;display:flex;flex-direction:column;gap:8px;width:130px}
  .badge-up{display:inline-block;background:rgba(75,177,182,.16);color:var(--teal-dark);font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.28em .7em;border-radius:100px;margin-left:8px;vertical-align:middle}
  .empty{text-align:center;padding:50px 20px;color:var(--grey)}
  footer{background:var(--ink);color:rgba(255,255,255,.7);padding:56px 0 26px;font-size:.94rem;margin-top:20px}
  .foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:36px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.1)}
  footer .brand img{height:44px;margin-bottom:14px}.fcontact{color:rgba(255,255,255,.6);font-size:.9rem;line-height:1.7}.fcontact a:hover{color:var(--teal)}
  footer h4{color:#fff;font-family:var(--sans);font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px}
  footer ul{list-style:none;display:flex;flex-direction:column;gap:9px}footer ul a:hover{color:var(--teal)}
  .foot-bottom{padding-top:20px;color:rgba(255,255,255,.45);font-size:.82rem;line-height:1.7}
  .mock-ribbon{position:fixed;bottom:16px;right:16px;z-index:200;background:var(--navy);color:#fff;font-size:.78rem;padding:.6em 1em;border-radius:100px;box-shadow:var(--shadow);opacity:.92}
  @media(max-width:900px){
    header .nav{position:relative}
    .burger{display:flex}
    .navmenu{display:none}
    .navmenu.open{display:flex;flex-direction:column;align-items:stretch;position:absolute;top:100%;left:0;right:0;background:#fff;padding:14px;gap:6px;box-shadow:var(--shadow)}
    .navmenu.open nav.menu{display:flex;flex-direction:column;align-items:stretch;gap:4px}
    .navmenu.open .nav-cta{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin:8px 0 0;padding-top:10px;border-top:1px solid var(--line)}
    .navmenu.open .nav-cta .login{padding:.6em .2em}
    .navmenu.open .nav-cta .btn{justify-content:center}
    .ev{flex-wrap:wrap}.ev .act{width:100%;flex-direction:row}.foot-grid{grid-template-columns:1fr}
  }
  @media(max-width:560px){.wrap{padding:0 18px}}
