/* Future of Cash Summit: the 2026 design (approved artifact "Future of Cash Summit Website", with the new logo).
   White page, dark pine text and headings, the logo's greens for actions and labels, blue for figures; a light blue
   band, a light stone band and a deep blue band (the awards); the hero is the logo's landscape: hills, a river and
   orbit lines on pine. Wave rules (static/foc/wave.svg) part the sections. Class names follow ACF's templates.
   Montserrat throughout, self-hosted (static/foc/fonts, OFL). */

@font-face{font-family:"Montserrat";font-weight:100 900;font-style:normal;font-display:swap;src:url("fonts/montserrat-latin-wght-normal.057478083c1d.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Montserrat";font-weight:100 900;font-style:normal;font-display:swap;src:url("fonts/montserrat-latin-ext-wght-normal.89711a115091.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --pine:#103132;          /* base: text, headings, the hero and the footer */
  --pine-2:#1b4a40;
  --green:#2e7a56;         /* primary: buttons, labels, links */
  --green-ink:#1f5a40;
  --leaf:#6da765;          /* the logo's hills */
  --sage:#b3d4a2;          /* the logo's banknote: buttons and labels on dark */
  --sage-pale:#eef5e9;     /* pills */
  --mist:#dcebd3;          /* text on pine */
  --blue:#1f6a96;          /* figures */
  --blue-mid:#5fa9d3;      /* the river, orbit lines */
  --blue-light:#8cc7e0;
  --blue-pale:#b8ddf0;     /* labels on dark */
  --deep:#154a6b;          /* the awards band */
  --deep-2:#1d5c82;
  --sky:#eef6fa;           /* light blue band */
  --sky-line:#cde6f2;
  --stone:#f4f6f1;         /* light stone band, logo tiles */
  --bg:#fff;
  --fg:var(--pine);
  --text:#2b3b39;          /* body copy */
  --muted:#3e5552;
  --line:#e1e8de;
  --field:#b9c7b5;
  --display:"Montserrat","Helvetica Neue",Arial,system-ui,sans-serif;
  --body:var(--display);
  color-scheme:light;
}

*{box-sizing:border-box}
html{scroll-padding-top:96px}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.65 var(--body);-webkit-font-smoothing:antialiased}
img{max-width:100%}
.wrap{max-width:1240px;margin-inline:auto;padding-inline:clamp(16px,4vw,40px)}
h1,h2,h3{font-family:var(--display);text-wrap:balance;margin:0;line-height:1.15;color:var(--pine)}
h1,h2{font-weight:800}
h2{font-size:clamp(1.9rem,3.4vw,2.4rem)}
h3{font-size:1.25rem;font-weight:800}
p{margin:0}
a{color:inherit}
:focus-visible{outline:3px solid var(--blue-mid);outline-offset:3px;border-radius:4px}
.eyebrow{font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.25em;text-transform:uppercase;color:var(--green)}
.lede{color:var(--text);font-size:1.0625rem;line-height:1.6;max-width:62ch}

/* the wave rule (static/foc/wave.svg): the logo's green and the river's blue, across the page */
.wave-rule{height:22px;background:url("wave.201a39d2a749.svg") left center/40px 22px repeat-x}

/* header and menu: white, the logo, the menu in pine, the green pill */
header.top{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:14px}
.brand{display:block;flex:none}
.brand img{display:block;height:56px;width:auto}
.nav ul{display:flex;gap:4px 20px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.nav ul a{display:block;padding:12px 0;text-decoration:none;font:600 .875rem var(--display);color:var(--pine)}
.nav ul a:hover{color:var(--green)}
.nav li{position:relative}
.nav li ul{display:none;position:absolute;top:100%;left:-12px;min-width:220px;flex-direction:column;gap:0;background:#fff;border:1px solid var(--line);border-radius:12px;padding:6px 12px;box-shadow:0 12px 32px rgba(16,49,50,.12)}
.nav li ul a{padding:8px 0}
.nav li:hover>ul,.nav li:focus-within>ul{display:flex}
.nav-cta{display:flex;align-items:center;gap:10px}
.menu-toggle{display:none;background:none;border:1px solid var(--line);color:var(--pine);border-radius:8px;padding:6px 12px;font-size:1.1rem;cursor:pointer}
@media (max-width:960px){
  .menu-toggle{display:block}
  .brand img{height:46px}
  .nav>ul{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;background:#fff;border-bottom:1px solid var(--line);padding:8px clamp(16px,4vw,40px) 16px}
  .nav>ul.open{display:flex}
  .nav li ul{display:flex;position:static;border:0;box-shadow:none;background:none;padding:0 0 0 12px}
  .nav-cta .btn{padding:10px 16px;font-size:.82rem}
}
@media (max-width:420px){.nav-cta .btn{display:none}}
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 26px;border-radius:999px;font:700 .9375rem var(--display);text-decoration:none;border:1.5px solid transparent;transition:transform .15s ease,background .15s ease,color .15s ease;cursor:pointer}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--green);color:#fff}
.btn-primary:hover{background:var(--green-ink);color:#fff}
.btn-ghost{border-color:var(--green);background:transparent;color:var(--green)}
.btn-ghost:hover{background:var(--sage-pale)}
.cta{display:flex;gap:12px;flex-wrap:wrap}

/* hero: the logo's landscape on pine (orbit lines on the right, hills, the river), the white headline and the logo;
   a photo or film, when the block has one, lies under a pine shade. Then the band of figures. */
.foc-hero{position:relative;overflow:hidden;background:var(--pine);color:#fff}
.hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,49,50,.94) 0%,rgba(16,49,50,.8) 55%,rgba(16,49,50,.6) 100%)}
.hero-art,.hero-hills{position:absolute;left:0;width:100%;display:block;pointer-events:none}
.hero-art{top:0;height:100%}
.hero-hills{bottom:0;height:clamp(140px,18vw,260px)}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(28px,5vw,48px);align-items:center;padding-block:clamp(56px,8vw,96px) clamp(150px,19vw,260px)}
.hero-text{display:grid;gap:24px;min-width:0}
.foc-hero .eyebrow{font-size:.8125rem;letter-spacing:.3em;color:var(--blue-pale)}
.foc-hero h1{font-size:clamp(2.4rem,5vw,4rem);line-height:1.08;font-weight:800;color:#fff}
.foc-hero h1 em{font-style:normal;color:var(--sage)}
.hero-theme{font-size:1.125rem;line-height:1.6;max-width:620px;color:var(--mist)}
.foc-hero .btn-primary{background:var(--sage);color:var(--pine)}
.foc-hero .btn-primary:hover{background:#c6e0b8}
.foc-hero .btn-ghost{border-color:var(--blue-light);color:#fff;font-weight:600}
.foc-hero .btn-ghost:hover{background:rgba(255,255,255,.08)}
.hero-logo{display:flex;justify-content:center}
.hero-logo img{width:100%;max-width:380px;height:auto}
.pause{position:absolute;right:clamp(16px,3vw,32px);top:16px;z-index:2;font:600 .78rem var(--display);color:#fff;background:rgba(16,49,50,.5);border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:8px 14px;cursor:pointer}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr}.hero-logo img{max-width:260px}}
/* the band of figures under the hero: the last edition (or this one) and its numbers in blue */
.figures-band{background:var(--sky);padding-block:48px}
.figures-band .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:32px}
.figures-where{display:grid;gap:6px}
.last-place{font:800 1.5rem/1.2 var(--display);color:var(--pine)}
.last-dates{font-size:.9375rem;color:var(--muted)}
.figs{display:flex;flex-wrap:wrap;gap:24px 48px;margin:0}
.figs div{display:flex;flex-direction:column-reverse;gap:4px}
.figs dt{font-size:.875rem;font-weight:600;color:var(--muted);text-transform:lowercase}
.figs dd{margin:0;font:800 3rem/1 var(--display);color:var(--blue);font-variant-numeric:tabular-nums}

/* a Band of cards (style "band"): titles running across the page */
.ticker{overflow:hidden;background:var(--pine);border-block:1px solid var(--pine-2)}
.ticker-track{display:flex;width:max-content;padding-block:14px}
.ticker-track span{font:700 .8rem var(--display);letter-spacing:.2em;text-transform:uppercase;color:var(--mist);padding-inline:28px;white-space:nowrap}
.ticker-track span::after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--sage);margin-left:56px;vertical-align:middle;transform:translateX(-28px)}
@media (prefers-reduced-motion:no-preference){.ticker-track{animation:tick 40s linear infinite}@keyframes tick{to{transform:translateX(-50%)}}}

section{padding-block:clamp(56px,8vw,96px)}
.sec-head{display:grid;gap:12px;margin-bottom:clamp(28px,4vw,40px);max-width:720px}

/* text section (about): eyebrow and heading on the left, the text beside them */
.about{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(28px,5vw,48px);align-items:start}
.about .sec-head{margin-bottom:0}
.about .body{display:grid;gap:24px;color:var(--text);font-size:1.0625rem;line-height:1.7;min-width:0}
.rich{display:grid;gap:16px}
.rich strong,.rich b{color:var(--pine)}
.rich ul{margin:0;padding-left:1.2em}
.rich a{color:var(--green)}
.rich h2{font-size:1.5rem}.rich h3{font-size:1.15rem}
.about .plate{border-radius:16px;overflow:hidden;margin-top:12px}
.about .plate img{display:block;width:100%;height:auto}
/* text sections that flow: page or reading width, the photo right or left (small, medium, large) with the text
   wrapping around it, little padding between text sections */
section.text{padding-block:clamp(24px,3vw,40px)}
section.text-about{padding-block:clamp(56px,8vw,96px)}
section.text+section.text{padding-top:0}
.flow::after{content:"";display:block;clear:both}
.flow>.eyebrow{display:block;margin-bottom:8px}
.flow h2{font-size:clamp(1.6rem,2.8vw,2.2rem);margin-bottom:14px}
.flow .rich{display:block;color:var(--text)}
.flow-narrow{max-width:78ch}  /* the reading width, aligned with the page's other blocks */
.flow .rich>*+*{margin-top:14px}
.flow .rich h2,.flow .rich h3{margin-top:28px}
.flow-photo{float:right;width:min(42%,500px);margin:6px 0 18px 32px}
.flow-photo-left{float:left;margin:6px 32px 18px 0}
.flow-photo-small{width:min(33%,380px)}
.flow-photo-large{width:min(50%,600px)}
.flow-photo img{display:block;width:100%;height:auto;border-radius:16px}
.flow-photo figcaption{font-size:.72rem;color:var(--muted);margin-top:6px}
@media (max-width:700px){.flow-photo{float:none;width:100%;margin:0 0 18px}}
@media (max-width:860px){.about{grid-template-columns:1fr}}

/* review, standard and section pages: a title band (light blue, a wave rule under it), the blocks closer together
   than on the home page */
.page-title{background:var(--sky);padding-block:clamp(40px,6vw,72px) clamp(32px,4vw,48px);position:relative}
.page-title::after{content:"";position:absolute;left:0;right:0;bottom:-22px;height:22px;background:url("wave.201a39d2a749.svg") left center/40px 22px repeat-x;pointer-events:none}
.page-title .wrap{display:grid;gap:10px}
.page-title h1{font-size:clamp(2.2rem,5vw,3.4rem);max-width:20ch}
.page-blocks{padding-block:22px clamp(24px,4vw,48px)}
.page-blocks>section{padding-block:clamp(24px,3vw,40px)}
.page-blocks>section.prog{padding-block:clamp(36px,4.5vw,56px)}
.page-blocks>section.text+section.text{padding-top:0}
.page-blocks .sec-head{gap:8px;margin-bottom:clamp(16px,2vw,24px)}
.page-blocks .sec-head h2{font-size:clamp(1.6rem,2.8vw,2.2rem)}
.page-blocks>.sponsor-band{margin-block:clamp(12px,2vw,24px)}
.other-editions{padding-bottom:48px;display:grid;gap:12px}

/* tags with labels */
.members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;list-style:none;padding:0;margin:0;max-width:760px;margin-left:auto}
.members li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;font-weight:500}
.members li span{font:600 .72rem var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.members li.obs{border-style:dashed;color:var(--muted)}
.members-note{font-size:.86rem;color:var(--muted);margin-top:16px;max-width:760px;margin-left:auto}
section.tags-after-text{padding-top:0}
/* tags right after the about section (the audiences): under its text, in its right-hand column */
section.text-about:has(+section.cards-tags){padding-bottom:0}
section.text-about+section.cards-tags{padding-top:24px}
@media (min-width:861px){section.text-about+section.cards-tags .wrap{display:grid;grid-template-columns:1fr 1.25fr;column-gap:clamp(28px,5vw,48px)}section.text-about+section.cards-tags .wrap>*{grid-column:2}}

/* past editions: a card per edition, newest first, its band in the logo's greens and blues with orbit lines */
.editions{background:var(--stone)}
.edition-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;list-style:none;margin:0;padding:0}
.ed-card{display:flex;flex-direction:column;height:100%;background:#fff;border-radius:16px;overflow:hidden;color:var(--pine);text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}
a.ed-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(16,49,50,.12)}
.ed-band{position:relative;height:120px;background:linear-gradient(135deg,#71b175,#208778 55%,var(--pine))}
.edition-cards li:nth-child(3n+2) .ed-band{background:linear-gradient(135deg,var(--blue-light),var(--blue-mid) 50%,#2a7fb0)}
.edition-cards li:nth-child(3n) .ed-band{background:linear-gradient(135deg,var(--leaf),#208778 45%,#2a7fb0)}
.ed-band svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.ed-body{padding:24px;display:grid;gap:6px;align-content:start}
.ed-body .yr{font:700 .8125rem var(--display);letter-spacing:.15em;color:var(--green);font-variant-numeric:tabular-nums}
.ed-body .place{font:800 1.375rem/1.2 var(--display)}
.ed-body .meta{font-size:.875rem;color:var(--muted)}
.ed-body .more{margin-top:8px;font-size:.875rem;font-weight:700;color:var(--green)}

/* cards: numbered white cards on the light blue band */
section.cards-cards:not(:has(.join)){background:var(--sky)}
.themes{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.theme{background:#fff;padding:28px;display:grid;gap:12px;align-content:start;border-radius:16px}
.theme .tag{font:700 .8125rem var(--display);letter-spacing:.15em;text-transform:uppercase;color:var(--green)}
.theme:nth-child(even) .tag{color:var(--blue)}
.theme p{color:var(--text);font-size:.9375rem;line-height:1.6}
.theme img{border-radius:10px;display:block}
.theme .btn{justify-self:start}

/* cards: steps */
.week{display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));gap:14px}
.day{border-top:4px solid var(--leaf);padding-top:14px;display:grid;gap:6px;align-content:start;min-width:0}
.day.social{border-color:var(--blue-mid)}
.day .d{font:700 .78rem var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.day h3{font-size:1rem}
.day p{font-size:.92rem;color:var(--text)}
section.cards-cards+section.cards-steps{padding-top:0}
@media (max-width:900px){.week{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.week{grid-template-columns:1fr}}

/* cards with buttons: panels, the first on light blue with a green button, the others outlined with a link */
.join{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px}
.join article{border:1px solid var(--line);border-radius:16px;padding:36px;display:grid;gap:14px;align-content:start;background:#fff}
.join article h3{font-size:1.75rem;line-height:1.2}
.join article p{color:var(--text)}
.join article.feat{background:var(--sky);border-color:var(--sky)}
.join article.feat .eyebrow{color:var(--blue)}
.join .btn{justify-self:start;margin-top:6px}
.join article:not(.feat) .btn-ghost{border:0;padding:12px 0;border-radius:0}
.join article:not(.feat) .btn-ghost::after{content:"→"}
.join article:not(.feat) .btn-ghost:hover{background:none;color:var(--pine)}
@media (max-width:400px){.join{grid-template-columns:1fr}.join article{padding:26px}}

/* photos: a mosaic */
.photos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(150px,auto);gap:12px}
.photos.few{grid-template-columns:repeat(3,minmax(0,1fr))}
.ph{position:relative;margin:0;border-radius:16px;overflow:hidden;min-height:180px;background:linear-gradient(160deg,var(--pine-2),var(--pine))}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ph figcaption{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;background:linear-gradient(transparent,rgba(16,49,50,.9));display:grid;gap:2px}
.ph figcaption b{font:700 1.05rem var(--display);color:#fff}
.ph figcaption span{font:700 .72rem var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--sage)}
.ph figcaption small{font-size:.68rem;color:var(--mist)}
.ph .add{position:absolute;top:12px;left:12px;font:700 .68rem var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--mist);border:1px dashed var(--sage);border-radius:999px;padding:5px 10px}
.ph.big{grid-column:span 2;grid-row:span 2;min-height:380px}
.ph.wide{grid-column:span 2}
@media (max-width:860px){.photos,.photos.few{grid-template-columns:repeat(2,minmax(0,1fr))}.ph.big{min-height:300px}}
@media (max-width:480px){.photos,.photos.few{grid-template-columns:1fr}.ph.big,.ph.wide{grid-column:auto;grid-row:auto}}

/* tags, attendees, speakers' organisations: pale green pills; government bodies (central banks) in blue */
.orgs{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0}
.orgs li{padding:10px 16px;border-radius:999px;font-size:.875rem;font-weight:600;background:var(--sage-pale);color:var(--green-ink)}
.orgs li.cb{background:var(--sky-line);color:var(--deep)}
.orgs li small{color:var(--muted);font-weight:500;margin-left:4px}
.orgs li a{text-decoration:none;color:inherit}

/* speakers: outlined cards, the photo (or initials on sage and light blue, in turn) in a circle; a name opens the bio */
.speakers-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:clamp(28px,4vw,40px)}
.speakers-head .sec-head{margin-bottom:0}
.speakers-more{font-size:.9375rem;font-weight:700;color:var(--green);text-decoration:none;padding:12px 0}
.speakers-more:hover{color:var(--pine)}
.speaker-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px;list-style:none;margin:0;padding:0}
.speaker-card{display:flex;gap:16px;align-items:center;padding:20px;border:1px solid var(--line);border-radius:16px}
.speaker-photo{flex:none;width:56px;height:56px;border-radius:50%;object-fit:cover}
.speaker-initials{display:flex;align-items:center;justify-content:center;background:var(--sage);color:var(--pine);font-weight:800}
.speaker-card:nth-child(even) .speaker-initials{background:var(--sky-line);color:var(--deep)}
.speaker-name{font-size:1rem;font-weight:800;line-height:1.3}
.speaker-name button{background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}
.speaker-name button:hover{color:var(--green);text-decoration:underline;text-underline-offset:3px}
.speaker-job{margin-top:4px;font-size:.8125rem;line-height:1.4;color:var(--muted)}

/* programme: a tab per day, as on SDF */
.prog{background:var(--sky)}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.tab-btn{background:#fff;border:1px solid var(--sky-line);color:var(--pine);padding:10px 18px;border-radius:999px;font:700 .85rem var(--display);cursor:pointer;transition:all .2s}
.tab-btn:hover{border-color:var(--green)}
.tab-btn.active{background:var(--pine);border-color:var(--pine);color:#fff}
.day-panel{display:none;opacity:0;transform:translateY(8px);transition:opacity .35s ease,transform .35s ease}
.day-panel.active{display:block}
.day-panel.shown{opacity:1;transform:none}
.day-title{font:800 1.3rem var(--display);color:var(--pine);margin-bottom:12px}
.sess{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:18px 0;border-top:1px solid var(--sky-line)}
.sess:last-child{border-bottom:1px solid var(--sky-line)}
.sess time{font:700 1rem var(--display);color:var(--pine);font-variant-numeric:tabular-nums}
.sess time span{color:var(--muted);font-weight:500}
.sess>div>h3{font:700 1.05rem var(--display);color:var(--pine);margin-bottom:6px}
.sess-no{display:block;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--green);margin-bottom:4px}
.sess-session{background:#fff;border-radius:16px;border:1px solid var(--sky-line);padding:18px 20px;margin-block:10px}
.sess-session+.sess{border-top:0}
.sess-session>div>h3{font-size:1.3rem;font-weight:800}
.sess-break>div>h3,.sess-meal>div>h3,.sess-other>div>h3{font-weight:500;color:var(--muted)}
.sess-social>div>h3,.sess-social time{color:var(--blue)}
.sess .who{color:var(--muted);font-size:.92rem}
.sess .rich{gap:6px}
.sess details summary{cursor:pointer;color:var(--green);font-size:.85rem}
.talk{padding:10px 0 4px}
.talk+.talk{border-top:1px dashed var(--sky-line)}
.talk-title{color:var(--pine);font-weight:600}
.talk-time{display:inline-block;min-width:52px;color:var(--green);font:700 .88rem var(--display);font-variant-numeric:tabular-nums}
.sess .who button,.talk-title button{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left;text-decoration:underline;text-decoration-color:var(--leaf);text-underline-offset:3px}
.talk .who{padding-left:52px}
.slides{margin-left:10px;padding:2px 10px;font:700 .7rem var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--green);border:1px solid var(--green);border-radius:999px;text-decoration:none;white-space:nowrap}
.slides:hover{background:var(--green);color:#fff}
.sess-ph{border-top-style:dashed}
.sess-ph time,.sess-ph>div>h3{color:var(--muted);font-weight:400}
.prog-foot{margin-top:28px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
.prog-foot p{color:var(--muted);font-size:.92rem}
.prog-foot a:not(.btn){color:var(--green)}
@media (max-width:640px){.sess{grid-template-columns:1fr;gap:6px}.sess-session{padding:16px}.talk .who{padding-left:0}.talk-time{display:block}}

/* downloads: the presentations, behind their password */
.downloads-panel{display:flex;align-items:center;justify-content:space-between;gap:20px 32px;flex-wrap:wrap;padding:clamp(22px,3vw,32px);background:var(--sky);border:1px solid var(--sky-line);border-left:6px solid var(--green);border-radius:16px}
.downloads-panel>div{display:grid;gap:8px;min-width:0;max-width:60ch}
.downloads-intro{color:var(--text)}
.download-list{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:2px}
.download-list li{display:flex;justify-content:space-between;gap:16px;padding:10px 4px;border-bottom:1px solid var(--line)}
.download-list a{color:var(--pine);font-weight:500}
.download-list span{color:var(--muted);font-size:.85rem;white-space:nowrap}
.downloads-note{margin-top:12px;color:var(--muted);font-size:.9rem}

/* sponsors: logos always in their own colours, on light stone tiles (companies' logos are never recoloured) */
.sponsor-band{background:#fff;padding:56px 0 40px}
.sponsor-band>p{text-align:center;font:600 .8125rem var(--display);letter-spacing:.23em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.sponsor-band .logo-carousel{--logo-height:56px;--logo-gap:72px;--logo-seconds:1.5s}
.logo-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px;padding:16px clamp(16px,4vw,40px)}
.logo-row img{box-sizing:content-box;height:56px;width:auto;max-width:200px;object-fit:contain;padding:20px 32px;background:var(--stone);border-radius:12px}
.sponsor-tier+.sponsor-tier{margin-top:32px}
.sponsor-tier h3{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.stands{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;list-style:none;margin:0;padding:0}
.stands.with-text{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.stands li{display:grid;gap:12px;align-content:start}
.stand-logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px;min-height:120px;padding:20px;background:var(--stone);border-radius:12px}
.stand-logos img{max-height:60px;max-width:100%;object-fit:contain}
.stand-logos span{color:var(--pine);font-weight:700;text-align:center}
.stand-text{color:var(--text);font-size:.9rem}

/* figures, galleries, video */
.stats{display:flex;flex-wrap:wrap;gap:24px 48px}
.stats div{display:grid;gap:4px}
.stats .num{display:block;font:800 3rem/1 var(--display);color:var(--blue);font-variant-numeric:tabular-nums}
.stats .lbl{font-size:.875rem;font-weight:600;color:var(--muted)}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.gallery-grid a{display:block;border-radius:12px;overflow:hidden;aspect-ratio:3/2;background:var(--sky)}
.gallery-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}
.gallery-grid a:hover img{transform:scale(1.04)}
.gallery-more{margin-top:20px}
.lightbox{max-width:none;max-height:none;width:100vw;height:100vh;margin:0;padding:0;border:0;background:rgba(16,49,50,.96);color:#fff}
.lightbox figure{margin:0;height:100%;display:grid;place-items:center;padding:56px 16px}
.lightbox img{max-height:calc(100vh - 140px);max-width:100%;object-fit:contain}
.lightbox figcaption{font-size:.85rem;color:var(--mist);margin-top:10px;text-align:center}
.lightbox button{position:absolute;background:rgba(16,49,50,.6);color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:999px;width:44px;height:44px;font-size:1.5rem;cursor:pointer}
.lb-close{top:16px;right:16px}.lb-prev{left:16px;top:50%}.lb-next{right:16px;top:50%}
.video-frame{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:var(--pine)}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* footer (pine): the logo, the organisers and contact under it; the menu; the contact form; popups, cookie banner */
.site-form{display:grid;gap:14px}
.site-form h3{font:800 1.5rem var(--display)}
.site-form label{display:block;font-size:.875rem;font-weight:600;color:var(--pine);margin-bottom:4px}
.site-form input[type=text],.site-form input[type=email],.site-form textarea{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--field);background:#fff;color:var(--pine);font:inherit}
.site-form [role=alert],.site-form .errorlist{color:#a3261b}
footer{background:var(--pine);color:var(--mist)}
.foot-grid{display:grid;grid-template-columns:1.1fr .8fr 2fr;gap:40px;padding-block:64px 48px}
.foot-logo{display:block;width:200px;height:auto;margin-bottom:16px}
.foot-brand p{font-size:14px;line-height:1.6;max-width:300px}
.foot-col h2,.foot-form h2{font:600 12px/1.3 var(--display);letter-spacing:.25em;text-transform:uppercase;color:var(--sage);margin-bottom:14px}
.foot-col a,.foot-col p{display:block;font-size:14px;line-height:1.6;margin-bottom:10px;color:var(--mist);text-decoration:none}
.foot-col a{color:#fff}
.foot-col a:hover{color:var(--sage)}
.foot-col a.foot-sub{padding-left:12px;font-size:13px}
.foot-contact{margin-top:32px}
.foot-contact a{font-weight:600;overflow-wrap:anywhere}
.foot-form{scroll-margin-top:36px}
.foot-form-intro{font-size:14px;line-height:1.7;margin-bottom:20px}
.foot-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.foot-form-wide{grid-column:1/-1}
.foot-form .site-form-field{display:flex;flex-direction:column;gap:6px;margin:0}
.foot-form .site-form-field label{font-size:13px;font-weight:600;color:var(--mist);margin:0}
.foot-form input[type=text],.foot-form input[type=email],.foot-form textarea{background:rgba(255,255,255,.06);border:1px solid rgba(179,212,162,.35);color:#fff}
.foot-form textarea{min-height:112px;resize:vertical}
.foot-form input:focus,.foot-form textarea:focus{outline:2px solid var(--sage);outline-offset:1px;border-color:var(--sage);background:rgba(255,255,255,.1)}
.foot-form-error,.foot-form .site-form-error{color:#ffb4a8;font-size:13.5px}
.site-form label.foot-form-consent{display:flex;align-items:flex-start;gap:10px;margin:18px 0 6px;font-size:13.5px;line-height:1.6;font-weight:400;color:var(--mist);cursor:pointer}
.foot-form-consent input{flex:none;width:18px;height:18px;margin-top:2px;accent-color:var(--leaf)}
.foot-form-send{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:18px}
.foot-form-send .btn{margin-left:auto}
.foot-form .btn-primary{background:var(--sage);color:var(--pine)}
.foot-form .btn-primary:hover{background:#c6e0b8}
.foot-form .btn:disabled,.pop-form .btn:disabled{opacity:.7;cursor:progress;transform:none}
.foot-form-success{padding:18px 20px;border:1px solid rgba(179,212,162,.35);border-left:3px solid var(--sage);background:rgba(179,212,162,.1);color:#fff}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-block:24px calc(32px + env(safe-area-inset-bottom,0px));border-top:1px solid #2b5150;font-size:13px}
.foot-bottom a{color:var(--mist)}
@media (max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}.foot-form-col{grid-column:1/-1}}
@media (max-width:560px){.foot-grid,.foot-form-grid{grid-template-columns:1fr}}
.foot-form-trap{position:absolute;left:-9999px}
/* popups (register interest, abstract, speaker), as on SDF: centred, a stripe of the logo's colours along the top,
   a round close button */
dialog.foc-pop{margin:auto;position:fixed;inset:0;width:min(680px,calc(100vw - 32px));max-height:min(86vh,820px);padding:0;border:none;border-radius:16px;overflow:auto;background:#fff;color:var(--pine);box-shadow:0 30px 80px rgba(16,49,50,.4)}
dialog.foc-pop::backdrop{background:rgba(16,49,50,.7);backdrop-filter:blur(3px)}
dialog.foc-pop[open]{animation:popIn .25s cubic-bezier(.2,.7,.3,1)}
@keyframes popIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){dialog.foc-pop[open]{animation:none}}
.foc-pop .stripe-bar,.lock-card .stripe-bar{height:6px;background:linear-gradient(90deg,var(--pine) 0 25%,var(--green) 25% 50%,var(--leaf) 50% 70%,var(--sage) 70% 85%,var(--blue-mid) 85%)}
.foc-pop .stripe-bar{position:sticky;top:0;z-index:2}
.foc-pop-close{position:absolute;top:16px;right:16px;z-index:3;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--pine);font-size:22px;line-height:1;cursor:pointer}
.foc-pop-close:hover{border-color:var(--green);color:var(--green)}
.foc-pop-body{padding:30px 36px 32px}
.foc-pop-body .eyebrow{display:block;margin-bottom:10px;padding-right:40px}
.foc-pop-body h3{font-size:clamp(22px,3vw,28px);margin:0 40px 8px 0}
.foc-pop-body .rich{color:var(--text)}
.pop-who{color:var(--muted);font-size:14.5px;margin-bottom:18px}
.pop-person{display:flex;gap:24px;align-items:center;padding-bottom:22px}
.pop-photo{width:112px;height:112px;flex:none;border-radius:50%;object-fit:cover;border:3px solid var(--sage)}
@media (max-width:560px){.foc-pop-body{padding:24px 22px 26px}.pop-person{flex-direction:column;align-items:flex-start}}
/* the register-interest form in the popup (sites/foc/forms/interest.html), laid out as the design's form */
.foc-pop-form{width:min(620px,calc(100vw - 32px))}
.foc-pop-form:focus{outline:none}
.pop-form h3{margin-bottom:18px}
.pop-form-intro{color:var(--text);margin-bottom:18px}
.pop-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:560px){.pop-form-grid{grid-template-columns:1fr}}
.pop-form .site-form-field{display:flex;flex-direction:column;gap:8px;margin:0}
.pop-form .site-form-field label,.pop-form-areas legend{font-size:14px;font-weight:600;color:var(--pine);margin:0}
.pop-form input:focus{outline:2px solid var(--green);outline-offset:1px;border-color:var(--green)}
.pop-form-error,.pop-form .site-form-error{color:#a3261b;font-size:13.5px}
.pop-form-areas{margin:20px 0 0;padding:0;border:none}
.pop-form-areas legend{margin-bottom:10px}
.pop-form-areas label{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin:0 24px 0 0;cursor:pointer;color:var(--pine);font-size:15px}
.pop-form-areas input,.pop-form-consent input{width:20px;height:20px;accent-color:var(--green)}
.site-form label.pop-form-consent{display:flex;gap:10px;align-items:flex-start;margin:18px 0 0;font-size:.875rem;line-height:1.5;font-weight:400;color:var(--text)}
.pop-form-consent input{margin-top:2px;flex:none}
.pop-form-send{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:20px}
.pop-form-success{margin-top:8px;padding:18px 20px;border:1px solid var(--line);border-left:3px solid var(--green);background:var(--sage-pale);color:var(--pine)}
/* the cookie banner (includes/cookie_banner.html): a pine card as the footer, the popups' stripe along its top, sage
   for Accept; its SDF button names take FOC's buttons */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:40;max-width:560px;margin-inline:auto;background:var(--pine);color:var(--mist);border-radius:16px;padding:24px 22px 20px;box-shadow:0 18px 50px rgba(16,49,50,.45);overflow:hidden;font-size:.95rem;line-height:1.6}
.cookie-banner[hidden]{display:none}
.cookie-banner::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,var(--green) 0 30%,var(--leaf) 30% 55%,var(--sage) 55% 80%,var(--blue-mid) 80%)}
.cookie-banner a{color:var(--sage);text-underline-offset:3px}
.cookie-banner-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
.cookie-banner .btn{padding:10px 22px}
.cookie-banner .btn-gold{background:var(--sage);color:var(--pine)}
.cookie-banner .btn-gold:hover{background:#c6e0b8}
.cookie-banner .btn-outline{border-color:rgba(255,255,255,.5);background:transparent;color:#fff}
.cookie-banner .btn-outline:hover{border-color:#fff;background:rgba(255,255,255,.08)}
@media (max-width:420px){.cookie-banner-buttons .btn{flex:1;justify-content:center}}

/* gentle motion: cards rise into view (scroll-driven, so complete whenever in view) */
@media (prefers-reduced-motion:no-preference){
@supports (animation-timeline:view()){
  @keyframes rise-in{from{transform:translateY(40px);opacity:.2}}
  .theme,.join article,.day,.ed-card,.speaker-card,.stand-logos{animation:rise-in linear both;animation-timeline:view();animation-range:entry 0% entry 70%}
  .hero-text{animation:lift linear both;animation-timeline:view();animation-range:exit 0% exit 90%}
  @keyframes lift{to{transform:translateY(-70px);opacity:0}}
}}

/* the password page (protected presentations, "Download all") and "your download has started"
   (templates/password_required.html, templates/download_started.html, shared by every site): a white card on the
   pine hero ground, the popups' stripe along its top; their SDF button names take FOC's buttons */
.lock-backdrop{position:relative;overflow:hidden;min-height:calc(100vh - 140px);display:flex;align-items:center;justify-content:center;padding:64px 16px;background:var(--pine)}
.lock-backdrop .fine-lines,.lock-backdrop .guilloche{display:none}
.lock-backdrop::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22px;background:url("wave.201a39d2a749.svg") left center/40px 22px repeat-x;opacity:.6;pointer-events:none}
.lock-card{position:relative;z-index:2;width:min(440px,100%);background:#fff;color:var(--pine);border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.35);overflow:hidden;animation:popIn .3s cubic-bezier(.2,.7,.3,1)}
.lock-card .stripe-bar{display:block}
.lock-card .stripe-bar span{display:none}
.lock-body{padding:32px 34px 30px}
.lock-icon{width:34px;height:34px;color:var(--green);margin-bottom:14px}
.lock-body .eyebrow{display:block;margin-bottom:8px}
.lock-body h2{font-size:clamp(1.6rem,4vw,2rem);margin-bottom:10px}
.lock-body>p{color:var(--text);font-size:15px;margin-bottom:22px}
.lock-form label{display:block;font:600 14px var(--display);color:var(--pine);margin-bottom:6px}
.lock-form input[type=password]{width:100%;padding:13px 14px;font:inherit;font-size:16px;color:var(--pine);background:#fff;border:1px solid var(--field);border-radius:10px;margin-bottom:14px}
.lock-form input[type=password]:focus{outline:2px solid var(--green);outline-offset:1px;border-color:var(--green)}
.lock-form input[aria-invalid=true]{border-color:#a3261b}
.lock-error{color:#a3261b;font-size:14px;margin:-6px 0 14px}
.lock-form .btn,.lock-back{width:100%;justify-content:center}
.lock-card .btn-gold{background:var(--green);color:#fff}
.lock-card .btn-gold:hover{background:var(--green-ink)}
.lock-card .btn-outline{border-color:var(--field);background:#fff;color:var(--pine);margin-top:16px}
.lock-card .btn-outline:hover{border-color:var(--green);color:var(--green)}
.lock-form .btn:disabled{opacity:.7;cursor:progress;transform:none}
.lock-help{margin-top:18px;font-size:13.5px;color:var(--muted);text-align:center}
.lock-help a{color:var(--green);text-underline-offset:3px}
.download-file{color:var(--pine);font-size:15px;margin-bottom:12px;word-break:break-word}
@media (prefers-reduced-motion:reduce){.lock-card{animation:none}}
