/* =====================================================================
   Financing Europe – homepage clone
   Design tokens and spacing measured from the original Elementor build
   at 1440 / 960 / 768 / 375 px viewports (all rhythm values are the originals).
   ===================================================================== */
:root{
  --navy-dark:#002242;   /* header, key themes, stats, overlays */
  --navy:#00264B;        /* headings / buttons on light */
  --navy-mid:#04497B;    /* agenda day header + row borders */
  --label:#004779;       /* partner labels */
  --accent:#448FA6;      /* counter "+" */
  --text:#54595F;        /* grey body text */
  --grey-light:#CECECE;
  --shape:#00264C;       /* hero bottom shape */
  --container:1140px;
  --font:"Nunito",sans-serif;
  --font-alt:"Lexend Deca",sans-serif;
  --font-system:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font-system);font-size:16px;line-height:1.5;color:#333;background:#fff;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p{margin:0;font-family:var(--font)}
button{font:inherit}
.skip-link{position:absolute;left:-9999px;top:0;background:#fff;color:#000;padding:8px 12px;z-index:1000}
.skip-link:focus{left:8px;top:8px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font);font-size:15px;font-weight:400;line-height:15px;padding:12px 24px;border-radius:0;border:1px solid var(--navy);text-align:center;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.btn svg{width:16px;height:16px}
.btn-white{background:#fff;color:var(--navy);border-color:#fff;font-weight:500}
.btn-navy{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-outline{background:transparent;color:var(--navy-dark);border-color:var(--navy-dark);font-weight:600}

/* ---------- shape dividers (same mechanics as Elementor) ---------- */
.shape{overflow:hidden;position:absolute;left:0;width:100%;line-height:0;direction:ltr;z-index:1;pointer-events:none}
.shape-top{top:-1px}
.shape-bottom{bottom:-1px;transform:rotate(180deg)}
.shape svg{display:block;width:calc(100% + 1.3px);position:relative;left:50%;transform:translateX(-50%)}
.shape-hero svg{height:55px;transform:translateX(-50%) rotateY(180deg)}   /* "flip" option of the original divider */
.shape-hero .shape-fill{fill:var(--shape)}
.shape-white .shape-fill{fill:#fff}
.shape-tilt svg{height:23px}
.partners .shape-tilt svg{height:26px}

/* ---------- entrance animations (Elementor: invisible until 90% viewport, then 1.25s fadeIn / fadeInUp) ---------- */
@keyframes fe-fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fe-fadeInUp{from{opacity:0;transform:translate3d(0,100%,0)}to{opacity:1;transform:none}}
@keyframes fe-fadeInDown{from{opacity:0;transform:translate3d(0,-100%,0)}to{opacity:1;transform:none}}
.js .reveal,.js .reveal-up{visibility:hidden}
.js .reveal.in,.js .reveal-up.in{visibility:visible;animation:fe-fadeIn 1.25s both;animation-delay:var(--delay,0ms)}
.js .reveal-up.in{animation-name:fe-fadeInUp}
/* Elementor button hover used on the page: hard offset shadow */
.btn{transition:all .3s}
.btn-outline:hover{box-shadow:-5px 5px 0 1px rgba(255,255,255,.53)}
.view-all .btn:hover{box-shadow:-5px 5px 0 1px rgba(0,38,75,.3)}

/* =====================================================================
   HEADER  (106px, boxed 1140, logo 220×86, nav centred, button 39 high)
   ===================================================================== */
.site-header{background:var(--navy-dark);padding:0 50px;position:sticky;top:0;z-index:20}   /* Elementor sticky "top" on every device */
.header-inner{max-width:var(--container);margin:0 auto;display:flex;align-items:center;gap:10px;padding:10px 0;min-height:106px;position:relative}   /* 86px logo + 10/10 = 106; grows to 112 when the menu wraps, as the original does */
.brand{width:220px;flex:0 0 220px;display:block}
.brand img{width:220px;height:auto;display:block}
/* like the original: the menu shrinks and wraps between ~1025 and ~1090px, the button may wrap its text */
.main-nav{flex:1 1 auto;min-width:0;display:flex;justify-content:center;align-items:center;padding:0}
.nav-menu{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center}
.nav-menu a{position:relative;display:block;padding:13px 12px;font-family:var(--font);font-size:14px;font-weight:600;text-transform:uppercase;color:#fff;line-height:20px;white-space:nowrap}
.nav-menu a::before{content:"";position:absolute;inset:5px 4px;border:1.5px solid #fff;opacity:0;transition:opacity .2s}
.nav-menu a:hover::before,.nav-menu a:focus-visible::before,.nav-menu a.active::before{opacity:1}
.btn-header{margin-left:auto;flex:0 1 auto;white-space:normal;border:0}
.menu-toggle{display:none}

/* =====================================================================
   HERO  (inner padding 30/100, image block 518, content block 901)
   ===================================================================== */
.hero{position:relative;background:#002242 url("../assets/bg-hero.jpg") center/cover no-repeat;padding:0 50px;min-height:463px;color:#fff;overflow:hidden}
.hero-inner{max-width:var(--container);margin:0 auto;padding:30px 0 100px;display:flex;flex-direction:column;gap:20px;position:relative;z-index:2}
/* background video: absolutely positioned, sized by JS to cover the section (16:9), sits between the image and the content */
.hero-video{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.hero-video iframe,.hero-video video{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;max-width:none;border:0;opacity:0;transition:opacity .8s ease;object-fit:cover}
.hero-video.playing iframe,.hero-video.playing video{opacity:1}
/* darkening layer over the video so the wordmark and text stay readable; 0 = off, 1 = solid navy */
.hero{--hero-video-dim:.55}
.hero-video.playing::after{content:"";position:absolute;inset:0;background:rgba(0,34,66,var(--hero-video-dim));pointer-events:none}
.hero-brand{padding:15px 0;text-align:center}
.hero-logo{width:700px;max-width:100%;height:auto;margin:0 auto}

.hero-content{padding:10px;display:flex;flex-direction:column;gap:20px;text-align:center}
.hero-notice{font-size:20px;font-weight:500;line-height:20px;padding:6px 0}
.hero-notice span{font-size:18px;line-height:20px;white-space:normal;font-weight:500}
.hero-h2{font-size:32px;font-weight:600;line-height:1}
.hero-date{font-size:20px;font-weight:500;line-height:20px;padding:6px 0}
.hero-text p{font-size:18px;line-height:27px;margin:0 0 14.4px}
.hero-text p:last-child{margin-bottom:0}

/* ---------- competition rules: glass cards on the video ---------- */
.rules{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:10px;text-align:center}
.rules-title{font-size:32px;font-weight:600;line-height:1.15}
.rules-sub{font-size:16px;line-height:1.5;color:rgba(255,255,255,.75);margin-bottom:12px}
.rules-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:20px;width:100%}
.rule{flex:0 1 calc((100% - 40px)/3);min-width:260px;text-align:left;padding:26px 28px 28px;border-radius:10px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 10px 30px rgba(0,20,45,.25);transition:transform .3s,border-color .3s,background .3s}
.rule:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.11)}
.rule-num{display:block;font-family:var(--font-alt);font-size:34px;font-weight:600;line-height:1;color:#6EC1E4;margin-bottom:14px}
.rule h3{font-size:18px;font-weight:700;line-height:1.3;margin-bottom:8px;color:#fff}
.rule p{font-size:15px;line-height:24px;color:rgba(255,255,255,.85)}

/* variant "panel": one dark glass panel, editorial numbered list with gold numerals */
.rules.v-panel .rules-grid{display:block;max-width:960px;margin:0 auto;padding:6px 44px;border-radius:16px;background:rgba(0,18,40,.55);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 20px 50px rgba(0,10,30,.35)}
.rules.v-panel .rule{display:grid;grid-template-columns:92px 1fr;column-gap:24px;align-items:center;padding:26px 0;border:0;border-bottom:1px solid rgba(255,255,255,.12);border-radius:0;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;min-width:0;flex:none;text-align:left;transition:none}
.rules.v-panel .rule:last-child{border-bottom:0}
.rules.v-panel .rule:hover{transform:none;background:none}
.rules.v-panel .rule-num{grid-row:1/3;font-size:54px;font-weight:300;line-height:1;margin:0;color:#E8C979;letter-spacing:-.02em}
.rules.v-panel .rule h3{font-size:19px;margin-bottom:6px}
.rules.v-panel .rule p{font-size:15px;line-height:24px;max-width:680px;color:rgba(255,255,255,.82)}
.rules.v-panel .rules-sub{color:rgba(255,255,255,.7)}

/* variant "strip": horizontal numbered steps joined by a line */
.rules.v-strip .rules-grid{display:flex;flex-wrap:nowrap;gap:0;align-items:flex-start;padding-top:10px}
.rules.v-strip .rule{flex:1 1 0;min-width:0;padding:0 14px;border:0;border-radius:0;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;text-align:center;position:relative;transition:none}
.rules.v-strip .rule::before{content:"";position:absolute;top:28px;left:50%;width:100%;height:2px;background:rgba(255,255,255,.25)}
.rules.v-strip .rule:last-child::before{display:none}
.rules.v-strip .rule:hover{transform:none;background:none}
.rules.v-strip .rule-num{position:relative;z-index:1;width:56px;height:56px;margin:0 auto 18px;border-radius:50%;border:2px solid #E8C979;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:600;color:#fff;background:rgba(0,34,66,.9)}
.rules.v-strip .rule h3{font-size:16px;margin-bottom:6px}
.rules.v-strip .rule p{font-size:14px;line-height:22px;color:rgba(255,255,255,.8)}

/* ---------- media carousel (1120×230: slides 200 + pagination 30) ---------- */
.carousel{--per:3;position:relative;padding-bottom:30px}
.carousel-viewport{overflow:hidden}
.carousel-track{display:flex;gap:10px;will-change:transform}
.carousel-slide{flex:0 0 calc((100% - 10px*(var(--per) - 1))/var(--per));height:200px;background:#0b1e33 center/cover no-repeat}
.carousel-btn{position:absolute;top:100px;transform:translateY(-50%);width:20px;height:20px;padding:0;border:0;background:none;color:rgba(237,237,237,.9);cursor:pointer;z-index:2}
.carousel-btn svg{width:20px;height:20px;display:block}
.carousel-btn.prev{left:10px}
.carousel-btn.next{right:10px}
.carousel-dots{position:absolute;bottom:5px;left:0;right:0;display:flex;justify-content:center;gap:6px}
.carousel-dots button{width:6px;height:6px;border-radius:50%;background:#000;border:0;padding:0;opacity:.35;cursor:pointer}
.carousel-dots button.active{opacity:1}

/* =====================================================================
   SPEAKERS + AGENDA  (section padding 50, column padding 10)
   ===================================================================== */
.speakers-agenda{position:relative;padding:50px;overflow:hidden}
.speakers-agenda .bg-layer{position:absolute;inset:0;background:url("../assets/bg-light.jpg") center/cover no-repeat;opacity:1;z-index:0}   /* opacity is driven by the scroll motion effect (out-in, level 1, 20–80%) */
@media (min-width:1025px){.speakers-agenda .bg-layer{background-attachment:fixed}}   /* fixed background on desktop, as the original */
.speakers-agenda .container{position:relative;z-index:1;max-width:var(--container);margin:0 auto;padding:10px}
.section-title{font-size:35px;font-weight:600;color:var(--navy-dark);text-align:center;line-height:1;margin:0 0 20px}
.speaker-rows{padding:10px;display:flex;flex-direction:column;gap:20px}
.speaker-row{display:flex;gap:20px;padding:10px;width:1100px;max-width:100%;margin:0 auto}
.speaker{flex:1 1 0;min-width:0;padding:10px;display:flex;flex-direction:column;gap:10px;align-items:center;text-align:center;color:var(--navy)}
.speaker img{width:200px;max-width:100%;height:200px;border-radius:18px}   /* the original keeps 200px high and lets the width shrink on tablet */
.speaker-name{font-size:22px;font-weight:600;line-height:22px}
.speaker-role{font-size:16px;line-height:16px}
.speaker-role.br{padding-top:16px}   /* the original's leading <br> on one-line roles */
.speaker-org{font-size:18px;font-weight:700;line-height:18px}
.view-all{padding:10px;height:20px;text-align:center}   /* the original keeps a 20px container here; the button only shows on mobile */
.view-all .btn{display:none}

.agenda-title{padding-top:35px;margin:0 0 35px}
.agenda-note{font-size:16px;line-height:24px;color:var(--text);text-align:center;margin-bottom:44.4px}   /* 14.4 (p) + 10 (widget) + 20 (schedule offset) – kept on one element so nothing collapses */
.agenda-note a{color:#5b0e89;text-decoration:underline}
.agenda-note-pdf{display:none}   /* present but hidden at every width in the original */

.schedule{font-family:var(--font-system);font-size:14px;color:#333;margin:0 0 0 -15px;padding:0 15px;width:calc(100% + 15px)}
.schedule-day{background:var(--navy-mid);color:#fff;text-align:center;margin-bottom:10px}
.schedule-day .row-day{display:block;font-size:20.576px;font-weight:700;line-height:1.143;padding:26px 0}
.schedule-day .row-date{display:none}
.schedule-events{padding:0}
.event{background:rgba(255,255,255,.54);border-bottom:.52px solid var(--navy-mid);padding:20px 0;cursor:pointer;position:relative}
.event.no-detail{cursor:default}
.event-head{display:flex;align-items:center}
.event-main{width:91.667%;padding:0}
.event-time{font-size:14px;font-weight:700;color:var(--navy);padding:0 15px;line-height:21px}
.event-title{font-size:18px;font-weight:700;color:var(--navy);line-height:27px;padding:0 15px}
.event-icon{width:8.333%;padding:0 15px;display:flex;justify-content:flex-end}
.event.no-detail .event-icon{display:none}
.chev{display:block;width:9px;height:9px;border-right:2px solid var(--navy);border-bottom:2px solid var(--navy);transform:rotate(45deg);margin-top:-5px;transition:transform .2s,margin .2s}
.event.open .chev{transform:rotate(-135deg);margin-top:5px}
.event-body{display:none;margin-top:10px;padding:0 15px 10px}
.event.open .event-body{display:block}
.event-desc{padding:0 15px}
.event-desc p{font-family:var(--font-system);font-size:18.3px;line-height:27.4px;color:var(--navy);margin:0}
.event-speakers{margin-top:25px;padding:0 15px}
.artist{display:flex;align-items:center;gap:15px;margin-top:20px;font-family:var(--font)}
.artist img{width:90px;height:90px;border-radius:50%;flex:none}
.artist-name{font-size:18px;font-weight:700;color:#000;line-height:21px}
.artist-pos{font-size:14px;color:#000;line-height:21px}

/* =====================================================================
   KEY THEMES  (20 + spacer 16 + 20 + h2 31 + 50 + row + 50; four columns down to 768px)
   ===================================================================== */
.key-themes{background:var(--navy-dark);color:#fff;padding:0}
.key-themes-inner{max-width:var(--container);margin:0 auto;padding:20px 0 50px;display:flex;flex-direction:column;gap:20px}
.spacer-16{height:16px}
.key-themes h2{font-size:31px;font-weight:600;text-align:center;line-height:1}
.themes-row{display:flex;gap:40px;padding:10px 30px 10px 10px;margin-top:30px}   /* items 245 wide at 1140, shrink proportionally below */
.theme{flex:1 1 0;min-width:0;padding:20px 30px 10px;display:flex;flex-direction:column;gap:5px;align-items:center;text-align:center;border-radius:10px;transition:transform .4s}
.theme:hover{transform:scale(1.05)}   /* container hover transform of the original */
.theme-icon{width:96px;height:96px;margin-bottom:8px}
.theme-icon img{width:96px;height:96px;display:block}
.theme p{font-size:17px;line-height:25.5px;margin-bottom:15px;width:100%;min-width:0}

/* =====================================================================
   HIGHLIGHTS VIDEO  (inner 10/10, h2 block 73, video 883 wide, gap 20)
   ===================================================================== */
.video-section{padding:0 10px}
.video-inner{max-width:var(--container);margin:0 auto;padding:10px 0;display:flex;flex-direction:column;gap:20px;align-items:stretch}
.video-section h2{font-size:32px;font-weight:600;color:var(--navy-dark);text-align:center;line-height:1;padding:40px 0 1px}
.video-box{width:100%;padding:0 10px}
.video{position:relative;width:883px;max-width:100%;margin:0 auto;aspect-ratio:16/9;border-radius:3px;overflow:hidden;box-shadow:0 0 1px rgba(0,0,0,.5),0 1px 10px rgba(0,0,0,.15);background:#000 url("../assets/video-overlay.png") center/cover no-repeat;cursor:pointer}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-section .btn-outline{align-self:center}
.play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform .3s}
.video:hover .play{transform:scale(1.06)}
.play svg{width:100px;height:100px}
.play circle{fill:#fff;opacity:.92}
.play path{fill:var(--navy-dark)}

/* =====================================================================
   SPONSORSHIP (hidden, kept for parity with the original markup)
   ===================================================================== */
.sponsorship{background:#002242 url("../assets/bg-hero.jpg") center/cover no-repeat;color:#fff;padding:10px;position:relative}
.sponsorship::before{content:"";position:absolute;inset:0;background:rgba(0,34,66,.55)}
.sponsorship-inner{position:relative;max-width:var(--container);margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:20px;padding:40px 0}
.sponsorship h2{font-size:32px;font-weight:600;text-align:center}
.sponsor-contact,.sponsor-more{font-size:15px;line-height:22.5px;text-align:center}
.sponsor-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:20px;padding:10px 0}
.icon-box{width:29.82%;min-width:240px;text-align:center;display:flex;flex-direction:column;align-items:center}
.icon-box img{width:50px;height:50px;margin-bottom:15px}
.icon-box h3{font-size:18px;font-weight:600;margin-bottom:16px}
.icon-box p{font-size:15px;line-height:22.5px}
.sponsorship[hidden],.keep-informed[hidden]{display:none}

/* =====================================================================
   ORGANISERS & PARTNERS  (645px: 78 top, 58 bottom incl. shape)
   ===================================================================== */
.partners{position:relative;background:#fff url("../assets/bg-light.jpg") center/cover no-repeat;padding:0 38px}
.partners-inner{position:relative;z-index:2;max-width:var(--container);margin:0 auto;padding:78px 0 58px}
.partners-col{padding:0 20px;display:flex;flex-direction:column;gap:10px}
.partners h2{font-size:32px;font-weight:600;color:var(--navy-dark);text-align:center;line-height:1}
.partners-block{display:flex;flex-direction:column;gap:10px;padding:10px}
.partners .label{font-size:15px;font-weight:600;color:var(--label);text-align:center;line-height:1}
.logo-row{display:flex;justify-content:center;align-items:center;gap:50px;padding:10px}
.logo-row a{display:block;flex:0 1 200px;min-width:0;padding-bottom:6px}   /* 200px logos that shrink together on narrow tablets; 6px = the inline-image gap of the original */
.logo-row img{width:100%;height:auto}
/* label row: four cells as the original (193px | 27.6% | 199px | 109px; only the 4th may shrink) */
.partner-labels{display:flex;gap:20px;padding:10px}
.partner-labels .cell{min-width:0}
.partner-labels .cell:nth-child(1){flex:0 0 193px}
.partner-labels .cell:nth-child(2){flex:0 0 27.6%}
.partner-labels .cell:nth-child(3){flex:0 0 199px}
.partner-labels .cell:nth-child(4){flex:0 1 109px}
/* logo row: seven percentage cells as the original (they do not shrink, the row overflows by a few px like the original) */
.partner-logos{display:flex;gap:10px;width:95.8%;min-height:85px;align-items:center}
.partner-logos .cell{min-height:85px;display:flex;align-items:center;justify-content:center;min-width:0}
.partner-logos .cell:nth-child(1){flex:0 0 11.76%}
.partner-logos .cell:nth-child(2){flex:0 0 12.43%}
.partner-logos .cell:nth-child(3){flex:0 0 11.95%;padding:2.5px 5.5px}
.partner-logos .cell:nth-child(4){flex:0 0 12.62%}
.partner-logos .cell:nth-child(5){flex:0 0 3.51%}
.partner-logos .cell:nth-child(6){flex:0 0 41.56%;padding:0 10px}
.partner-logos .cell:nth-child(7){flex:0 0 1.9%}
.partner-logos a{display:block;width:100%;padding-bottom:6px;cursor:pointer}   /* 6px = inline-image gap of the original */
.partner-logos .cell:nth-child(2) a{padding:3px 0 9px}
.partner-logos .cell:nth-child(6) a{padding:10px 10px 16px}
.partner-logos img{height:auto;margin:0 auto}
.logo-row a{cursor:pointer}
.partner-logos .cell:nth-child(2) img,.partner-logos .cell:nth-child(3) img{width:100%}
.partner-logos .cell:nth-child(4) img{width:91px;max-width:100%}
.partner-logos .cell:nth-child(6) img{width:68.7%}

/* =====================================================================
   STATS  (220px: 40 + 10 + counters 120 + 10 + 40)
   ===================================================================== */
.stats{position:relative;background:var(--navy-dark);color:#fff;padding:0 10px}
.stats-inner{max-width:var(--container);margin:0 auto;padding:50px 0;display:flex;gap:60px;justify-content:center;flex-wrap:wrap}
.counter{padding:10px 0;text-align:center;font-family:var(--font-alt)}
.counter-value{font-size:35px;font-weight:600;line-height:1.5;white-space:nowrap}
.counter-value .suf{font-family:var(--font);font-size:16px;font-weight:600;color:var(--accent);vertical-align:top;margin-left:2px;line-height:1.6}
.counter-title{font-family:var(--font-alt);font-size:16px;font-weight:600;line-height:1.5}
.counter-desc{font-family:var(--font-alt);font-size:16px;font-weight:400;color:var(--grey-light);line-height:1.5}

/* =====================================================================
   VENUE + CONTACT  (575px: 50 + columns + 50)
   ===================================================================== */
.venue-contact{position:relative;background:#1c2733 url("../assets/bg-venue.jpg") center/cover no-repeat;padding:0 50px;color:#fff}
.venue-contact::before{content:"";position:absolute;inset:0;background:var(--navy-dark);opacity:.87}
.vc-inner{position:relative;z-index:2;max-width:var(--container);margin:0 auto;padding:50px 0;display:flex;gap:10px;align-items:stretch;justify-content:center}
.vc-col{flex:1 1 0;max-width:565px;min-width:0;display:flex;flex-direction:column;gap:20px;text-align:center;padding:10px}   /* single centred column since the contact column was removed */
.vc-col h2{font-size:32px;font-weight:600;line-height:1}
.vc-text{font-size:18px;line-height:27px}
.vc-text p{margin-bottom:14.4px}
.vc-text .small{font-size:16px;line-height:27px}
.vc-contact p{line-height:32.4px}   /* original text widget: 1.8 line-height */
.vc-contact p:last-child{margin-bottom:0}
.vc-contact{margin-bottom:-10px}    /* the original block measures 10px less than its paragraphs at every width */
.map-wrap{width:100%}
.map{width:100%;height:300px;border:0;display:block;background:#dfe6ea}
/* venue: full-width rounded map with a floating info card */
.venue{width:100%;display:flex;flex-direction:column;align-items:center;gap:28px;padding:10px}
.venue-title{font-size:32px;font-weight:600;line-height:1;text-align:center}
.venue-map-wrap{position:relative;width:100%;height:440px;border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.16);box-shadow:0 20px 50px rgba(0,10,30,.4)}
.venue-map-wrap .map{width:100%;height:100%}
.venue-card{position:absolute;left:28px;top:28px;width:330px;padding:26px 28px 28px;border-radius:12px;background:rgba(0,18,40,.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;text-align:left;box-shadow:0 12px 30px rgba(0,10,30,.35)}
.venue-label{display:inline-block;font-family:var(--font);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#E8C979;margin-bottom:10px}
.venue-card h3{font-size:22px;font-weight:700;line-height:1.25;margin-bottom:8px}
.venue-card p{font-size:15px;line-height:24px;color:rgba(255,255,255,.82);margin-bottom:18px}
.venue-btn{font-size:14px;font-weight:600;padding:11px 20px}
.spacer-25{height:25px}
.hashtag{font-size:32px;font-weight:600;line-height:1}
.social{display:flex;justify-content:center;gap:5px}
.social a{width:50px;height:50px;border-radius:10%;background:#fff;display:flex;align-items:center;justify-content:center;transition:transform .2s}
.social a:hover{transform:scale(1.08)}
.social svg{width:25px;height:25px;fill:var(--navy-dark)}

/* =====================================================================
   PARTNER MODAL (the original opens a dialog when a logo is clicked)
   ===================================================================== */
.pmodal{position:fixed;inset:0;z-index:1050;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.5);padding:20px}
.pmodal.open{display:flex}
.pmodal-dialog{background:#fff;border:1px solid rgba(0,0,0,.2);border-radius:6px;width:600px;max-width:100%;max-height:calc(100vh - 150px);display:flex;flex-direction:column;color:#333;font-family:var(--font);animation:fe-fadeInDown .5s both}
.pmodal-header{display:flex;justify-content:space-between;align-items:center;padding:5px 15px;border-bottom:1px solid #e5e5e5}
.pmodal-title{display:flex;align-items:center;gap:12px;font-size:18px;font-weight:600;color:var(--navy-dark)}
.pmodal-title img{height:40px;width:auto}
.pmodal-close{background:none;border:0;font-size:21px;font-weight:700;color:#000;cursor:pointer;line-height:1}
.pmodal-body{padding:15px;font-size:15px;line-height:1.6;overflow:auto}
.pmodal-body a{color:var(--navy);text-decoration:underline}
.pmodal-footer{padding:10px 15px;border-top:1px solid #e5e5e5;text-align:right}
.pmodal-footer button{display:inline-block;padding:6px 12px;font-size:14px;border:1px solid transparent;background:var(--navy);color:#fff;cursor:pointer}

/* =====================================================================
   KEEP ME INFORMED (hidden)
   ===================================================================== */
.keep-informed{padding:40px 100px;background:#fff}
.keep-inner{max-width:var(--container);margin:0 auto;text-align:center}
.keep-inner form{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:20px}
.keep-inner input{padding:10px;border:1px solid #ccc}

/* =====================================================================
   FOOTER  (99px)
   ===================================================================== */
.site-footer{background:#fff;padding:27px 50px}
.site-footer p{max-width:var(--container);margin:0 auto;font-size:15px;line-height:22.5px;color:var(--text);font-weight:400;text-align:center}
.site-footer a{color:#000}
.site-footer a.mail{color:#CC3366}

/* =====================================================================
   TABLET (768 – 1024): the original keeps the full menu and four columns,
   only the outer paddings shrink to 25px
   ===================================================================== */
@media (max-width:1024px){
  .site-header{padding:0 25px}
  .header-inner{padding:5px 0;min-height:0}
  .brand{width:23%;flex:0 0 23%}
  .brand img{width:100%}
  .hero{padding:0 25px}
  .hero-inner{padding:25px 10px}
  .hero-brand{padding:25px 0 15px}
  .hero-content{padding:10px 10px 20px}
  .speakers-agenda{padding:25px}
  .event-main{width:75%}
  .video-box{padding:10px 10px 80px}
  .partners{padding:0 25px}
  .partners-inner{padding:65px 0 45px}
  .partner-logos,.partner-logos .cell{min-height:70px}
  .venue-contact{padding:0 25px}
  .vc-inner{padding:25px 0}
  .site-footer{padding:27px 25px}
  .rule{flex:0 1 calc((100% - 20px)/2)}
  .rules.v-strip .rule{padding:0 8px}
  .rules.v-strip .rule p{font-size:13px;line-height:20px}
}
/* the agenda plugin hides the time column between 768 and 991px */
@media (min-width:768px) and (max-width:991px){
  .event-time{display:none}
}

/* =====================================================================
   MOBILE (≤ 767): hamburger menu, single columns
   ===================================================================== */
@media (max-width:767px){
  .site-header{padding:0 20px}
  .header-inner{min-height:100px;padding:7px 0;justify-content:space-between}
  .brand{width:153px;flex:0 0 153px}
  .brand img{width:153px}
  .main-nav{flex:0 0 auto;position:static}
  .menu-toggle{display:flex;align-items:center;justify-content:center;width:33px;height:33px;background:none;border:0;border-radius:3px;color:#fff;cursor:pointer;padding:0}
  .bars{position:relative;width:22px;height:16px;display:block}
  .bars i{position:absolute;left:0;width:22px;height:3px;background:#fff;border-radius:2px;transition:transform .25s,opacity .25s,top .25s}
  .bars i:nth-child(1){top:0}
  .bars i:nth-child(2){top:6.5px}
  .bars i:nth-child(3){top:13px}
  .menu-toggle.open .bars i:nth-child(1){top:6.5px;transform:rotate(45deg)}
  .menu-toggle.open .bars i:nth-child(2){opacity:0}
  .menu-toggle.open .bars i:nth-child(3){top:6.5px;transform:rotate(-45deg)}
  .nav-menu{display:none;position:absolute;left:0;right:0;top:100%;background:var(--navy);flex-direction:column;z-index:50}
  .nav-menu.open{display:flex}
  .nav-menu a{font-size:17px;font-weight:500;text-transform:none;padding:10px 25px;text-align:left}
  .nav-menu a::before{display:none}
  .nav-menu a:hover,.nav-menu a.active{background:rgba(255,255,255,.08)}
  .btn-header{margin-left:0;padding:12px 24px;max-width:125px}
  .hero{padding:0}
  .hero-inner{padding:35px 20px 91px}
  .hero-brand{padding:10px 15px 20px}
  .hero-content{padding:10px 10px 20px}
  .speakers-agenda{padding:25px 15px}
  .section-title{font-size:28px}
  .speaker-row{flex-wrap:wrap}
  .speaker{flex:0 0 100%}
  .event-main{width:83.333%}
  .event-icon{width:16.667%}
  .event-desc p{font-size:16px;line-height:24px}
  .key-themes-inner{padding-bottom:26px}
  .themes-row{flex-wrap:wrap;gap:20px;padding:10px;margin-top:0}
  .theme{flex:0 0 100%}
  .theme p{margin-bottom:0}
  .partners{padding:0 15px}
  .partners-inner{padding:75px 0 20px}
  .logo-row{flex-wrap:wrap;gap:50px}
  .logo-row a{flex:0 0 100%}
  .partner-labels{flex-wrap:wrap}
  .partner-logos{flex-wrap:wrap;width:100%;min-height:0}
  .partner-logos .cell:nth-child(n){flex:0 0 100%;min-height:0;padding:0}
  .partner-logos .cell:nth-child(1){min-height:70px}
  .partner-logos .cell:nth-child(3){padding:0 17.5px}
  .partner-logos .cell:nth-child(5){min-height:42px}
  .partner-logos .cell:nth-child(6){padding:0}
  .partner-logos .cell:nth-child(7){min-height:39px}
  .partner-logos .cell:nth-child(2) img,.partner-logos .cell:nth-child(3) img,.partner-logos .cell:nth-child(4) img{width:100%}
  .venue-contact{padding:0 25px}
  .vc-inner{flex-direction:column;padding:25px 0}
  .hashtag{font-size:28px}
  .rules-title{font-size:28px}
  .rule{flex:0 0 100%;min-width:0;padding:22px 22px 24px}
  .venue{gap:20px;padding:0}
  .venue-title{font-size:28px}
  .venue-map-wrap{height:auto;display:flex;flex-direction:column;border-radius:12px}
  .venue-map-wrap .map{height:300px;order:2}
  .venue-card{position:static;width:100%;border-radius:0;order:1;padding:22px 22px 24px}
  .rules.v-panel .rules-grid{padding:4px 20px;border-radius:12px}
  .rules.v-panel .rule{grid-template-columns:52px 1fr;column-gap:14px;padding:20px 0}
  .rules.v-panel .rule-num{font-size:34px}
  .rules.v-strip .rules-grid{flex-direction:column;gap:22px}
  .rules.v-strip .rule{display:grid;grid-template-columns:56px 1fr;column-gap:16px;text-align:left;padding:0}
  .rules.v-strip .rule::before{display:none}
  .rules.v-strip .rule-num{grid-row:1/3;margin:0}
  .site-footer{padding:27px 20px}
  .site-footer p{font-size:14px;line-height:21px}
}

/* ---------- live finalist cards: editorial white card (rank, profit %, votes, score, vote button; data from /api/state) ---------- */
.rank-note{font-family:var(--font);font-size:15px;line-height:23px;font-weight:400;color:var(--text);text-align:center;max-width:640px;margin:-2px auto 30px}
.rank-note:empty{display:none}

/* grid: 4 columns down to 768px, 1 column below */
.speaker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;align-items:stretch;padding:10px 0;width:1100px;max-width:100%;margin:0 auto;box-sizing:border-box}

/* card */
.speaker-grid .speaker{position:relative;flex:none;min-width:0;display:flex;flex-direction:column;align-items:center;gap:0;text-align:center;padding:30px 22px 22px;background:#fff;border:1px solid rgba(0,38,75,.09);border-radius:18px;box-shadow:0 1px 2px rgba(0,34,66,.04),0 20px 44px -24px rgba(0,34,66,.28);color:var(--navy);font-family:var(--font);transition:box-shadow .35s ease,border-color .35s ease}
.speaker-grid .speaker:hover{border-color:rgba(0,38,75,.18);box-shadow:0 1px 2px rgba(0,34,66,.05),0 30px 60px -26px rgba(0,34,66,.42)}
.speaker.moving{z-index:2;pointer-events:none}
/* podium cards: a thin metal strip along the top edge (painted as a background layer so the corner radius clips it cleanly) */
.speaker-grid .speaker.rank-1{background:linear-gradient(90deg,#CFA84D,#F1DC9E 50%,#CFA84D) top/100% 4px no-repeat,#fff}
.speaker-grid .speaker.rank-2{background:linear-gradient(90deg,#A3AEBB,#DCE2E9 50%,#A3AEBB) top/100% 4px no-repeat,#fff}
.speaker-grid .speaker.rank-3{background:linear-gradient(90deg,#A8702F,#E2B98B 50%,#A8702F) top/100% 4px no-repeat,#fff}

/* photo: the PNGs are circles with a navy ring on transparency */
.speaker-grid .speaker-photo{position:relative;width:160px;height:160px;max-width:100%;margin:0 auto;border-radius:50%;background:transparent}
.speaker-grid .speaker-photo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%;background:transparent}
/* podium halo: white gap + metal ring outside the photo's own navy ring */
.speaker-grid .rank-1 .speaker-photo{box-shadow:0 0 0 3px #fff,0 0 0 6px #E8C979}
.speaker-grid .rank-2 .speaker-photo{box-shadow:0 0 0 3px #fff,0 0 0 6px #C3CAD3}
.speaker-grid .rank-3 .speaker-photo{box-shadow:0 0 0 3px #fff,0 0 0 6px #CD9A63}

/* rank medallion pinned on the ring, top-left, so the number is read first */
.speaker-grid .speaker-rank{position:absolute;left:-2px;top:4px;right:auto;bottom:auto;width:38px;height:38px;min-width:0;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%;border:3px solid #fff;background:var(--navy-dark);color:#fff;font-family:var(--font);font-size:15px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;box-shadow:0 4px 10px rgba(0,20,50,.22),inset 0 0 0 1px rgba(255,255,255,.18)}
.speaker-grid .rank-1 .speaker-rank{background:linear-gradient(155deg,#F8E8B4 0%,#E8C979 48%,#C79E3E 100%);color:var(--navy-dark);text-shadow:0 1px 0 rgba(255,255,255,.5)}
.speaker-grid .rank-2 .speaker-rank{background:linear-gradient(155deg,#F7F9FB 0%,#D6DCE4 48%,#A3AEBC 100%);color:var(--navy-dark);text-shadow:0 1px 0 rgba(255,255,255,.6)}
.speaker-grid .rank-3 .speaker-rank{background:linear-gradient(155deg,#EDC69E 0%,#CF9A62 48%,#A06A2B 100%);color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.15)}

/* name (two-line slot so every card keeps the same rhythm) */
.speaker-grid .speaker-name{width:100%;margin:18px 0 0;font-family:var(--font);font-size:19px;line-height:1.2;font-weight:700;color:var(--navy-dark);min-height:2.4em;display:flex;align-items:center;justify-content:center;overflow-wrap:anywhere;hyphens:auto}

/* profit: hero number coloured by the last move, with a discreet change chip */
.speaker-grid .speaker-profit{width:100%;margin:14px 0 0;padding:14px 8px 12px;display:flex;flex-direction:column;align-items:center;gap:7px;line-height:1;border-radius:12px;background:transparent;transition:background .6s}
.profit-label{font-family:var(--font);font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--label)}
.profit-val{font-family:var(--font);font-size:34px;font-weight:800;line-height:1;letter-spacing:-.02em;color:var(--navy);font-variant-numeric:tabular-nums;transition:color .4s}
.profit-chg{display:inline-flex;align-items:center;justify-content:center;min-height:22px;min-width:22px;padding:0 10px;border-radius:999px;font-family:var(--font);font-size:12px;font-weight:700;line-height:22px;font-variant-numeric:tabular-nums;color:#5F6B79;background:#EEF2F6;transition:color .4s,background .4s}
.profit-chg:empty{visibility:hidden}
.speaker-profit.up .profit-val{color:#16A34A}
.speaker-profit.down .profit-val{color:#DC2626}
.speaker-profit.up .profit-chg{color:#15803D;background:#E6F6EC}
.speaker-profit.down .profit-chg{color:#B91C1C;background:#FDEDED}
/* live change: the block tints for a moment */
.speaker-profit.flash-up{animation:fe-flashUp 1.2s ease-out}
.speaker-profit.flash-down{animation:fe-flashDown 1.2s ease-out}
@keyframes fe-flashUp{0%{background:rgba(22,163,74,.14)}100%{background:transparent}}
@keyframes fe-flashDown{0%{background:rgba(220,38,38,.12)}100%{background:transparent}}

/* votes | score: two small-caps stat cells over a hairline */
.speaker-grid .speaker-meta{width:100%;margin:12px 0 20px;padding-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:0;justify-content:stretch;border-top:1px solid #E6EBF1;font-family:var(--font);font-size:13px;color:var(--text);font-variant-numeric:tabular-nums}
.speaker-grid .meta-votes,.speaker-grid .meta-score{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;padding:0 4px}
.speaker-grid .meta-score{border-left:1px solid #E6EBF1;border-top:0;padding-top:0}
.speaker-grid .speaker-meta b{display:inline-block;font-size:15px;font-weight:700;line-height:1.1;color:var(--navy);white-space:nowrap;font-variant-numeric:tabular-nums}
.speaker-grid .votes-word,.speaker-grid .score-word{font-size:10px;font-weight:700;line-height:1;letter-spacing:.16em;text-transform:uppercase;color:#66717F;white-space:nowrap}
.speaker-grid .meta-score .score-word{order:2}
.speaker-grid .votes-num{display:inline-block}

/* number bump (votes / rank) */
.bump{display:inline-block;animation:fe-bump .45s ease-out}
.speaker-grid .speaker-rank.bump{display:flex}
@keyframes fe-bump{0%{transform:scale(1)}40%{transform:scale(1.28)}100%{transform:scale(1)}}

/* vote button: full-width, square, matches the site .btn */
.speaker-grid .vote-btn{width:100%;margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font);font-size:14px;font-weight:700;line-height:15px;letter-spacing:.14em;text-transform:uppercase;padding:13px 24px;border-radius:0;border:1px solid var(--navy);background:var(--navy);color:#fff;cursor:pointer;box-shadow:none;transition:background .3s,color .3s,border-color .3s,box-shadow .3s}
.speaker-grid .vote-btn:hover:not(:disabled){background:var(--navy-dark);border-color:var(--navy-dark);box-shadow:-5px 5px 0 1px rgba(232,201,121,.9)}
.speaker-grid .vote-btn:focus-visible{outline:2px solid #E8C979;outline-offset:3px}
.speaker-grid .vote-btn:disabled{background:#EEF2F6;border-color:#EEF2F6;color:#7C8794;opacity:1;cursor:not-allowed;box-shadow:none}
.speaker-grid .vote-btn.voted,.speaker-grid .vote-btn.voted:disabled{background:#E8C979;border-color:#E8C979;color:var(--navy-dark);opacity:1;cursor:default;box-shadow:none}
.speaker-grid .vote-btn.voted .vote-text::before{content:"\2713";display:inline-block;margin-right:8px;font-weight:800}

/* toast */
.fe-toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%) translateY(20px);background:var(--navy-dark);color:#fff;font-family:var(--font);font-size:14px;font-weight:600;padding:13px 22px;border-radius:6px;border-left:4px solid #E8C979;box-shadow:0 12px 32px rgba(0,20,50,.35);opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;z-index:90;max-width:90vw;text-align:center}
.fe-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* tablet (768 – 1024): still four columns, everything one notch smaller */
@media (max-width:1024px){
  .speaker-grid{gap:16px;padding:8px 0}
  .speaker-grid .speaker{padding:24px 14px 16px;border-radius:16px}
  .speaker-grid .speaker-photo{width:116px;height:116px}
  .speaker-grid .rank-1 .speaker-photo,.speaker-grid .rank-2 .speaker-photo,.speaker-grid .rank-3 .speaker-photo{box-shadow:0 0 0 2px #fff,0 0 0 5px currentColor}
  .speaker-grid .rank-1 .speaker-photo{color:#E8C979}
  .speaker-grid .rank-2 .speaker-photo{color:#C3CAD3}
  .speaker-grid .rank-3 .speaker-photo{color:#CD9A63}
  .speaker-grid .speaker-rank{width:30px;height:30px;font-size:12px;border-width:2px;left:-4px;top:0}
  .speaker-grid .speaker-name{font-size:16px;margin-top:14px}
  .speaker-grid .speaker-profit{margin-top:10px;padding:10px 4px 8px;gap:6px}
  .profit-label{font-size:10px;letter-spacing:.18em}
  .profit-val{font-size:26px}
  .profit-chg{font-size:11px;min-height:20px;line-height:20px;padding:0 8px}
  .speaker-grid .speaker-meta{margin:10px 0 16px;padding-top:12px}
  .speaker-grid .speaker-meta b{font-size:13px}
  .speaker-grid .votes-word,.speaker-grid .score-word{font-size:9px;letter-spacing:.12em}
  .speaker-grid .vote-btn{font-size:12px;letter-spacing:.12em;padding:12px 10px}
}
/* narrow tablets (768 – 860): the two stat cells stack so "4,000,000" never breaks */
@media (max-width:860px){
  .speaker-grid .speaker-meta{grid-template-columns:1fr;gap:8px}
  .speaker-grid .meta-votes,.speaker-grid .meta-score{flex-direction:row;align-items:baseline;justify-content:center;gap:6px}
  .speaker-grid .meta-score{border-left:0;border-top:1px solid #E6EBF1;padding-top:8px}
  .speaker-grid .meta-score .score-word{order:0}
}

/* mobile (≤ 767): one centred column */
@media (max-width:767px){
  .speaker-grid{grid-template-columns:1fr;gap:18px;padding:4px 0;width:100%}
  .speaker-grid .speaker{width:100%;max-width:360px;justify-self:center;margin:0;padding:30px 24px 24px;border-radius:18px}
  .speaker-grid .speaker-photo{width:160px;height:160px}
  .speaker-grid .rank-1 .speaker-photo{box-shadow:0 0 0 3px #fff,0 0 0 6px #E8C979}
  .speaker-grid .rank-2 .speaker-photo{box-shadow:0 0 0 3px #fff,0 0 0 6px #C3CAD3}
  .speaker-grid .rank-3 .speaker-photo{box-shadow:0 0 0 3px #fff,0 0 0 6px #CD9A63}
  .speaker-grid .speaker-rank{width:38px;height:38px;font-size:15px;border-width:3px;left:-2px;top:4px}
  .speaker-grid .speaker-name{font-size:20px;margin-top:18px;min-height:0}
  .speaker-grid .speaker-profit{margin-top:14px;padding:14px 8px 12px;gap:7px}
  .profit-label{font-size:11px;letter-spacing:.22em}
  .profit-val{font-size:36px}
  .profit-chg{font-size:12px;min-height:22px;line-height:22px;padding:0 10px}
  .speaker-grid .speaker-meta{grid-template-columns:1fr 1fr;gap:0;margin:12px 0 20px;padding-top:14px}
  .speaker-grid .meta-votes,.speaker-grid .meta-score{flex-direction:column;align-items:center;gap:5px}
  .speaker-grid .meta-score{border-left:1px solid #E6EBF1;border-top:0;padding-top:0}
  .speaker-grid .meta-score .score-word{order:2}
  .speaker-grid .speaker-meta b{font-size:16px}
  .speaker-grid .votes-word,.speaker-grid .score-word{font-size:10px;letter-spacing:.16em}
  .speaker-grid .vote-btn{font-size:14px;letter-spacing:.14em;padding:14px 24px}
}

/* event status pill above the finalist grid (paused / ended) */
.event-pill{display:none;margin:-14px auto 22px;padding:9px 18px;border-radius:999px;font-family:var(--font);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-align:center;width:max-content;max-width:100%}
.event-pill.show{display:block}
.event-pill.paused,.event-pill.closed{background:#EEF2F6;color:#4C5A6B;border:1px solid #D9E0E8}
.event-pill.ended{background:var(--navy-dark);color:#E8C979;border:1px solid var(--navy-dark)}
.speaker-grid.event-ended .vote-btn:disabled{background:#fff;border-color:#D9E0E8;color:#8A94A0}
