:root {
  --paper:#fff; --cream:#f7f5ef; --ink:#2d2b32; --purple:#5141be; --purple-dark:#40338b; --accent:#5141be; --anis:#bace00; --lavender:#efedf6; --line:#d9d5dc; --muted:#69656d;
  --display:'Hanken Grotesk',Arial,sans-serif; --sans:'Hanken Grotesk',Arial,sans-serif; --brand:'Barlow',Arial,sans-serif; --header-height:96px; --adminbar-height:0px;
}
:root:has(body.admin-bar) { --adminbar-height:32px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--header-height) + var(--adminbar-height) + 20px); }
body { margin:0; padding-top:var(--header-height); background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:18px; line-height:1.65; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button,input,textarea { font:inherit; }
button { cursor:pointer; }
a,button,input,textarea,summary { outline-offset:4px; -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:2px solid var(--purple); }
img { display:block; max-width:100%; height:auto; }
p,h1,h2,h3,figure { margin:0; }
h1,h2,h3 { font-family:var(--display); font-weight:600; }
h1,h2 { line-height:1.08; }
h2 { font-size:clamp(36px,4.3vw,56px); }
h1 em,h2 em { font-style:normal; color:var(--accent); }
p + p { margin-top:18px; }
[hidden] { display:none!important; }
.section-wrap { width:min(1220px,calc(100% - 112px)); margin-inline:auto; }
.eyebrow { font-size:16px; line-height:1.5; font-weight:600; color:var(--purple); }
.small { font-size:15px; line-height:1.65; color:var(--muted); }
.sr-only,.honey { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.honey { pointer-events:none; }
.site-header { position:fixed; top:var(--adminbar-height); left:0; right:0; z-index:1000; background:#fff; box-shadow:0 3px 16px #29263d08; }
.header-inner { width:min(1320px,calc(100% - 88px)); margin:auto; min-height:var(--header-height); display:flex; align-items:center; justify-content:space-between; gap:28px; }
.logo { display:flex; align-items:center; gap:12px; color:var(--purple); }
.logo-symbol { width:38px; height:38px; flex:0 0 auto; }
.logo-symbol svg { display:block; width:100%; height:100%; }
.logo-type { font-family:var(--brand); font-size:37px; line-height:1; font-weight:600; }
.logo-description { font-family:var(--brand); font-size:13px; line-height:1.4; font-weight:500; padding-left:4px; }
nav { display:flex; align-items:center; gap:28px; font-size:18px; font-weight:500; }
nav a:hover { color:var(--purple); }
.nav-cta { padding:11px 22px; color:white; background:var(--purple); border-radius:5px; }
.nav-cta:hover { background:var(--purple-dark); color:white; }
.header-actions,.menu-toggle { display:none; }
.mobile-cta { background:var(--purple); color:#fff; padding:10px 14px; border-radius:5px; font-size:16px; font-weight:600; white-space:nowrap; }
.hero-surface { position:relative; isolation:isolate; background:#292932; }
.hero-backdrop-track { position:absolute; inset:0; z-index:-1; }
.hero-backdrop-frame { position:absolute; inset:0; }
.hero-backdrop { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.hero-backdrop-frame::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#25222ae8 0%,#27232bc4 46%,#25222a50 100%); }
.hero { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(380px,1fr); align-items:start; gap:92px; padding-block:64px; }
.hero-story { position:sticky; align-self:start; top:min(calc(var(--header-height) + var(--adminbar-height) + 32px),calc(100dvh - var(--hero-story-height,0px) - 24px)); color:#fff; padding-block:22px; }
.hero-story > .eyebrow { color:#e4e8b7; font-size:18px; }
.hero h1 { font-size:clamp(62px,7.2vw,98px); margin-top:24px; }
.hero h1 em { color:#e0e6a1; }
.hero-intro { font-size:20px; line-height:1.7; color:#f3f0ee; max-width:550px; margin-top:28px; text-wrap:pretty; }
.event-facts { display:grid; grid-template-columns:1.2fr 1fr; gap:22px; margin-top:38px; }
.event-facts > div { display:flex; flex-direction:column; }
.event-facts .eyebrow { font-size:15px; color:#d1cdc9; font-weight:400; }
.event-facts strong { font-size:18px; font-weight:600; margin:5px 0; }
.event-facts small { font-size:15px; color:#e2dedb; }
.hero-discover { display:inline-block; margin-top:32px; font-size:17px; text-decoration:underline; text-underline-offset:6px; }
.hero-story a:focus-visible { outline-color:#e0e6a1; }
.registration { background:#fff; border-radius:12px; overflow:hidden; overflow-anchor:none; box-shadow:0 18px 50px #17121e26; }
.registration-body { padding:30px 32px 24px; }
.registration-overview > .eyebrow { font-size:14px; color:var(--muted); font-weight:500; }
.registration h2 { font-size:32px; color:var(--ink); margin-top:10px; }
.form-intro { font-size:17px; line-height:1.55; color:var(--muted); margin-top:14px; }
.registration-fields { border:0; padding:0; margin:24px 0 0; min-width:0; }
.guest-field { background:var(--cream); padding:18px 20px; border-radius:7px; margin-bottom:22px; display:grid; grid-template-columns:1fr auto; align-items:center; gap:8px 16px; }
.guest-field > label { font-size:17px; font-weight:600; line-height:1.4; }
.guest-field > p { font-size:14px; line-height:1.5; color:var(--muted); grid-column:1/-1; }
.guest-control { display:flex; height:44px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:5px; }
.guest-control button { border:0; background:transparent; width:34px; height:42px; color:var(--purple); font-size:22px; line-height:1; padding:0; }
.guest-control button:hover { background:var(--lavender); }
.guest-control button:disabled { color:#98939d; cursor:default; }
.guest-control input { appearance:textfield; -moz-appearance:textfield; width:47px; padding:0; height:42px; border:0; color:var(--ink); background:#fff; text-align:center; font-size:20px; font-weight:600; border-radius:0; }
.guest-control input::-webkit-inner-spin-button,.guest-control input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.contact-person { font-size:16px; font-weight:600; margin-bottom:14px; }
.field { display:block; margin-bottom:14px; }
.field > span { display:block; font-size:16px; font-weight:500; line-height:1.5; margin-bottom:6px; }
.field input,.field textarea { width:100%; border:1px solid #c9c4cd; background:#fff; border-radius:5px; color:var(--ink); padding:10px 12px; font-size:18px; line-height:1.5; min-height:48px; }
.field input:focus,.field textarea:focus { border-color:var(--purple); outline-color:var(--purple); }
.field input::placeholder,.field textarea::placeholder { color:#827c86; font-size:16px; opacity:1; }
.field textarea { resize:vertical; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.field-row > * { min-width:0; }
.button { display:inline-flex; align-items:center; justify-content:center; background:var(--purple); color:#fff; font-size:18px; font-weight:600; line-height:1.5; padding:14px 22px; min-height:54px; border:1px solid var(--purple); border-radius:5px; transition:background .2s; }
.button:hover { background:var(--purple-dark); }
.button-full { width:100%; }
.button:disabled { opacity:.65; cursor:wait; }
.check-field { display:flex; align-items:flex-start; gap:10px; font-size:14px; line-height:1.6; margin:20px 0; }
.check-field input { accent-color:var(--purple); width:18px; height:18px; flex:0 0 auto; margin:3px 0 0; }
.form-privacy { font-size:14px; line-height:1.6; color:var(--muted); margin-top:16px; }
.form-privacy a,.check-field a,.registration-fallback a { text-decoration:underline; text-underline-offset:2px; }
.registration-fallback { margin-top:24px; }
.form-status:empty { display:none; }
.form-status { font-size:17px; padding:16px; background:var(--lavender); color:var(--purple-dark); margin:18px 0; border-radius:5px; }
.form-status.error { background:#faece6; color:#7e3028; }
.form-success { padding:0; font-size:18px; overflow-wrap:anywhere; }
.form-success h2 { margin:0 0 20px; }
.form-success h3 { font-size:24px; line-height:1.3; margin:28px 0 14px; }
.confirmation-details { background:var(--cream); padding:22px; border-radius:7px; margin:24px 0; }
.confirmation-details > div + div { margin-top:16px; }
.confirmation-details dt { font-size:15px; font-weight:600; color:var(--purple); }
.confirmation-details dd { font-size:17px; line-height:1.55; white-space:pre-line; margin:3px 0 0; }
.confirmation-mail,.confirmation-note { font-size:16px; line-height:1.65; color:var(--muted); }
.confirmation-actions { display:flex; flex-direction:column; align-items:flex-start; gap:5px; margin-top:24px; }
.confirmation-phone { display:block; color:var(--purple); margin-top:12px; }
.federation-section { padding:90px 0; }
.federation-intro { display:grid; grid-template-columns:1.1fr 1fr; gap:85px; align-items:end; }
.federation-intro .eyebrow { margin-bottom:20px; }
.federation-intro > p { font-size:19px; line-height:1.75; color:var(--muted); }
.missions { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:44px; }
.mission-card { border-radius:12px; padding:28px 30px 34px; background:#f3f2e7; }
.mission-share { background:#f0edf7; }
.mission-voice { background:#f7eee6; }
.mission-art { height:115px; margin-bottom:28px; }
.mission-art svg { height:100%; width:190px; max-width:100%; }
.mission-card > .eyebrow { font-size:14px; color:#625872; font-weight:500; }
.mission-card h3 { font-size:28px; line-height:1.18; margin-top:14px; }
.mission-card > p:last-child { font-size:18px; line-height:1.65; color:#625b65; margin-top:18px; }
.federation-quote { margin:48px auto 0; padding:30px; text-align:center; max-width:900px; background:var(--cream); border-radius:10px; }
.federation-quote p { font-size:28px; }
.federation-quote cite { font-size:16px; display:block; margin-top:15px; font-style:normal; }
.voices-section { background:var(--cream); padding-block:72px; margin-bottom:80px; }
.voices-section h2 { max-width:760px; font-size:clamp(36px,4.3vw,52px); }
.voices-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; margin-top:48px; align-items:start; }
.voice { min-width:0; }
.voice h3 { color:var(--purple); font-size:22px; line-height:1.3; margin-bottom:20px; }
.voice-excerpt { margin:0; font-size:clamp(25px,2.5vw,32px); font-weight:500; line-height:1.45; text-wrap:pretty; }
.voice-details { margin-top:22px; }
.voice-details summary { list-style:none; cursor:pointer; color:var(--purple); font-size:18px; font-weight:500; width:fit-content; padding-block:9px; text-decoration:underline; text-underline-offset:5px; }
.voice-details summary::-webkit-details-marker { display:none; }
.voice-close,.voice-details[open] .voice-read { display:none; }
.voice-details[open] .voice-close { display:inline; }
.voice-continuation { margin-top:18px; font-size:19px; line-height:1.75; color:#625b65; }
.voices-controls { display:flex; align-items:center; flex-wrap:wrap; gap:16px 28px; margin-top:32px; }
.voices-toggle { order:2; margin-left:auto; padding:9px 0; border:0; background:none; color:var(--purple); font-size:16px; text-decoration:underline; text-underline-offset:5px; }
.voices-select { display:flex; flex-wrap:wrap; gap:10px; }
.voices-select button { padding:10px 18px; border:1px solid transparent; border-radius:5px; background:transparent; color:var(--purple); font-size:17px; font-weight:500; }
.voices-select button[aria-pressed="true"] { background:var(--purple); color:#fff; }
.voices-select button[aria-pressed="false"]:hover { background:var(--lavender); }
.voices-carousel .voices-grid { grid-template-columns:minmax(0,1fr); gap:0; margin-top:36px; }
.voices-carousel .voice { grid-area:1/1; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .35s ease,visibility .35s; }
.voices-carousel .voice.is-active { opacity:1; visibility:visible; pointer-events:auto; }
.voices-carousel .voice-excerpt { max-width:1000px; font-size:clamp(28px,3.5vw,44px); line-height:1.35; }
.voices-carousel .voice-continuation { max-width:820px; }
@media (max-width:600px) {
  .voices-controls { gap:12px; margin-top:24px; }
  .voices-toggle { margin-left:0; }
  .voices-select { width:100%; }
  .voices-select button { padding-inline:14px; }
  .voices-carousel .voices-grid { margin-top:28px; }
}
.diner-section { padding-top:10px; padding-bottom:85px; }
.section-heading .eyebrow { margin-bottom:20px; }
.section-heading > p:last-child { color:var(--muted); margin-top:24px; font-size:20px; max-width:680px; }
.diner-grid { display:grid; grid-template-columns:1.08fr 1fr; gap:75px; align-items:center; margin-top:46px; }
.chef-portrait { overflow:hidden; border-radius:10px; background:var(--cream); }
.chef-portrait img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.chef-portrait figcaption { font-size:15px; color:var(--muted); padding:13px 20px; }
.diner-copy > .eyebrow { margin-bottom:14px; }
.diner-copy h3 { font-size:44px; line-height:1.12; }
.diner-copy > p:not(.eyebrow):not(.lead) { color:var(--muted); font-size:18px; margin-top:18px; }
.lead { font-size:24px; line-height:1.4; font-weight:500; margin-top:24px; }
.text-link { text-decoration:underline; text-underline-offset:5px; display:inline-block; color:var(--purple); font-size:17px; font-weight:500; margin-top:20px; }
.president-card { display:grid; grid-template-columns:158px 1fr; gap:38px; align-items:center; padding:28px; margin-top:42px; background:var(--cream); border-radius:10px; }
.president-card figure { height:185px; overflow:hidden; border-radius:7px; }
.president-card img { width:100%; height:100%; object-fit:cover; object-position:50% 32%; }
.president-card h3 { font-size:31px; line-height:1.2; margin-top:9px; }
.president-card p:last-child { margin-top:14px; color:var(--muted); font-size:18px; max-width:770px; }
.image-credits { font-size:13px; color:var(--muted); margin-top:18px; text-align:right; }
.image-credits a { text-decoration:underline; text-underline-offset:3px; }
.venue-surface { background:#ecefe7; }
.venue-section { padding-block:76px; display:grid; grid-template-columns:1.05fr 1fr; gap:85px; align-items:center; }
.venue-image { position:relative; overflow:hidden; border-radius:10px; }
.venue-image img { height:580px; width:100%; object-fit:cover; object-position:53% center; }
.photo-label { position:absolute; bottom:20px; left:20px; background:#fff; padding:8px 13px; border-radius:4px; font-size:14px; }
.venue-copy > .eyebrow { margin-bottom:20px; }
.venue-copy h2 { font-size:clamp(36px,4vw,52px); }
.venue-name { font-size:25px; font-weight:600; margin-top:28px; }
.venue-copy > p:not(.eyebrow):not(.venue-name):not(.small) { margin-top:7px; color:#615f63; }
.access-line { display:flex; gap:16px; margin-top:22px; font-size:17px; line-height:1.65; align-items:flex-start; }
.access-line p { color:#615f63; }
.access-line strong { color:var(--ink); font-weight:600; }
.transport-icon { font-size:13px; border:1px solid var(--purple); border-radius:50%; width:30px; height:30px; display:grid; place-items:center; color:var(--purple); flex:0 0 auto; }
.venue-copy .small { margin-top:22px; }
.button-outline { background:transparent; color:var(--purple); margin-top:24px; }
.button-outline:hover { color:#fff; }
.practical-section { padding-block:80px; display:grid; grid-template-columns:1fr 1.45fr; gap:80px; }
.practical-section .eyebrow { margin-bottom:20px; }
.practical-section h2 { font-size:44px; }
.faq details { background:var(--cream); border-radius:7px; padding-inline:22px; }
.faq details + details { margin-top:10px; }
.faq summary { list-style:none; font-size:18px; font-weight:500; padding:18px 0; display:flex; justify-content:space-between; gap:20px; cursor:pointer; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary > span { font-size:25px; line-height:1.2; color:var(--purple); }
.faq details[open] summary > span { transform:rotate(45deg); }
.faq details > p { font-size:17px; color:var(--muted); padding:0 14px 22px 0; }
.faq a { text-decoration:underline; }
.contact-section { background:#30293e; color:#fff; padding:80px 0; }
.contact-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:95px; align-items:start; }
.contact-copy { padding-top:22px; }
.contact-copy > .eyebrow { color:#e0e6a1; margin-bottom:22px; }
.contact-copy h2 { font-size:clamp(46px,5vw,66px); }
.contact-copy > p:not(.eyebrow) { font-size:20px; color:#e2dce9; margin-top:26px; }
.contact-big { display:inline-block; text-decoration:underline; text-underline-offset:7px; font-size:30px; font-weight:500; color:#fff; margin-top:32px; overflow-wrap:anywhere; }
.contact-phone { display:block; font-size:25px; color:#e0e6a1; margin-top:18px; }
.contact-copy a:focus-visible { outline-color:#e0e6a1; }
.contact-form { color:var(--ink); background:#fff; padding:32px; border-radius:12px; }
.contact-form h3 { font-size:30px; margin-bottom:24px; }
.site-footer { padding:36px max(44px,calc((100vw - 1220px)/2)) 24px; background:#fff; }
.footer-top { display:flex; justify-content:space-between; align-items:center; gap:35px; padding-bottom:26px; }
.footer-top > a:last-child { font-size:16px; color:var(--purple); }
.footer-top .logo-description { display:none; }
.footer-bottom { display:flex; justify-content:space-between; font-size:14px; color:var(--muted); padding-top:12px; gap:20px; }
.footer-bottom a:hover { text-decoration:underline; }
.skip-link { position:fixed; top:-100px; left:15px; background:var(--purple); color:#fff; padding:15px; z-index:1001; }
.skip-link:focus { top:calc(var(--adminbar-height) + 15px); }
.legal-page { max-width:850px; width:calc(100% - 60px); margin:65px auto 100px; }
.legal-page h1 { font-size:55px; margin-bottom:30px; }
.legal-page h2 { font-size:28px; margin:40px 0 15px; }
.legal-page p { font-size:18px; line-height:1.85; color:var(--muted); }
.legal-page a { color:var(--purple); text-decoration:underline; }
.legal-note { background:var(--cream); padding:20px; border-radius:7px; }
.legal-page p.small { font-size:14px; margin-top:35px; }
@media (min-width:901px) {
  .hero-backdrop-frame { position:sticky; top:calc(var(--header-height) + var(--adminbar-height)); height:calc(100dvh - var(--header-height) - var(--adminbar-height)); }
  .hero { min-height:calc(100dvh - var(--header-height) - var(--adminbar-height)); padding-block:0; }
  .hero-story { min-height:calc(100dvh - var(--header-height) - var(--adminbar-height)); padding-block:32px; top:min(calc(var(--header-height) + var(--adminbar-height)),calc(100dvh - var(--hero-story-height,0px))); display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
  .hero-story .event-facts { width:100%; }
  .registration { margin-block:32px; }
}
@media (max-width:1100px) {
  .section-wrap,.header-inner { width:calc(100% - 64px); }
  nav { gap:21px; font-size:17px; }
  .hero { gap:44px; grid-template-columns:minmax(0,1.05fr) minmax(350px,1fr); }
  .hero h1 { font-size:clamp(60px,6.9vw,76px); }
  .hero-intro { font-size:19px; }
  .event-facts { grid-template-columns:1fr; gap:18px; margin-top:28px; }
  .event-facts strong { margin-block:2px; }
  .registration-body { padding:26px; }
  .registration h2 { font-size:29px; }
  .guest-field { padding:16px; gap:8px 10px; }
  .guest-control button { width:29px; }
  .guest-control input { width:42px; }
  .federation-intro,.diner-grid,.venue-section,.contact-grid { gap:48px; }
  .mission-card { padding:24px; }
  .mission-card h3 { font-size:25px; }
  .mission-art { height:98px; }
  .diner-copy h3 { font-size:40px; }
  .practical-section { gap:50px; }
  .contact-form { padding:28px; }
}
@media (min-width:901px) and (max-height:800px) {
  .hero-story { padding-block:24px; }
  .registration { margin-block:24px; }
  .hero h1 { font-size:clamp(58px,6vw,76px); margin-top:16px; }
  .hero-intro { font-size:19px; line-height:1.6; margin-top:20px; }
  .event-facts { margin-top:24px; gap:14px; }
  .hero-discover { margin-top:22px; }
}
@media (max-width:900px) {
  :root { --header-height:90px; }
  .header-inner { position:relative; }
  .header-actions { display:flex; align-items:center; gap:16px; margin-left:auto; flex-shrink:0; }
  .menu-toggle { display:block; border:0; background:none; color:var(--purple); font-size:17px; padding:12px 0; }
  nav { display:none; position:absolute; top:100%; left:-32px; right:-32px; z-index:10; flex-direction:column; align-items:stretch; gap:0; background:#fff; padding:10px 32px 20px; box-shadow:0 12px 20px #0000000b; max-height:calc(100dvh - var(--header-height) - var(--adminbar-height)); overflow-y:auto; }
  nav.open { display:flex; }
  nav > a { padding:12px 0; font-size:18px; }
  nav > .nav-cta { display:none; }
  .hero { width:min(640px,calc(100% - 64px)); grid-template-columns:1fr; gap:42px; padding-block:48px; }
  .hero-story { position:static; padding-block:0; }
  .hero h1 { font-size:86px; }
  .hero-backdrop-frame::after { background:linear-gradient(180deg,#27222bcf 0%,#27222b99 60%,#27222b80); }
  .hero-backdrop { object-position:45% 0; }
  .event-facts { grid-template-columns:1.2fr 1fr; }
  .registration-body { padding:30px; }
  .registration h2 { font-size:34px; }
  .guest-control button { width:40px; }
  .federation-section { padding:66px 0; }
  .voices-section { padding-block:54px; margin-bottom:60px; }
  .voices-grid { gap:40px; margin-top:36px; }
  .federation-intro { grid-template-columns:1fr; gap:25px; }
  .missions { grid-template-columns:1fr; gap:18px; margin-top:32px; }
  .mission-card { position:relative; padding:28px 32px 28px 190px; min-height:230px; }
  .mission-art { position:absolute; left:24px; top:45px; width:142px; height:110px; }
  .mission-card h3 { font-size:29px; }
  .mission-card h3 br { display:none; }
  .diner-section { padding-bottom:65px; }
  .diner-grid { gap:32px; align-items:start; }
  .chef-portrait img { aspect-ratio:1; }
  .diner-copy h3 { font-size:34px; }
  .lead { font-size:22px; }
  .president-card { grid-template-columns:138px 1fr; padding:24px; gap:26px; }
  .venue-section { grid-template-columns:1fr; gap:34px; padding-block:60px; }
  .venue-image img { height:350px; object-position:center 40%; }
  .venue-copy h2 { font-size:46px; }
  .practical-section { grid-template-columns:1fr; gap:32px; padding-block:60px; }
  .contact-grid { grid-template-columns:1fr 1.2fr; gap:34px; }
  .contact-big { font-size:24px; }
  .contact-copy h2 { font-size:44px; }
  .contact-copy > p:not(.eyebrow) { font-size:18px; }
  .contact-form .field-row { grid-template-columns:1fr; gap:0; }
}
@media (max-width:782px) { :root:has(body.admin-bar) { --adminbar-height:46px; } }
@media (max-width:600px) {
  :root { --header-height:84px; }
  body.admin-bar #wpadminbar { position:fixed; }
  .section-wrap,.hero { width:calc(100% - 40px); }
  .header-inner { width:calc(100% - 32px); gap:12px; }
  .logo { gap:8px; }
  .logo-symbol { width:27px; height:27px; }
  .logo-type { font-size:27px; }
  .logo-description { display:none; }
  .header-actions { gap:12px; }
  .mobile-cta { font-size:15px; padding:10px 12px; }
  .menu-toggle { font-size:16px; }
  nav { left:-16px; right:-16px; padding-inline:20px; }
  .hero { padding-block:38px; gap:34px; }
  .hero-story > .eyebrow { font-size:16px; }
  .hero h1 { font-size:clamp(56px,16vw,86px); margin-top:18px; }
  .hero-intro { font-size:19px; line-height:1.65; margin-top:24px; }
  .event-facts { grid-template-columns:1fr; gap:16px; margin-top:27px; }
  .event-facts strong { font-size:18px; }
  .hero-discover { margin-top:25px; }
  .registration-body { padding:24px 22px; }
  .registration h2 { font-size:29px; }
  .registration-fields { margin-top:22px; }
  .guest-field { padding:16px; grid-template-columns:1fr; gap:10px; }
  .guest-control { width:max-content; }
  .guest-control button { width:43px; }
  .guest-control input { width:58px; }
  .guest-field > p { font-size:14px; }
  .field-row { grid-template-columns:1fr; gap:0; }
  .field { margin-bottom:16px; }
  .field input,.field textarea { min-height:50px; }
  .check-field { font-size:15px; }
  .form-privacy { font-size:14px; }
  .button { padding-inline:15px; font-size:18px; }
  .federation-section { padding:52px 0; }
  .voices-section { padding-block:46px; margin-bottom:48px; }
  .voices-grid { grid-template-columns:1fr; gap:38px; margin-top:32px; }
  .voice h3 { margin-bottom:16px; }
  .voice-excerpt { font-size:26px; }
  .voice-details { margin-top:16px; }
  .voice-continuation { font-size:18px; }
  h2 { font-size:36px; }
  .federation-intro h2 br { display:none; }
  .federation-intro > p { font-size:18px; }
  .mission-card { padding:24px 26px 28px; min-height:0; }
  .mission-art { position:static; width:160px; height:95px; margin-bottom:22px; }
  .mission-card h3 { font-size:28px; }
  .diner-section { padding-top:5px; padding-bottom:52px; }
  .section-heading > p:last-child { font-size:19px; }
  .diner-grid { grid-template-columns:1fr; gap:28px; margin-top:32px; }
  .chef-portrait img { aspect-ratio:4/3; }
  .diner-copy h3 { font-size:38px; }
  .diner-copy h3 br { display:none; }
  .president-card { grid-template-columns:1fr; gap:22px; margin-top:30px; padding:24px; }
  .president-card figure { width:140px; height:158px; }
  .president-card h3 { font-size:30px; }
  .image-credits { text-align:left; }
  .venue-section { padding-block:48px; gap:28px; }
  .venue-image img { height:310px; }
  .photo-label { left:14px; bottom:14px; }
  .venue-copy h2 { font-size:38px; }
  .venue-name { font-size:25px; }
  .access-line { font-size:18px; }
  .practical-section { padding-block:50px; gap:26px; }
  .practical-section h2 { font-size:38px; }
  .faq details { padding-inline:18px; }
  .faq summary { font-size:18px; gap:15px; }
  .faq details > p { padding-right:0; font-size:17px; }
  .contact-section { padding-block:48px; }
  .contact-grid { grid-template-columns:1fr; gap:30px; }
  .contact-copy { padding-top:0; }
  .contact-copy h2 { font-size:46px; }
  .contact-big { font-size:28px; margin-top:24px; }
  .contact-phone { font-size:24px; }
  .contact-form { padding:26px 22px; }
  .contact-form h3 { font-size:29px; }
  .site-footer { padding:28px 20px 22px; }
  .footer-top { gap:20px; }
  .footer-top > a:last-child { max-width:136px; font-size:15px; }
  .footer-bottom { gap:12px; flex-direction:column; align-items:start; }
  .legal-page { width:calc(100% - 40px); margin-top:40px; }
  .legal-page h1 { font-size:clamp(31px,8vw,44px); }
  .legal-page h2 { font-size:27px; }
  .legal-page p { font-size:17px; }
  .legal-note { padding:16px; }
}
@media (max-width:360px) {
  .header-inner { width:calc(100% - 28px); gap:8px; }
  .header-actions { gap:10px; }
  .mobile-cta { padding:10px; }
  .logo-type { font-size:25px; }
  .logo-symbol { width:24px; height:24px; }
  .menu-toggle { font-size:15px; }
  .registration-body { padding-inline:18px; }
  .registration h2 { font-size:27px; }
  .hero h1 { font-size:53px; }
  .mission-card { padding-inline:22px; }
  .contact-form { padding-inline:18px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }

/* Rencontres de la Fédération et informations de réservation. */
.booking-rates{background:#f2f0f8;border-radius:12px;padding:18px 20px;margin:22px 0 26px;font-size:17px;line-height:1.5}
.booking-rates p{margin:0}.booking-rates p+p{margin-top:10px}.booking-rates strong{font-weight:600}
.federation-life{margin-top:64px}.federation-life>h3{font-size:clamp(28px,3vw,40px);margin:0 0 30px}
.federation-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 28px}
.federation-gallery figure{margin:0;min-width:0}.federation-gallery img{display:block;width:100%;height:auto;border-radius:14px}
.federation-gallery figcaption{padding:20px 2px 0}.federation-gallery figcaption .eyebrow{display:block;margin:0 0 8px}
.federation-gallery figcaption strong{display:block;font-size:25px;line-height:1.25;font-weight:600}.federation-gallery figcaption p{margin:10px 0 0;font-size:19px;line-height:1.5}
@media(max-width:650px){.federation-gallery{grid-template-columns:1fr;gap:32px}.federation-life{margin-top:42px}.booking-rates{padding:16px}.federation-gallery figcaption strong{font-size:23px}}

/* Full federation name, updated event title and consistent photo frames. */
.logo-description,.footer-top .logo-description{display:block;font-size:16px;line-height:1.25;font-weight:600;padding:0;max-width:300px}
.hero h1{font-size:clamp(48px,5.4vw,74px);line-height:1.04;text-wrap:balance}
.hero-intro{font-size:19px;line-height:1.55}
.federation-gallery img{aspect-ratio:16/9;object-fit:cover;object-position:center;height:auto}
.federation-gallery img[src*="domaine-du-cros"]{object-position:center 70%}
.dinner-presidency{margin-top:26px;padding:32px;background:var(--lavender);border-radius:10px}
.presidency-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:20px}
.presidency-grid h3{font-size:29px;line-height:1.25}.presidency-grid p{margin-top:12px}
.letter-logo{display:block;max-width:310px;padding:16px;background:white;border-radius:6px;margin-top:24px}
.letter-logo img{width:100%;height:auto}
.footer-bottom{gap:20px}.footer-bottom>span{max-width:650px}
@media(max-width:1050px){nav{gap:18px;font-size:16px}.header-inner{gap:20px}.logo-description{font-size:14px}.hero h1{font-size:54px}}
@media(max-width:650px){.header-inner{width:calc(100% - 28px);gap:12px;flex-wrap:wrap;padding:12px 0}.site-header .logo{flex:1 1 200px;gap:8px}.logo-symbol{width:28px;height:28px}.logo-description{display:block;font-size:13px;max-width:250px}.header-actions{margin-left:auto}.hero h1{font-size:clamp(44px,11vw,64px)}.hero-intro{font-size:18px}.presidency-grid{grid-template-columns:1fr;gap:28px}.dinner-presidency{padding:24px}.presidency-grid h3{font-size:26px}.footer-top{align-items:flex-start;gap:24px;flex-wrap:wrap}}
@media(max-width:520px){:root{--header-height:132px}.header-inner{align-content:center}.site-header .logo{flex-basis:100%}.header-actions{margin-left:36px}.mobile-cta{padding:8px 12px}.footer-top .logo-description{font-size:14px}}

/* Portrait fourni et identités des intervenants. */
.president-card figure{height:auto;aspect-ratio:1/1;align-self:start}.president-card figure img{object-position:center}.partner-logo{display:inline-flex;align-items:center;justify-content:center;background:#fff;padding:14px;border-radius:8px;margin:12px 12px 8px 0;vertical-align:middle}.partner-logo img{display:block;width:120px;height:120px;object-fit:contain}.presidency-grid .letter-logo{display:flex;width:100%;max-width:340px;margin-top:16px}.presidency-grid .letter-logo img{width:100%;height:auto;object-fit:contain}
