@font-face {
  font-family: "DM Sans";
  src: url("fonts/DM Sans/DMSans-VariableFont_opsz,wght.ttf") format("truetype");
  font-style: normal;
  font-weight: 100 1000;
  font-display: swap;
}

@font-face {
  font-family: "Bricolage Grotesque";
  src: url("fonts/Bricolage Grotesque/static/BricolageGrotesque_36pt-ExtraLight.ttf") format("truetype");
  font-style: normal;
  font-weight: 200;
  font-display: swap;
}

@font-face {
  font-family: "Bricolage Grotesque";
  src: url("fonts/Bricolage Grotesque/static/BricolageGrotesque-Light.ttf") format("truetype");
  font-style: normal;
  font-weight: 300;
  font-display: swap;
}

@font-face {
  font-family: "Bricolage Grotesque";
  src: url("fonts/Bricolage Grotesque/static/BricolageGrotesque-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Bricolage Grotesque";
  src: url("fonts/Bricolage Grotesque/static/BricolageGrotesque-Medium.ttf") format("truetype");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "Bricolage Grotesque";
  src: url("fonts/Bricolage Grotesque/static/BricolageGrotesque-Bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  color-scheme: light;
  --paper: #f3f3f3;
  --ink: #111;
  --body-ink: #41494d;
  --red: #da281c;
  --blue: #2a84dd;
  --yellow: #ffc633;
  --green: #77bc6e;
  --purple: #bc9ffc;
  /* One design unit equals one pixel in the 1920px Illustrator layout. */
  --unit: min(0.0520833333vw, 1px);
  --sticky-header-height: calc(207 * var(--unit));
  --anchor-gap: 24px;
  font-family: "DM Sans", Arial, sans-serif;
  font-synthesis: none;
  font-optical-sizing: none;
  scroll-behavior: smooth;
}

*,
*::before,
*::after { box-sizing: border-box; }

body { margin: 0; color: var(--body-ink); background: white; }
h1, h2, p { margin: 0; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button, summary { font: inherit; }
[hidden] { display: none !important; }
strong { font-weight: 700; }
address { font-style: normal; }
section[id], #contenu, .legal-page h2[id] { scroll-margin-top: calc(var(--sticky-header-height) + var(--anchor-gap)); }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 6px; }
::selection { background: var(--purple); color: var(--ink); }

.site-shell { max-width: 1920px; margin-inline: auto; }
.visually-hidden, .icon-library {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.skip-link {
  position: absolute;
  z-index: 10;
  top: 12px;
  left: 12px;
  padding: 12px 20px;
  background: white;
  color: var(--ink);
  transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }

.button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 44px;
  width: fit-content;
  padding: calc(18 * var(--unit)) calc(28 * var(--unit));
  border: 0;
  border-radius: 100px;
  background: #222;
  color: white;
  font-size: clamp(14px, 1.5vw, 29px);
  font-weight: 500;
  line-height: 1.4;
  text-align: center;
  text-transform: uppercase;
  transition: background-color 160ms ease, transform 160ms ease;
}
a.button:hover { background: var(--blue); transform: translateY(-2px); }
.button:disabled { opacity: 1; cursor: not-allowed; }
.section-label {
  font-size: clamp(16px, 1.67vw, 32px);
  font-weight: 700;
  line-height: 1.2;
  text-transform: uppercase;
}
.display-title {
  color: var(--ink);
  font-family: "Bricolage Grotesque", Arial, sans-serif;
  font-size: clamp(46px, 5.4375vw, 104.4px);
  font-weight: 200;
  line-height: 0.97;
  letter-spacing: 0;
  text-transform: uppercase;
}
.stars { color: var(--ink); font-family: "Bricolage Grotesque", Arial, sans-serif; font-weight: 300; letter-spacing: 0; }
.outline-icon { fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: square; stroke-linejoin: miter; }
.color-red { color: var(--red); }
.color-yellow { color: var(--yellow); }
.color-green { color: var(--green); }
.color-blue { color: var(--blue); }

/* Header */
.site-header {
  --header-expanded-height: calc(150 * var(--unit));
  --header-compact-height: 80px;
  --header-visible-height: var(--header-expanded-height);
  position: sticky;
  top: 0;
  z-index: 10;
  /* Keep the original space in the document while the visible bar shrinks. */
  height: var(--header-expanded-height);
  pointer-events: none;
}
.header-inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  height: var(--header-visible-height);
  padding: calc(62 * var(--unit)) calc(144 * var(--unit)) calc(62 * var(--unit)) calc(106 * var(--unit));
  background: white;
  pointer-events: auto;
  transition: height 220ms ease, padding 220ms ease, box-shadow 220ms ease;
}
.brand { flex-shrink: 0; width: calc(230 * var(--unit)); transition: width 220ms ease; }
.site-header.is-compact { --header-visible-height: var(--header-compact-height); }
.site-header.is-compact .header-inner { padding-block: 10px; box-shadow: 0 4px 18px #0001; }
.site-header.is-compact .brand { width: clamp(110px, calc(184 * var(--unit)), 172px); }
.desktop-navigation { display: flex; align-items: center; gap: calc(60 * var(--unit)); }
.desktop-navigation a {
  font-family: "Bricolage Grotesque", Arial, sans-serif;
  font-size: clamp(12px, 1.025vw, 20px);
  font-weight: 400;
  white-space: nowrap;
  text-transform: uppercase;
}
.desktop-navigation a:not(.button):hover { color: var(--blue); }
.desktop-navigation .navigation-registration { padding: calc(23 * var(--unit)) calc(30 * var(--unit)); transition: background-color 160ms ease, transform 160ms ease, padding 220ms ease; }
.site-header.is-compact .navigation-registration { padding: 10px 20px; }
.desktop-navigation a.active:not(.button), .mobile-navigation nav a.active { color: var(--blue); text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 2px; }
.desktop-navigation .navigation-registration.active { background: var(--blue); }
.mobile-navigation { display: none; }

/* The event poster is live text and SVGs, rather than a flattened screenshot. */
.hero { display: grid; grid-template-columns: 55.4% 44.6%; background: var(--paper); }
.hero-poster { position: relative; padding: calc(112 * var(--unit)) calc(104 * var(--unit)) calc(86 * var(--unit)); }
.event-poster {
  --poster-unit: var(--unit);
  position: relative;
  display: grid;
  grid-template-columns: repeat(24, 1fr);
  grid-template-rows: calc(244 * var(--poster-unit)) calc(145 * var(--poster-unit)) calc(78 * var(--poster-unit)) calc(133 * var(--poster-unit)) calc(139 * var(--poster-unit)) calc(131 * var(--poster-unit));
  align-items: start;
  width: calc(850 * var(--poster-unit));
  color: var(--ink);
  font-family: "Bricolage Grotesque", Arial, sans-serif;
  font-size: calc(136.7 * var(--poster-unit));
  font-weight: 200;
  line-height: 1;
  letter-spacing: 0;
}
.event-poster::after {
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(100% + 104 * var(--unit));
  width: 2px;
  background: repeating-linear-gradient(to bottom, #626262 0 15px, transparent 15px 39px);
  content: "";
}
.event-poster span { white-space: nowrap; }
.event-poster .stars { font-size: calc(136.7 * var(--poster-unit)); line-height: 1.15; }
.poster-logo { grid-area: 1 / 1 / 2 / 18; width: 100%; margin-top: calc(5 * var(--poster-unit)); }
.poster-forum { grid-area: 1 / 19 / 2 / 25; width: 115%; max-width: none; margin-top: calc(-5 * var(--poster-unit)); }
.poster-barcode { grid-area: 2 / 1 / 4 / 8; width: 105%; height: calc(217 * var(--poster-unit)); max-width: none; margin-top: calc(8 * var(--poster-unit)); }
.poster-date { grid-area: 2 / 10 / 3 / 25; }
.poster-date-stars { grid-area: 3 / 10 / 4 / 19; align-self: center; }
.poster-conference { grid-area: 3 / 19 / 5 / 25; width: 118%; max-width: none; margin-top: calc(-12 * var(--poster-unit)); }
.poster-time { grid-area: 4 / 1 / 5 / 15; }
.poster-time-stars { grid-area: 4 / 15 / 5 / 19; padding-top: calc(12 * var(--poster-unit)); }
.poster-shop { grid-area: 5 / 1 / 7 / 8; width: 105%; max-width: none; margin-left: calc(-10 * var(--poster-unit)); }
.poster-venue { grid-area: 5 / 8 / 6 / 22; padding-left: calc(25 * var(--poster-unit)); }
.poster-venue-stars { grid-area: 5 / 22 / 6 / 25; padding-top: calc(15 * var(--poster-unit)); padding-left: calc(25 * var(--poster-unit)); }
.poster-bottom-stars { grid-area: 6 / 8 / 7 / 17; padding-left: calc(25 * var(--poster-unit)); }
.poster-city { grid-area: 6 / 18 / 7 / 25; }

.hero-message {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: calc(150 * var(--unit));
  padding: calc(374 * var(--unit)) calc(119 * var(--unit)) calc(125 * var(--unit)) calc(128 * var(--unit));
  color: var(--ink);
}
.hero-tagline h2 { font-family: "Bricolage Grotesque", Arial, sans-serif; font-size: clamp(24px, 2.34vw, 44.9px); font-weight: 500; line-height: 1.25; text-transform: uppercase; }
.tagline-stars { display: block; font-family: "Bricolage Grotesque", Arial, sans-serif; font-size: calc(44.9 * var(--unit)); font-weight: 500; line-height: 1; }
.tagline-stars:first-child { margin-bottom: calc(16 * var(--unit)); }
.organizers { display: flex; align-items: center; justify-content: space-between; gap: calc(34 * var(--unit)); }
.organizers p { flex-shrink: 0; font-family: "Bricolage Grotesque", Arial, sans-serif; font-size: clamp(8px, 0.828vw, 15.9px); font-weight: 400; line-height: 1.02; text-transform: uppercase; }
.organizer-lrf { width: calc(174 * var(--unit)); }
.organizer-city { width: calc(124 * var(--unit)); }

/* About and the three themes */
.about { display: grid; grid-template-columns: 55.4% 44.6%; min-height: calc(1084 * var(--unit)); }
.about-copy { padding: calc(183 * var(--unit)) calc(153 * var(--unit)) calc(94 * var(--unit)) calc(132 * var(--unit)); font-size: clamp(16px, 1.469vw, 28.2px); line-height: 1.335; }
.about-copy .section-label { margin-bottom: calc(38 * var(--unit)); }
.about-copy p + p { margin-top: calc(40 * var(--unit)); }
.about-photo { width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: 70% 50%; }
.event-themes { display: grid; grid-template-columns: 1fr 1.1fr 1fr; gap: calc(90 * var(--unit)); margin: 0; padding: calc(121 * var(--unit)) calc(119 * var(--unit)) calc(87 * var(--unit)); list-style: none; }
.event-themes li { font-family: "Bricolage Grotesque", Arial, sans-serif; font-size: clamp(19px, 1.865vw, 35.8px); font-weight: 400; line-height: 1.08; text-transform: uppercase; }
.event-themes li::before { display: block; width: calc(107 * var(--unit)); height: max(2px, calc(5 * var(--unit))); margin-bottom: calc(44 * var(--unit)); content: ""; }
.theme-experience::before { background: var(--green); }
.theme-workshops::before { background: var(--blue); }
.theme-networking::before { background: var(--red); }

/* Programme and registration */
.program { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: calc(85 * var(--unit)); min-height: calc(650 * var(--unit)); padding: calc(135 * var(--unit)) calc(159 * var(--unit)); background: var(--paper); }
.program-download { display: flex; align-items: center; gap: calc(45 * var(--unit)); margin-left: calc(60 * var(--unit)); }
.document-icon { flex-shrink: 0; width: calc(174 * var(--unit)); height: calc(237 * var(--unit)); color: var(--yellow); }
.program-action { position: relative; }
.program-decoration { display: flex; align-items: center; gap: calc(26 * var(--unit)); margin-bottom: calc(37 * var(--unit)); }
.program-decoration img { width: calc(113 * var(--unit)); }
.program-decoration .stars { font-size: calc(79.5 * var(--unit)); }
.download-button { box-shadow: 0 10px 34px #0003; white-space: nowrap; }
.availability-note { position: absolute; top: calc(100% + 16 * var(--unit)); left: 0; right: 0; font-size: clamp(11px, 0.9vw, 17px); text-align: center; }
.registration { display: grid; grid-template-columns: 1fr 1fr; align-items: center; min-height: calc(550 * var(--unit)); padding: calc(97 * var(--unit)) calc(160 * var(--unit)); }
.registration-action { justify-self: start; margin-left: calc(108 * var(--unit)); }
.registration-icon { width: calc(276 * var(--unit)); height: calc(185 * var(--unit)); color: #54a445; stroke-width: 9; }
.registration-link { display: flex; align-items: center; gap: calc(61 * var(--unit)); margin-top: calc(37 * var(--unit)); }
.registration-link .stars { font-size: calc(79.5 * var(--unit)); padding-top: 0.16em; }
.registration .display-title { justify-self: start; margin-left: calc(129 * var(--unit)); }

/* Practical details and the locally hosted map image */
.practical { display: grid; grid-template-columns: 56.67% 43.33%; background: var(--paper); }
.practical-copy { padding: calc(86 * var(--unit)) calc(112 * var(--unit)) calc(93 * var(--unit)) calc(144 * var(--unit)); }
.practical-copy .section-label { margin-bottom: calc(72 * var(--unit)); }
.practical-list { position: relative; display: grid; gap: calc(34 * var(--unit)); margin-left: calc(44 * var(--unit)); }
.practical-list::before { position: absolute; top: 0; bottom: 0; left: calc(114 * var(--unit)); width: 2px; background: #d9d9d9; content: ""; }
.info-item { display: grid; grid-template-columns: calc(151 * var(--unit)) 1fr; align-items: start; font-family: "Bricolage Grotesque", Arial, sans-serif; font-size: clamp(16px, 1.56vw, 29.9px); font-weight: 400; line-height: 1.26; }
.info-icon { width: calc(73 * var(--unit)); height: calc(73 * var(--unit)); }
.info-item a { overflow-wrap: anywhere; }
.info-item a:hover { color: var(--blue); text-decoration: underline; }
.location-map { position: relative; display: block; min-height: calc(750 * var(--unit)); overflow: hidden; }
.location-map img { width: 100%; height: 100%; object-fit: cover; }
.map-label { position: absolute; right: 20px; bottom: 20px; padding: 12px 20px; border-radius: 30px; background: #222; color: white; font-size: 14px; opacity: 0; transform: translateY(6px); transition: opacity 160ms ease, transform 160ms ease; }
.location-map:hover .map-label, .location-map:focus-visible .map-label { opacity: 1; transform: translateY(0); }

.partners { min-height: calc(440 * var(--unit)); padding: calc(77 * var(--unit)) calc(144 * var(--unit)) calc(94 * var(--unit)); }
.partner-logos { display: flex; align-items: center; gap: calc(125 * var(--unit)); margin-top: calc(70 * var(--unit)); }
.partner-logos a { display: block; }
.partner-lrf { width: calc(382 * var(--unit)); }
.partner-city { width: calc(240 * var(--unit)); }
.site-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px; padding: 28px max(24px, calc(106 * var(--unit))); background: var(--paper); font-size: clamp(13px, 0.833vw, 16px); line-height: 1.5; }
.footer-brand { flex-shrink: 0; width: 170px; }
.footer-copyright { flex: 1 1 220px; text-align: center; }
.footer-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 24px; }
.footer-links a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 500; transition: color 160ms ease; }
.footer-links a:hover { color: var(--blue); }
.footer-links .cookie-settings { min-height: 44px; }

/* Legal pages share the same typefaces, palette and navigation. */
.legal-page { max-width: 1000px; margin: 0 auto; padding: 64px 40px 100px; font-size: 17px; line-height: 1.6; }
.legal-page .display-title { margin-bottom: 32px; font-size: clamp(42px, 6vw, 72px); line-height: 1.05; }
.legal-page h2 { margin-top: 36px; margin-bottom: 12px; color: var(--ink); font-size: 23px; }
.legal-page p + p { margin-top: 16px; }
.legal-page a { text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.legal-page ul { padding-left: 24px; }
.legal-page li + li { margin-top: 8px; }
.legal-notice { margin-block: 24px; padding: 20px 24px; border-left: 4px solid var(--yellow); background: var(--paper); }
.legal-meta { color: #62676a; font-size: 14px; }
.legal-fields { display: grid; grid-template-columns: 200px 1fr; gap: 10px 20px; }
.legal-fields dt { font-weight: 700; }
.legal-fields dd { margin: 0; }

.cookie-settings { padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; font-size: 14px; text-decoration: underline; text-underline-offset: 3px; }
.cookie-banner { position: fixed; z-index: 20; right: 24px; bottom: 24px; width: min(520px, calc(100% - 48px)); padding: 28px; border: 1px solid #ddd; background: white; color: var(--body-ink); box-shadow: 0 8px 40px #0002; font-size: 15px; line-height: 1.5; }
.cookie-banner h2 { margin-bottom: 10px; color: var(--ink); font-size: 20px; }
.cookie-banner p { margin-bottom: 20px; }
.cookie-banner a { text-decoration: underline; text-underline-offset: 3px; }
.cookie-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cookie-actions button { min-height: 44px; padding: 12px; border: 0; border-radius: 30px; background: #222; color: white; cursor: pointer; font-size: 14px; }
.cookie-actions button:hover { background: var(--blue); }

@media (max-width: 960px) {
  :root { --sticky-header-height: 112.5px; }
  .site-header { --header-expanded-height: 112.5px; --header-compact-height: 72px; }
  .header-inner { padding: 28px 32px; }
  .brand { width: 170px; }
  .site-header.is-compact .brand { width: 142px; }
  .desktop-navigation { display: none; }
  .mobile-navigation { display: block; }
  .mobile-navigation summary { display: flex; align-items: center; gap: 14px; min-height: 44px; padding: 8px 0 8px 12px; cursor: pointer; list-style: none; font-size: 15px; text-transform: uppercase; }
  .mobile-navigation summary::-webkit-details-marker { display: none; }
  .menu-icon { position: relative; width: 24px; height: 14px; border-block: 2px solid var(--ink); }
  .menu-icon::before { position: absolute; top: 4px; left: 0; width: 24px; height: 2px; background: var(--ink); content: ""; }
  .mobile-navigation[open] .menu-icon { border: 0; }
  .mobile-navigation[open] .menu-icon::before { top: 6px; transform: rotate(45deg); }
  .mobile-navigation[open] .menu-icon::after { position: absolute; top: 6px; width: 24px; height: 2px; background: var(--ink); transform: rotate(-45deg); content: ""; }
  .mobile-navigation nav { position: absolute; z-index: 5; top: 100%; left: 0; right: 0; display: grid; max-height: calc(100dvh - var(--sticky-header-height) - 12px); overflow-y: auto; overscroll-behavior: contain; padding: 16px 32px 24px; background: white; box-shadow: 0 16px 24px #0001; }
  .mobile-navigation nav a { padding: 14px 0; font-size: 16px; text-transform: uppercase; }
  .mobile-navigation nav a:hover { color: var(--blue); }

  .hero { grid-template-columns: 1fr; }
  .hero-poster { padding: 50px 24px 40px; }
  .event-poster { --poster-unit: min(calc((100vw - 64px) / 850), 0.66px); margin-inline: auto; }
  .event-poster::after { top: calc(100% + 40px); bottom: auto; left: 0; width: 100%; height: 1px; background: repeating-linear-gradient(to right, #626262 0 9px, transparent 9px 22px); }
  .hero-message { flex-direction: row; align-items: end; gap: 36px; padding: 44px 40px 48px; }
  .hero-tagline h2 { font-size: clamp(24px, 3.7vw, 36px); }
  .tagline-stars { font-size: 30px; }
  .tagline-stars:first-child { margin-bottom: 8px; }
  .organizers { flex-wrap: wrap; justify-content: start; gap: 20px; max-width: 240px; }
  .organizers p { width: 100%; font-size: 10px; }
  .organizer-lrf { width: 110px; }
  .organizer-city { width: 70px; }
  .section-label { font-size: 19px; }

  .about { grid-template-columns: 1fr; }
  .about-copy { max-width: 720px; padding: 60px 40px; font-size: 19px; line-height: 1.45; }
  .about-copy .section-label { margin-bottom: 28px; }
  .about-copy p + p { margin-top: 24px; }
  .about-photo { height: clamp(340px, 60vw, 580px); object-position: 65% 50%; }
  .event-themes { gap: 24px; padding: 50px 40px; }
  .event-themes li { font-size: 20px; line-height: 1.15; }
  .event-themes li::before { width: 65px; height: 3px; margin-bottom: 22px; }

  .program { gap: 40px; min-height: 360px; padding: 64px 40px; }
  .display-title { font-size: clamp(42px, 6.4vw, 62px); }
  .program-download { gap: 20px; margin-left: 0; }
  .document-icon { width: 90px; height: 124px; }
  .program-decoration { gap: 15px; margin-bottom: 20px; }
  .program-decoration img { width: 60px; }
  .program-decoration .stars { font-size: 32px; }
  .button { padding: 14px 20px; font-size: 15px; }
  .availability-note { top: calc(100% + 10px); font-size: 12px; }
  .registration { gap: 40px; min-height: 310px; padding: 64px 40px; }
  .registration-action { margin-left: 0; }
  .registration .display-title { margin-left: 0; }
  .registration-icon { width: 180px; height: 120px; }
  .registration-link { gap: 22px; margin-top: 24px; }
  .registration-link .stars { font-size: 36px; }

  .practical { grid-template-columns: 1fr; }
  .practical-copy { padding: 56px 40px; }
  .practical-copy .section-label { margin-bottom: 36px; }
  .practical-list { gap: 28px; margin-left: 0; }
  .practical-list::before { left: 69px; width: 1px; }
  .info-item { grid-template-columns: 94px 1fr; font-size: 18px; line-height: 1.4; }
  .info-icon { width: 48px; height: 48px; }
  .location-map { min-height: 0; aspect-ratio: 1660 / 1496; max-height: 650px; }
  .map-label { opacity: 1; transform: none; }
  .partners { min-height: 280px; padding: 52px 40px; }
  .partner-logos { gap: 65px; margin-top: 40px; }
  .partner-lrf { width: 260px; }
  .partner-city { width: 165px; }
  .site-footer { padding: 28px 32px; gap: 20px; font-size: 14px; }
}

@media (max-width: 700px) {
  .program { grid-template-columns: 1fr; gap: 42px; padding-bottom: 84px; }
  .program-download { justify-self: center; }
  .registration { grid-template-columns: 1fr; gap: 36px; }
  .registration .display-title { order: -1; justify-self: start; }
  .registration-action { justify-self: center; }
  .hero-message { flex-direction: column; align-items: start; gap: 40px; }
  .organizers { flex-wrap: nowrap; gap: 20px; max-width: none; width: 100%; }
  .organizers p { width: auto; font-size: 9px; }
  .organizer-lrf { width: 98px; }
  .organizer-city { width: 65px; }
  .event-themes { grid-template-columns: 1fr; gap: 32px; }
  .event-themes li::before { margin-bottom: 16px; }
  .site-footer { flex-direction: column; gap: 12px; text-align: center; }
  .footer-copyright { flex: none; }
}

@media (max-width: 480px) {
  :root { --sticky-header-height: 88.5px; }
  .site-header { --header-expanded-height: 88.5px; --header-compact-height: 64px; }
  .header-inner { padding: 20px 24px; }
  .brand { width: 146px; }
  .site-header.is-compact .brand { width: 126px; }
  .hero-poster { padding-top: 36px; padding-bottom: 30px; }
  .hero-message { padding: 32px 24px 40px; }
  .hero-tagline h2 { font-size: 26px; }
  .event-poster::after { top: calc(100% + 30px); }
  .organizers { gap: 16px; }
  .organizers p { font-size: 8px; }
  .organizer-lrf { width: 90px; }
  .organizer-city { width: 58px; }
  .about-copy { padding: 44px 24px; font-size: 17px; }
  .about-photo { height: 380px; }
  .event-themes { padding: 42px 24px; }
  .program { padding: 56px 24px 76px; }
  .display-title { font-size: clamp(40px, 11.8vw, 55px); }
  .program-download { gap: 18px; }
  .document-icon { width: 76px; height: 105px; }
  .program-decoration img { width: 52px; }
  .program-decoration .stars { font-size: 29px; }
  .button { padding: 12px 18px; font-size: 14px; }
  .registration { padding: 56px 24px; }
  .practical-copy { padding: 44px 24px; }
  .practical-copy .section-label { font-size: 17px; }
  .info-item { grid-template-columns: 75px 1fr; font-size: 16px; }
  .practical-list::before { left: 54px; }
  .info-icon { width: 39px; height: 39px; }
  .partners { min-height: 230px; padding: 44px 24px; }
  .partner-logos { gap: 38px; margin-top: 34px; }
  .partner-lrf { width: 185px; }
  .partner-city { width: 108px; }
  .site-footer { padding: 24px; font-size: 13px; }
  .footer-brand { width: 146px; }
  .legal-page { padding: 40px 24px 64px; font-size: 16px; }
  .legal-fields { grid-template-columns: 1fr; gap: 4px; }
  .legal-fields dd { margin-bottom: 14px; }
  .cookie-banner { right: 12px; bottom: 12px; width: calc(100% - 24px); padding: 22px; }
}

@media (prefers-reduced-motion: reduce) {
  :root { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}

@media print {
  .site-header, .mobile-navigation, .skip-link, .map-label { display: none; }
  :root { --unit: 0.48px; }
  .hero { grid-template-columns: 1fr; }
  .hero-message { padding: 24px; }
  .event-poster::after { display: none; }
  .event-poster { --poster-unit: 0.5px; margin-inline: auto; }
  section { break-inside: avoid; }
  .button { color: var(--ink); background: transparent; border: 1px solid var(--ink); }
  .site-footer { min-height: 100px; }
}
