:root {
  --bg:#000100; --surface:#111312; --surface-soft:#171a18; --text:#fdfdfd;
  --muted:#e0e0e0; --line:rgba(255,255,255,.16);
  --accent:#c12331; --accent-2:#ff8a00; --success:#15803d;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  min-height:100svh; margin:0; background:var(--bg); color:var(--text);
  font-family:"Open Sans",Arial,sans-serif; border:2px solid var(--accent-2);
  display:flex; flex-direction:column;
}
body.light {
  --bg:#f8fafc; --surface:#fff; --surface-soft:#f1f5f9; --text:#0f172a;
  --muted:#475569; --line:#d8dee7; --success:#15803d;
}
a { color:inherit; }
.site-head,.site-foot { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.site-foot { width:min(1180px,calc(100% - 36px)); margin:0 auto; }
.site-head {
  position:sticky; top:0; z-index:1000; width:100%; min-height:76px; margin:0;
  padding:0 max(18px,calc(50% - 590px)); background:var(--bg);
  transition:background-color .65s ease,color .65s ease;
}
.site-head a { color:var(--text); font-weight:800; text-decoration:none; }
.site-head nav { display:flex; align-items:center; gap:18px; }
.site-head nav a { color:var(--muted); font-size:.92rem; }
.site-head nav a[aria-current="page"] { color:var(--accent-2); }
.language-switch {
  display:inline-flex; align-items:center; justify-content:center; min-width:34px; padding:6px 8px;
  border:1px solid var(--line); border-radius:999px; color:var(--accent-2)!important;
  font-size:.72rem!important; letter-spacing:.05em; text-transform:uppercase;
}
.language-switch:hover { border-color:var(--accent-2); }
.brand-lockup { display:inline-flex; align-items:center; }
.brand-lockup img {
  width:42px; height:42px; border-radius:50%; object-fit:cover;
  box-shadow:0 4px 14px rgba(0,0,0,.35);
}
.theme-toggle {
  display:grid; place-items:center; width:40px; height:40px; flex:0 0 40px;
  border:0; padding:0; background:transparent; color:#ffd166;
  font:inherit; font-size:1.55rem; font-weight:800; line-height:1; cursor:pointer;
  box-shadow:none; transition:color .25s ease,transform .25s ease;
}
body.light .theme-toggle { color:var(--accent-2); }
.theme-toggle:hover { background:transparent; color:var(--accent); transform:rotate(12deg) scale(1.08); }
body[data-public-header="hero"] .site-head { background:var(--public-header-hero,#071020); }
body[data-public-header="hero"] .site-head nav a { color:rgba(255,255,255,.84); }
body[data-public-header="hero"] .site-head nav a[aria-current="page"],body[data-public-header="hero"] .theme-toggle { color:#fff; }
main { width:min(1180px,calc(100% - 36px)); margin:28px auto 88px; flex:1; }
.hero {
  display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.7fr);
  gap:42px; align-items:end;
}
.city-hero {
  position:relative; isolation:isolate; overflow:hidden; min-height:540px; padding:58px;
  border:1px solid rgba(255,255,255,.15); border-radius:30px; color:#fff;
  background:#071020; box-shadow:0 30px 70px rgba(15,23,42,.2);
}
.city-hero::before {
  content:""; position:absolute; z-index:-2; inset:0 0 0 28%;
  background-image:var(--city-image); background-size:cover; background-position:center;
}
.city-hero::after {
  content:""; position:absolute; z-index:-1; inset:0;
  background:linear-gradient(90deg,rgba(7,16,32,.98) 0%,rgba(7,16,32,.88) 37%,rgba(7,16,32,.34) 72%,rgba(7,16,32,.5) 100%),linear-gradient(0deg,rgba(7,16,32,.74),transparent 58%);
}
.hero-copy { max-width:720px; }
.city-hero .eyebrow {
  display:inline-flex; margin-bottom:18px; padding:7px 12px; border:1px solid rgba(255,255,255,.36);
  border-radius:999px; color:#fff; background:rgba(7,16,32,.32); backdrop-filter:blur(8px);
}
.city-hero h1 {
  max-width:820px; padding:0; color:#fff; background:none;
  font-size:clamp(3.5rem,7.6vw,7rem); line-height:.93; letter-spacing:-.065em;
  -webkit-background-clip:initial; background-clip:initial;
}
.city-hero .lede { max-width:690px; color:rgba(255,255,255,.88); font-size:1.12rem; line-height:1.65; }
.eyebrow {
  margin:0 0 8px; color:var(--accent-2); font-size:.78rem;
  font-weight:800; letter-spacing:.14em; text-transform:uppercase;
}
h1 {
  max-width:760px; margin:0; padding-bottom:.12em;
  font-size:clamp(2.7rem,8vw,5.6rem); line-height:1.06;
  letter-spacing:-.052em; background:linear-gradient(135deg,var(--accent),var(--accent-2));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.lede { max-width:720px; margin:20px 0 0; color:var(--muted); font-size:1.13rem; }
.event-panel {
  position:relative; overflow:hidden; padding:24px; border:1px solid var(--line);
  border-radius:16px; background:var(--surface); box-shadow:0 12px 30px rgba(0,0,0,.1);
}
.city-hero .event-panel {
  border-color:rgba(255,255,255,.22); color:#fff; background:rgba(7,16,32,.7);
  box-shadow:0 18px 48px rgba(0,0,0,.28); backdrop-filter:blur(16px);
}
.city-hero .event-panel p { color:rgba(255,255,255,.76); line-height:1.55; }
.city-hero .event-panel h2 { font-size:1.8rem; }
.city-hero small { color:rgba(255,255,255,.72)!important; }
.event-panel::before {
  content:""; position:absolute; inset:0 auto 0 0; width:4px;
  background:linear-gradient(180deg,var(--accent),var(--accent-2));
}
.event-panel h2 { margin:8px 0 6px; font-size:1.55rem; line-height:1.15; }
.event-panel p { margin:0; color:var(--muted); }
.status {
  display:inline-flex; align-items:center; gap:8px; padding:7px 10px; border-radius:999px;
  border:1px solid color-mix(in srgb,var(--accent-2) 45%,transparent);
  background:color-mix(in srgb,var(--accent-2) 9%,transparent); color:var(--accent-2);
  font-size:.72rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase;
}
.status::before { content:""; width:7px; height:7px; border-radius:50%; background:currentColor; }
.section { margin-top:84px; }
.section-heading { max-width:700px; }
.section-heading h2 { margin:0; font-size:clamp(2.1rem,4.8vw,4rem); line-height:.98; letter-spacing:-.045em; }
.section-heading p { margin:12px 0 0; color:var(--muted); }
.experience-section {
  position:relative; overflow:hidden; padding:54px; border-radius:30px;
  background:linear-gradient(135deg,#fff7ed 0%,#fff 72%); color:#0f172a;
  box-shadow:0 22px 54px rgba(15,23,42,.08);
}
body:not(.light) .experience-section { background:linear-gradient(135deg,#21170f,#111312 72%); color:var(--text); }
.experience-section::after {
  content:"05"; position:absolute; right:30px; top:-44px; color:rgba(255,138,0,.08);
  font-size:15rem; font-weight:800; line-height:1;
}
.experience-section .section-heading,.experience-section .expect-grid { position:relative; z-index:1; }
.expect-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:20px; }
.expect-card {
  min-height:215px; padding:28px; border:1px solid var(--line); border-radius:18px; background:var(--surface);
  box-shadow:0 14px 30px rgba(15,23,42,.07);
}
.expect-card .number { color:var(--accent-2); font-size:2rem; font-weight:800; letter-spacing:-.06em; }
.expect-card h3 { margin:28px 0 9px; font-size:1.18rem; line-height:1.15; }
.expect-card p { margin:0; color:var(--muted); font-size:.92rem; line-height:1.55; }
.city-team {
  padding:54px; border:0; border-radius:30px;
  background:linear-gradient(145deg,var(--surface-soft),color-mix(in srgb,var(--accent-2) 7%,var(--surface)));
  box-shadow:0 22px 54px rgba(0,0,0,.09);
}
.city-team .section-heading { max-width:760px; }
.team-groups { display:grid; gap:26px; margin-top:26px; }
.team-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.team-grid.team-leads { grid-template-columns:repeat(2,minmax(0,1fr)); }
.team-group-title {
  margin:0 0 10px; color:var(--muted); font-size:.76rem; font-weight:800;
  letter-spacing:.12em; text-transform:uppercase;
}
.team-card {
  position:relative; min-height:154px; overflow:hidden; padding:22px;
  border:1px solid var(--line); border-radius:18px; background:var(--surface);
  display:flex; align-items:center; gap:16px; box-shadow:0 8px 20px rgba(0,0,0,.06);
}
.team-card::before {
  content:""; position:absolute; inset:0 0 auto; height:2px;
  background:linear-gradient(90deg,var(--accent),var(--accent-2));
}
.team-card.featured {
  min-height:210px;
  background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--accent-2) 6%,var(--surface)));
}
.role-mark {
  flex:0 0 auto; width:76px; height:76px; border-radius:22px;
  display:grid; place-items:center; border:1px solid color-mix(in srgb,var(--accent-2) 45%,transparent);
  background:radial-gradient(circle at 72% 28%,rgba(255,138,0,.24),transparent 24%),linear-gradient(145deg,color-mix(in srgb,var(--accent-2) 13%,var(--surface)),var(--surface-soft)); color:var(--accent-2);
  font-size:.88rem; font-weight:800; letter-spacing:.06em;
}
.team-card.featured .role-mark { width:118px; height:132px; border-radius:24px; font-size:1rem; }
.team-card > div { min-width:0; }
.team-role { display:block; color:var(--accent-2); font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.team-name { display:block; margin-top:7px; color:var(--text); font-size:1.08rem; font-weight:800; line-height:1.2; }
.team-note { display:block; margin-top:7px; color:var(--muted); font-size:.8rem; line-height:1.5; }
.team-role,.team-name,.team-note { overflow-wrap:anywhere; }
.team-apply {
  display:flex; align-items:center; justify-content:space-between; gap:28px; margin-top:26px; padding:22px 24px;
  border-radius:16px; background:linear-gradient(125deg,var(--accent),var(--accent-2)); color:#fff;
}
.team-apply > div { max-width:690px; }
.team-apply__eyebrow { display:block; margin-bottom:5px; color:rgba(255,255,255,.72); font-size:.68rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.team-apply strong { display:block; font-size:1.08rem; line-height:1.3; }
.team-apply p { margin:6px 0 0; color:rgba(255,255,255,.82); font-size:.85rem; line-height:1.5; }
.team-apply a { flex:0 0 auto; padding:11px 15px; border-radius:999px; background:#fff; color:#b91f2d; font-size:.8rem; font-weight:800; text-decoration:none; }
.team-apply a:hover { transform:translateY(-1px); box-shadow:0 8px 18px rgba(0,0,0,.16); }
.team-grid:not(.team-leads) .team-card {
  min-height:310px; padding:0; display:grid; grid-template-rows:154px 1fr; align-items:stretch;
}
.team-grid:not(.team-leads) .role-mark {
  width:100%; height:154px; border:0; border-bottom:1px solid var(--line); border-radius:0;
  font-size:1rem; background:radial-gradient(circle at 66% 28%,rgba(255,138,0,.28),transparent 19%),radial-gradient(circle at 34% 76%,rgba(193,35,49,.14),transparent 23%),linear-gradient(145deg,color-mix(in srgb,var(--accent-2) 10%,var(--surface)),var(--surface-soft));
}
.team-grid:not(.team-leads) .team-card > div { padding:22px; }
.team-card.is-placeholder .team-role { color:var(--accent-2); }
.team-card.has-person .team-name { font-size:1.2rem; }
.newsletter {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.85fr); gap:32px;
  align-items:center; padding:30px; border:1px solid var(--line); border-radius:16px;
  overflow:hidden; padding:46px; border:0; border-radius:30px; color:#fff;
  background:radial-gradient(circle at 90% 10%,rgba(255,255,255,.2),transparent 28%),linear-gradient(120deg,#c12331,#ef4d18 58%,#ff8a00);
  box-shadow:0 24px 58px rgba(193,35,49,.2);
}
.newsletter .eyebrow,.newsletter h2 { color:#fff; }
.newsletter h2 { margin:4px 0 9px; font-size:clamp(1.7rem,4vw,2.4rem); line-height:1.08; }
.newsletter p { margin:0; color:rgba(255,255,255,.86); }
.newsletter form { padding:22px; border:1px solid rgba(255,255,255,.36); border-radius:18px; background:rgba(7,16,32,.24); backdrop-filter:blur(12px); }
.newsletter form { min-width:0; display:grid; gap:10px; }
.newsletter label { display:grid; gap:5px; color:#fff; font-size:.8rem; font-weight:800; }
.newsletter input[type="email"] {
  min-width:0; width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:8px;
  background:#fff; color:#0f172a; font:inherit;
}
.newsletter-consent { display:flex!important; align-items:flex-start; gap:8px!important; color:#fff!important; font-weight:600!important; line-height:1.4; }
.newsletter-consent input { margin-top:3px; }
.newsletter .cf-turnstile { width:100%; max-width:100%; overflow:hidden; }
.newsletter button {
  width:fit-content; border:0; border-radius:8px; padding:11px 17px;
  background:#fff; color:#c12331;
  font:inherit; font-weight:800; cursor:pointer;
}
.newsletter button:hover { filter:brightness(1.06); }
.newsletter-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.archive-note {
  display:flex; align-items:center; justify-content:space-between; gap:24px; padding:22px 24px;
  border:1px dashed var(--line); border-radius:14px; color:var(--muted);
}
.archive-note h2 { margin:0 0 5px; color:var(--text); font-size:1.15rem; }
.archive-note p { margin:0; font-size:.9rem; }
.archive-note a { color:var(--accent-2); font-weight:800; text-decoration:none; white-space:nowrap; }
.archive-note a:hover { text-decoration:underline; }
.site-foot { padding:22px 0; color:var(--muted); font-size:.9rem; flex-wrap:wrap; row-gap:6px; }
.site-foot>div:first-child { white-space:nowrap; }
.legal-links { display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.site-foot a { color:var(--accent-2); font-weight:600; text-decoration:none; }
.site-foot a:hover { text-decoration:underline; }
@media(max-width:760px) {
  .hero,.newsletter { grid-template-columns:1fr; }
  .hero { align-items:start; }
  .expect-grid,.team-grid,.team-grid.team-leads { grid-template-columns:1fr; }
}
@media(max-width:600px) {
  .site-head { top:0; width:100%; min-height:72px; padding:0 16px; }
  .site-head nav { gap:10px; }
  main { margin-top:18px; }
  .hero { gap:28px; }
  .section { margin-top:48px; }
  .city-hero { min-height:620px; padding:30px 24px; border-radius:22px; }
  .city-hero::before { inset:0; background-position:center; }
  .city-hero::after { background:linear-gradient(180deg,rgba(7,16,32,.58),rgba(7,16,32,.94) 58%,#071020 100%); }
  .city-hero h1 { font-size:clamp(3rem,15vw,5rem); }
  .experience-section,.newsletter,.city-team { padding:30px 22px; border-radius:22px; }
  .team-apply { align-items:flex-start; flex-direction:column; padding:20px; }
  .experience-section::after { right:-20px; font-size:10rem; }
  .newsletter form { padding:18px; }
  .team-grid:not(.team-leads) .team-card { min-height:132px; grid-template-columns:108px 1fr; grid-template-rows:none; }
  .team-grid:not(.team-leads) .role-mark { width:108px; height:100%; border:0; border-right:1px solid var(--line); }
  .team-card.featured .role-mark { width:92px; height:112px; }
  .archive-note { align-items:flex-start; flex-direction:column; }
  .site-foot { justify-content:center; gap:6px; text-align:center; }
  .site-foot>div:first-child { width:100%; }
  .legal-links { justify-content:center; flex-wrap:nowrap; gap:6px; white-space:nowrap; font-size:.82rem; }
}
@media(max-width:420px) {
  .site-head nav { gap:6px; }
  .site-head nav a { font-size:.76rem; }
  .language-switch { min-width:30px; padding:5px 6px; font-size:.68rem!important; }
  .theme-toggle { width:38px; height:38px; flex-basis:38px; padding:0; }
  .newsletter { padding:18px; }
}
@media(max-width:360px) {
  .city-montreal .site-head { padding:0 10px; gap:10px; }
  .city-montreal .site-head nav { gap:3px; }
  .city-montreal .site-head nav a { font-size:.67rem; }
  .city-montreal .brand-lockup img { width:38px; height:38px; }
  .city-montreal .theme-toggle { width:36px; height:36px; flex-basis:36px; padding:0; font-size:1.08rem; }
}

/* Events directory headline must remain legible over the orange hero. */
.events-hero h1 {
  color:#fff !important;
  background:none !important;
  background-clip:border-box !important;
  -webkit-background-clip:border-box !important;
  -webkit-text-fill-color:#fff !important;
  text-wrap:balance;
}
@media(max-width:560px) {
  .events-hero h1 {
    max-width:100%;
    font-size:clamp(2.75rem,12.8vw,3.35rem) !important;
    line-height:.95 !important;
    letter-spacing:-.05em !important;
    text-wrap:wrap;
  }
  .events-hero::after {
    bottom:-.14em !important;
    font-size:46vw !important;
  }
}
