
/* 01 — Brand tokens and accessible foundations */
:root{--blue:#154371;--teal:#0f8385;--yellow:#ffd51a;--pink:#d2377d;--ink:#16344f;--muted:#526879;--line:#dce5ec;--paper:#f4f7fa;--green:#16a34a;--radius:20px}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-y:scroll;scrollbar-gutter:stable}body{margin:0;background:var(--paper);color:var(--ink);font-family:Poppins,Arial,sans-serif;font-size:16px;line-height:1.6}button,select{font:inherit}button,a,select,summary{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}a{color:var(--blue)}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--pink);outline-offset:4px}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.8rem,4vw,2.65rem);letter-spacing:-.045em;line-height:1.2;margin-bottom:8px}h2{font-size:1.35rem;letter-spacing:-.035em}h3{font-size:1.08rem;line-height:1.4;letter-spacing:-.02em}p{margin-bottom:16px}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;font-weight:700}.skip{position:fixed;top:-80px;left:16px;background:white;padding:12px;z-index:99}.skip:focus{top:12px}i[aria-hidden]{pointer-events:none}
/* 02 — Header, navigation and page framing */
header{background:white;border-bottom:1px solid var(--line)}.header-inner,main,.footer-inner{max-width:1160px;margin:auto;padding-left:32px;padding-right:32px}.brand-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 0}.event-label{font-size:.875rem;color:var(--muted);margin-top:8px}.date-label{font-size:.875rem;font-weight:500;display:flex;align-items:center;gap:12px}.date-label i{color:var(--teal)}.desktop-nav{display:flex;gap:32px}.nav-button{border:0;background:transparent;padding:16px 2px;font-size:.875rem;font-weight:600;color:var(--muted);border-bottom:3px solid transparent;display:flex;align-items:center;justify-content:center;gap:9px}.nav-button[aria-current=page]{border-color:var(--teal);color:var(--blue)}.nav-button:hover{color:var(--teal)}.mobile-nav{display:none}main{padding-top:34px;padding-bottom:56px;min-height:70vh}.page-heading{margin-bottom:28px}.page-heading p{color:var(--muted);margin:0}.view{animation:enter .22s ease-out}@keyframes enter{from{opacity:.3;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:32px 0 16px}.section-heading h2{margin:0}.text-button{background:transparent;border:0;padding:8px 0;color:var(--teal);font-size:.875rem;font-weight:600;min-height:44px}.text-button i{margin-left:8px}footer{border-top:1px solid var(--line);font-size:.75rem;color:var(--muted)}.footer-inner{display:flex;justify-content:space-between;gap:16px;padding-top:22px;padding-bottom:22px}
/* 03 — Home dashboard */
.hero{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(112deg,#154371 15%,#145976 58%,#0f8385);border-radius:24px;color:white;padding:38px 42px;min-height:270px;display:flex;align-items:center}.hero-content{position:relative;z-index:1;max-width:640px}.hero .eyebrow{color:#fff3aa;margin-bottom:16px}.hero h2{font-size:clamp(2rem,4vw,3rem);line-height:1.18;letter-spacing:-.05em;margin-bottom:16px;max-width:550px}.hero p{color:#e1eef5;max-width:535px;margin-bottom:24px}.hero-number{position:absolute;right:20px;bottom:-62px;font-weight:800;font-size:19rem;line-height:1;letter-spacing:-.08em;color:rgba(255,255,255,.075);z-index:-1}.hero::after{content:"";position:absolute;width:310px;height:310px;right:-110px;top:-160px;border:45px solid rgba(255,255,255,.06);border-radius:50%;z-index:-1}.hero-tags{display:flex;gap:20px;flex-wrap:wrap;font-size:.8rem}.hero-tags i{margin-right:7px;color:var(--yellow)}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:22px}.quick-card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:22px;text-align:left;position:relative;transition:transform .18s,box-shadow .18s;min-height:154px}.quick-card:hover{transform:translateY(-3px);box-shadow:0 8px 22px #1543710c}.quick-icon{width:43px;height:43px;display:flex;align-items:center;justify-content:center;border-radius:13px;background:#e8f0f8;color:var(--blue);margin-bottom:16px}.quick-card:nth-child(2) .quick-icon{background:#e5f4f2;color:var(--teal)}.quick-card:nth-child(3) .quick-icon{background:#fff7cf;color:#705b00}.quick-card:nth-child(4) .quick-icon{background:#fceaf2;color:#a4205c}.quick-title{font-size:.95rem;font-weight:600;display:block}.quick-subtitle{font-size:.75rem;color:var(--muted);display:block;margin-top:3px}.quick-arrow{position:absolute;right:19px;top:33px;font-size:.8rem;color:#8092a0}.highlight-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.highlight{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:24px;display:flex;gap:20px;align-items:flex-start}.date-tile{background:#edf5f5;border-radius:12px;min-width:60px;text-align:center;padding:9px 10px;color:var(--teal)}.date-tile strong{display:block;font-size:1.65rem;line-height:1.2}.date-tile span{font-size:.75rem;font-weight:600;text-transform:uppercase}.highlight h3{margin:8px 0}.small-meta{font-size:.8rem;color:var(--muted)}.small-meta i{margin-right:6px}.tag{display:inline-block;border-radius:6px;background:#eaf3f3;color:#176568;padding:3px 9px;font-size:.75rem;font-weight:600}.tag.sales{background:#fff5c4;color:#6a5600}.tag.technical{background:#fbe8f1;color:#a0215a}
/* 04 — Programme filters, parallel schedule and time states */
.programme-tools{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:18px 22px;margin-bottom:28px}.clock-note{font-size:.75rem;color:var(--muted);margin:0 0 14px}.filter-row{display:flex;align-items:center;gap:16px;margin-top:12px;min-width:0}.filter-label{font-size:.75rem;color:var(--muted);width:40px;flex-shrink:0}.pills{display:flex;gap:8px;overflow-x:auto;padding:4px;scrollbar-width:thin}.pill{flex-shrink:0;white-space:nowrap;border:1px solid var(--line);border-radius:999px;background:white;min-height:42px;padding:8px 17px;font-size:.8rem;font-weight:500}.pill:hover{border-color:var(--teal)}.pill[aria-pressed=true]{background:var(--blue);color:white;border-color:var(--blue)}.day-heading{display:flex;align-items:center;gap:14px;margin:30px 0 18px}.day-heading h2{margin:0}.day-heading .eyebrow{color:var(--teal)}.day-heading:after{content:"";height:1px;background:var(--line);flex:1}.day-sessions{display:grid;grid-template-columns:1fr 1fr;gap:14px}.session{border:1px solid var(--line);border-left:4px solid #bccedb;background:white;border-radius:14px;padding:20px 23px;grid-column:1/-1;position:relative;scroll-margin-top:22px;transition:opacity .2s,transform .2s,box-shadow .2s}.session[data-track=Sales]{grid-column:1;border-left-color:var(--yellow)}.session[data-track=Technical]{grid-column:2;border-left-color:var(--pink)}.day-sessions.filtered .session{grid-column:1/-1}.session-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.session-time{font-size:.85rem;font-weight:600;color:var(--blue)}.session h3{margin:0 0 8px}.session-meta{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:.8rem}.session-meta i{margin-right:6px}.session-tags{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.status{font-size:.7rem;font-weight:700;letter-spacing:.03em;border-radius:6px;padding:3px 8px;white-space:nowrap}.session.ended{opacity:.5;filter:grayscale(.4)}.ended .status{background:#e9eef2;color:#526879}.session.live{border-left-color:var(--green);box-shadow:0 0 0 1px #16a34a40,0 5px 24px #16a34a1c;transform:scale(1.01);z-index:1}.live .status{background:#e9f9ed;color:#126d33}.live .status::before{content:"●";display:inline-block;margin-right:5px;animation:pulse 1.7s infinite}@keyframes pulse{50%{opacity:.35}}.empty{border:1px dashed #bbcdd9;border-radius:16px;padding:32px;text-align:center;color:var(--muted)}
/* 05 — Venues and FAQ */
.venue-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.venue-card{overflow:hidden;background:white;border:1px solid var(--line);border-radius:var(--radius)}.venue-card img{display:block;width:100%;height:235px;object-fit:cover;background:#e3edf3}.venue-body{padding:26px}.venue-body h2{margin:13px 0 12px}.venue-body p{color:var(--muted);font-size:.9rem}.address{font-style:normal;font-size:.85rem;margin:18px 0}.address i{margin-right:7px;color:var(--teal)}.link-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:10px 17px;border-radius:10px;text-decoration:none;font-size:.85rem;font-weight:600;background:var(--blue);color:white}.link-button:hover{background:var(--teal)}.parking{grid-column:1/-1;display:flex;gap:22px;padding:28px;background:#e9f3f3;border:1px solid #cce2e1;border-radius:var(--radius)}.parking>i{color:var(--teal);font-size:1.6rem;margin-top:6px}.parking h2{margin-bottom:10px}.parking p{font-size:.9rem;color:var(--muted);max-width:850px}.parking a{font-size:.875rem;font-weight:600;color:#086466;text-underline-offset:4px}.photo-credit{font-size:.75rem;margin-top:13px;display:block;color:var(--muted)}.faq-filters{margin-bottom:24px}.faq-item{border:1px solid var(--line);background:white;border-radius:14px;margin-bottom:12px;overflow:hidden}.faq-question{background:white;border:0;text-align:left;width:100%;padding:21px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:.95rem;font-weight:600;min-height:66px}.faq-question i{font-size:.8rem;transition:transform .2s;color:var(--teal)}.faq-question[aria-expanded=true] i{transform:rotate(180deg)}.faq-answer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .24s ease}.faq-answer.open{grid-template-rows:1fr}.faq-answer>div{overflow:hidden}.faq-answer p{padding:0 24px 22px;margin:0;max-width:960px;color:var(--muted);font-size:.9rem}.faq-category{font-size:.75rem;color:var(--teal);font-weight:500;display:block;margin-bottom:4px}
/* 06 — Mobile, text zoom and reduced motion */
@media(min-width:900px){.session:not([data-track=Sales]):not([data-track=Technical]){padding-left:172px;min-height:110px}.session:not([data-track=Sales]):not([data-track=Technical]) .session-time{position:absolute;left:23px;top:23px}.session:not([data-track=Sales]):not([data-track=Technical]) .session-top{justify-content:flex-end;margin-bottom:4px}.session:not([data-track=Sales]):not([data-track=Technical]) h3{margin-top:0}}
@media(max-width:800px){.quick-grid{grid-template-columns:1fr 1fr}.hero-content{max-width:530px}.hero-number{right:-15px;font-size:16rem}.highlight-grid{gap:14px}.highlight{padding:20px;gap:14px}.header-inner,main,.footer-inner{padding-left:22px;padding-right:22px}.desktop-nav{gap:24px}.venue-card img{height:200px}}
@media(max-width:600px){body{padding-bottom:calc(78px + env(safe-area-inset-bottom))}.header-inner,main,.footer-inner{padding-left:18px;padding-right:18px}.brand-row{padding:20px 0;align-items:flex-start}.event-label{font-size:.7rem;max-width:180px}.date-label{font-size:.72rem;max-width:135px;gap:7px;padding-top:7px}.desktop-nav{display:none}.mobile-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;bottom:0;left:0;right:0;background:#fff;box-shadow:0 -3px 18px #1543710c;border-top:1px solid var(--line);padding:5px 5px calc(5px + env(safe-area-inset-bottom));z-index:50}.mobile-nav .nav-button{flex-direction:column;gap:4px;border:0;font-size:.7rem;padding:10px 2px;min-height:62px;border-radius:10px}.mobile-nav .nav-button i{font-size:1.1rem}.mobile-nav .nav-button[aria-current=page]{color:var(--teal);background:#edf7f6}main{padding-top:26px;padding-bottom:32px}.page-heading{margin-bottom:22px}.page-heading p{font-size:.875rem}.hero{padding:27px 25px;min-height:310px}.hero h2{font-size:2.1rem}.hero p{font-size:.875rem}.hero-tags{gap:9px;flex-direction:column}.hero-number{font-size:13rem;bottom:-30px}.quick-grid{gap:12px;margin-top:16px}.quick-card{padding:18px;min-height:156px}.quick-title{font-size:.875rem}.quick-subtitle{font-size:.75rem}.quick-arrow{right:15px;top:28px}.highlight-grid,.venue-grid{grid-template-columns:1fr}.section-heading{margin-top:26px}.section-heading h2{font-size:1.2rem}.highlight{padding:20px}.programme-tools{padding:16px 12px}.filter-row{gap:5px}.filter-label{width:36px}.pill{padding:8px 14px}.day-heading{align-items:flex-start;flex-direction:column;gap:4px}.day-heading h2{font-size:1.15rem}.day-heading:after{display:none}.day-sessions{grid-template-columns:1fr}.session,.session[data-track=Sales],.session[data-track=Technical]{grid-column:1;padding:18px}.session h3{font-size:1rem}.venue-card img{height:220px}.venue-body{padding:22px}.parking{padding:23px;gap:14px}.parking>i{font-size:1.25rem}.parking h2{font-size:1.15rem}.faq-question{padding:18px;font-size:.875rem}.faq-answer p{padding:0 18px 20px}.footer-inner{flex-direction:column;gap:4px}.text-button{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.session.live{transform:none}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.faq-heading{margin:0}

.brand-logo{display:block;width:164px;max-width:100%;height:auto}
@media(max-width:600px){.brand-logo{width:140px}}
