/* Francophonie 2026 — conference poster and city atlas. */
.fr-hub.ft-hub { --frh-ink: var(--ft-ink); --frh-navy: var(--ft-ink); --frh-blue: var(--brand-blue); --frh-muted: #4c626c; --frh-line: #d0d7d5; --frh-soft: #eaf0ef; background: var(--ft-paper); }
.ft-hub .frh-shell { width:min(calc(100% - (var(--site-gutter-fluid, clamp(1rem, 3vw, 2rem)) * 2)), 1240px); }
.ft-hub .ft-hero { padding-top: 1.25rem; background: var(--ft-paper); }
.ft-hub .ft-hero__top { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-block:.3rem 1rem; border-bottom:1px solid #aebebf; }
.ft-hub .ft-hero__top p { font:600 .8125rem/1.6 var(--ft-mono); letter-spacing:.04em; }
.ft-hub .ft-hero__top p > span { color:var(--ft-red); padding-inline:.7rem; }
.ft-hub .ft-language { display:flex; align-items:center; gap:6px; flex-shrink:0; }
.ft-hub .ft-language b { font-weight:400; color:#536c75; }
.ft-hub .ft-language :is(a,[aria-current]) { display:grid; place-items:center; min-height:44px; padding:8px 12px; font-size:14px; line-height:1.3; font-weight:600; font-family:inherit; text-decoration:none; border:1px solid #b7c4c5; border-radius:8px; color:var(--ft-ink); }
.ft-hub .ft-language [aria-current] { background:var(--ft-ink); border-color:var(--ft-ink); color:#fff; }
.ft-hub .ft-language a:hover { background:#dce6e6; }
.ft-hub .ft-hero__grid { display:grid; grid-template-columns:minmax(0,1.28fr) minmax(0,.9fr); gap:clamp(2rem,5vw,5rem); align-items:center; padding-block:2.1rem 2.3rem; }
.ft-hub .ft-edition { display:flex; align-items:baseline; gap:.7rem; margin-bottom:1.25rem; color:var(--ft-ink); font:550 .85rem/1 var(--ft-mono); }
.ft-hub .ft-edition strong { color:var(--ft-red); font-weight:750; font-size:1.15rem; }
.ft-hub .ft-hero h1 { font-size:clamp(3.7rem,6.65vw,7rem); line-height:.95; letter-spacing:-.055em; font-weight:820; text-wrap:initial; margin:0; color:var(--ft-ink); }
.ft-hub .ft-hero h1 > span { color:var(--brand-blue); }
.ft-hub .ft-hero__intro { max-width:44ch; margin-top:1.5rem; font-size:1.08rem; line-height:1.65; color:#354f5c; }
.ft-hub .ft-hero__actions { display:flex; flex-wrap:wrap; align-items:center; gap:.8rem 1.25rem; margin-top:1.5rem; }
.ft-hub .ft-action { display:inline-flex; align-items:center; justify-content:space-between; gap:1rem; min-height:48px; padding:.85rem 1rem; font-weight:700; font-size:.9rem; line-height:1.4; text-decoration:none; border-radius:8px; }
.ft-hub .ft-action--primary { color:#fff; background:var(--brand-blue); border:1px solid var(--brand-blue); }
.ft-hub .ft-action--primary:hover { background:var(--brand-blue-hover); border-color:var(--brand-blue-hover); }
.ft-hub .ft-action--plain { color:var(--ft-ink); padding-inline:.15rem; border-bottom:1px solid #8ca4a9; border-radius:0; }
.ft-hub .ft-action--plain:hover { color:var(--brand-blue); border-color:var(--brand-blue); }
.ft-hub .ft-atlas-preview { display:block; position:relative; isolation:isolate; overflow:hidden; background:var(--ft-ink); color:#fff; aspect-ratio:1.08; border-radius:8px; text-decoration:none; }
.ft-hub .ft-atlas-preview img { width:100%; height:100%; object-fit:cover; transition:transform 400ms ease; opacity:.92; }
.ft-hub .ft-atlas-preview:hover img { transform:scale(1.045); }
.ft-hub .ft-atlas-preview__top { position:absolute; top:1rem; left:1.1rem; right:1.1rem; display:flex; justify-content:space-between; gap:.7rem; color:#bce3e7; font:600 .8125rem/1.5 var(--ft-mono); letter-spacing:.03em; }
.ft-hub .ft-atlas-preview__top > span { display:grid; place-items:center; width:29px; height:29px; border:1px solid #6f9fa8; border-radius:50%; font:400 1rem/1 sans-serif; color:var(--ft-cyan); }
.ft-hub .ft-atlas-preview__bottom { position:absolute; inset:auto 0 0; padding:2rem 1.1rem 1.1rem; background:linear-gradient(transparent,#081e2ae6 45%); }
.ft-hub .ft-atlas-preview__bottom strong { display:block; color:#fff; font-family:var(--ft-display); font-stretch:85%; font-size:clamp(1.65rem,2.2vw,2.2rem); font-weight:750; line-height:1.2; }
.ft-hub .ft-atlas-preview__bottom > span { display:block; color:#c0d9dc; margin-top:.3rem; font:500 .8125rem/1.5 var(--ft-mono); }
.ft-hub .ft-curator { display:flex; align-items:baseline; gap:.6rem 1.5rem; padding-block:1rem 1.3rem; border-top:1px solid #c5d1d0; font-size:.8125rem; line-height:1.6; color:#536c75; }
.ft-hub .ft-curator strong { color:#283f4a; }
.ft-hub .ft-curator > span { flex:1; }
.ft-hub .ft-curator a { color:#536c75; font-size:.8125rem; text-decoration:none; white-space:nowrap; }
.ft-hub .frh-dates { background:var(--ft-ink); border:0; }
.ft-hub .frh-dates__grid { min-height:112px; }
.ft-hub .frh-dates__grid > a { color:#fff; padding-block:1.5rem; border-color:#37515f; gap:1rem; }
.ft-hub .frh-dates__grid > a:hover { background:#143849; }
.ft-hub .frh-dates__date { font-family:var(--ft-display); font-stretch:85%; font-size:2.6rem; font-weight:780; color:#fff; }
.ft-hub .frh-dates__date small { color:var(--ft-cyan); font:600 .8125rem/1.4 var(--ft-mono); }
.ft-hub .frh-dates__grid > a > span:nth-child(2) { font-size:1rem; }
.ft-hub .frh-dates__grid > a > span:nth-child(2) small { color:#c1d3db; font-size:.8125rem; }
.ft-hub .frh-dates__grid > a > span:last-child { color:var(--ft-cyan); }
.ft-hub .ft-spotlight { padding-block:clamp(2.5rem,5vw,4.2rem); background:#fff; border-bottom:1px solid var(--frh-line); }
.ft-hub .ft-spotlight__grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(250px,.8fr); align-items:center; gap:clamp(2rem,8vw,7rem); }
.ft-hub .ft-kicker { font:650 .8125rem/1.6 var(--ft-mono); letter-spacing:.08em; color:var(--brand-blue); margin-bottom:.7rem; }
.ft-hub .ft-spotlight h2 { font-size:clamp(2.8rem,4.5vw,4.6rem); font-weight:800; line-height:1; letter-spacing:-.045em; }
.ft-hub .ft-spotlight__lead { margin-top:.85rem; font-size:1.25rem; font-family:var(--ft-display); font-weight:650; line-height:1.4; color:#203d4b; }
.ft-hub .ft-spotlight__copy > p:not([class]) { margin-top:1rem; max-width:64ch; color:#4c626c; line-height:1.7; font-size:.98rem; }
.ft-hub .ft-spotlight__links { display:flex; flex-wrap:wrap; gap:.6rem 1.25rem; margin-top:1.5rem; }
.ft-hub .ft-spotlight__identity { border-left:1px solid #d4dddf; padding-left:2rem; }
.ft-hub .ft-spotlight__logo img { width:100%; height:auto; display:block; margin:0 0 1.5rem; }
.ft-hub .ft-spotlight__date { color:var(--ft-red); font-family:var(--ft-display); font-stretch:85%; font-size:2rem; line-height:1.1; font-weight:780; }
.ft-hub .ft-spotlight__date span { display:block; font:600 .8125rem/1.5 var(--ft-mono); color:#536971; margin-top:.35rem; }
.ft-hub .ft-spotlight__place { margin-top:.65rem; color:#364f5b; font-size:.85rem; }
.ft-hub .frh-section { padding-block:clamp(2.5rem,4.8vw,4rem); }
.ft-hub .frh-overline { font:650 .8125rem/1.5 var(--ft-mono); letter-spacing:.08em; color:var(--brand-blue); }
.ft-hub .frh-section-heading { margin-bottom:1.65rem; align-items:center; }
.ft-hub .frh-section-heading h2 { font-size:clamp(2.1rem,3.5vw,3.3rem); font-weight:760; }
.ft-hub .frh-feature-grid { display:block; border-top:2px solid var(--ft-ink); }
.ft-hub .frh-feature { display:grid; grid-template-columns:minmax(100px,max-content) minmax(0,1fr) 190px; gap:0 1.75rem; align-items:start; padding:1.6rem .3rem; border:0; border-bottom:1px solid #c6d0d1; border-radius:0; }
.ft-hub .frh-feature__date { grid-column:1; grid-row:1/6; font-family:var(--ft-display); font-size:2.8rem; line-height:1; font-weight:750; white-space:nowrap; }
.ft-hub .frh-feature__date span { display:block; margin-top:.35rem; font:550 .8125rem/1.4 var(--ft-mono); }
.ft-hub .frh-feature__type { grid-column:2; margin-top:0 !important; font:600 .8125rem/1.5 var(--ft-mono); color:var(--brand-blue); }
.ft-hub .frh-feature h3 { grid-column:2; margin-top:.4rem; font-size:1.55rem; font-weight:730; }
.ft-hub .frh-feature > p:not([class]) { grid-column:2; margin-top:.7rem; max-width:75ch; }
.ft-hub .frh-feature__meta { grid-column:2; margin:.65rem 0 0 !important; }
.ft-hub .frh-feature .frh-link { grid-column:3; grid-row:2/5; width:100%; margin-top:.35rem; padding:.75rem 0; border:0; align-self:center; justify-content:space-between; }
.ft-hub .frh-section--calendar { background:#e8eeec; border:0; }
.ft-hub .ft-day-tools { margin-bottom:1.4rem; }
.ft-hub .ft-day-tools > p { color:#415c66; font:600 .8125rem/1.5 var(--ft-mono); margin-bottom:.6rem; }
.ft-hub .ft-day-rail { display:flex; gap:6px; overflow-x:auto; padding:2px 2px 10px; scroll-padding-inline:2px; scrollbar-color:#8ba3a8 transparent; scrollbar-width:thin; }
.ft-hub .ft-day-rail button { flex:1 0 59px; min-height:67px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:.65rem .7rem; border:1px solid #bdcece; background:#f8faf8; color:#173d4f; font:700 1.35rem/1 var(--ft-display); cursor:pointer; border-radius:8px; }
.ft-hub .ft-day-rail button:first-child { flex-basis:100px; font-size:.9rem; }
.ft-hub .ft-day-rail button small { font:550 .8125rem/1.3 var(--ft-mono); }
.ft-hub .ft-day-rail button:hover { border-color:#547e8a; background:#fff; }
.ft-hub .ft-day-rail button[aria-pressed="true"] { color:#fff; background:var(--ft-ink); border-color:var(--ft-ink); }
.ft-hub .frh-tools { gap:1rem; align-items:start; }
.ft-hub .frh-filters { gap:5px; }
.ft-hub .frh-filters button { border-radius:8px; font-size:.82rem; min-height:44px; background:transparent; border-color:#acbfc1; }
.ft-hub .frh-filters button[aria-pressed="true"] { background:#fff; color:#073b60; border-color:#073b60; box-shadow:inset 0 -2px #073b60; }
.ft-hub .frh-search input { border-radius:8px; min-height:44px; font-size:1rem; background:#fff; border-color:#acbfc1; }
.ft-hub .frh-calendar { grid-template-columns:1fr; gap:0; border-top:2px solid var(--ft-ink); }
.ft-hub .frh-event { grid-template-columns:minmax(90px,max-content) minmax(0,1fr); gap:1.5rem; padding:1.65rem .3rem; border:0; border-bottom:1px solid #c2cdcd; background:transparent; border-radius:0; }
.ft-hub .frh-event__date { border:0; padding:0; text-align:left; }
.ft-hub .frh-event__date span:first-child { font-family:var(--ft-display); font-size:2.45rem; line-height:1; font-weight:750; }
.ft-hub .frh-event__date span:last-child { font-family:var(--ft-mono); margin-top:.5rem; color:#395d6e; }
.ft-hub .frh-event__body { display:grid; grid-template-columns:minmax(0,1fr) 225px; column-gap:2rem; }
.ft-hub .frh-event__tags,.ft-hub .frh-event h3,.ft-hub .frh-event__location,.ft-hub .frh-event__description,.ft-hub .frh-event__note { grid-column:1; }
.ft-hub .frh-event h3 { font-size:1.45rem; font-weight:740; line-height:1.22; margin-top:.5rem; }
.ft-hub .frh-event__location { font-size:.875rem; color:var(--brand-muted); margin-top:.55rem !important; }
.ft-hub .frh-source-note { font-size:.875rem; color:var(--brand-muted); }
.ft-hub .frh-event__description { max-width:85ch; font-size:1rem; }
.ft-hub .frh-event__footer { grid-column:2; grid-row:1/6; align-self:center; display:flex; align-items:start; justify-content:start; flex-direction:column; gap:.6rem; margin:0; padding:0 0 0 1.25rem; border:0; border-left:1px solid #b8c9ca; }
.ft-hub .frh-event__footer a { display:flex; justify-content:space-between; gap:.6rem; width:100%; font-size:.83rem; line-height:1.6; padding-block:.45rem; }
.ft-hub .frh-status { font:550 .8125rem/1.5 var(--ft-mono); }
.ft-hub .frh-event__note { max-width:90ch; }
/* Practical orientation precedes the detailed programme. */
.ft-hub .frh-section--essentials { background:#fff; border-bottom:1px solid var(--frh-line); }
.ft-hub .frh-practical { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(2rem,5vw,4.5rem); align-items:start; }
.ft-hub .frh-practical h2 { font-size:clamp(2rem,3.4vw,3.2rem); line-height:1.08; letter-spacing:-.035em; }
.ft-hub .frh-practical p { margin-top:1rem; max-width:64ch; color:#354f5c; font-size:1rem; line-height:1.65; }
.ft-hub .frh-practical .frh-practical__note { font-size:.875rem; color:#4c626c; border-left:2px solid var(--brand-blue); padding-left:1rem; }
.ft-hub .frh-practical .frh-resource-list { align-self:stretch; }
.ft-hub .frh-practical .frh-resource { border-radius:0; padding:1rem 0; }
.ft-hub .frh-answers details { border-radius:8px; background:#fff; }
.ft-hub .frh-story-grid > a { border-radius:8px; background:#fff; border:0; border-top:3px solid var(--brand-blue); }
.ft-hub .frh-section--contact { background:var(--ft-ink); }
.ft-hub .frh-section--contact .frh-overline { color:var(--brand-on-ink); }
.ft-hub .frh-contact__form { border-radius:8px; }
.ft-hub :is(.fr-field input,.fr-field textarea,.fr-field select) { border-radius:8px; }
.ft-hub .frh-button { border-radius:8px; }
@media(min-width:1600px) { .ft-hub .ft-hero h1 { font-size:7rem; } }
@media(max-width:1050px) {
 .ft-hub .ft-hero__grid { gap:2rem; grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr); }
 .ft-hub .ft-hero h1 { font-size:clamp(3.7rem,7vw,5.5rem); }
 .ft-hub .ft-curator { flex-wrap:wrap; }
 .ft-hub .ft-curator > span { flex-basis:65%; }
 .ft-hub .frh-feature { grid-template-columns:minmax(80px,max-content) minmax(0,1fr) 155px; gap:0 1.2rem; }
 .ft-hub .frh-event__body { grid-template-columns:minmax(0,1fr) 180px; column-gap:1.3rem; }
 .ft-hub .ft-spotlight__grid { gap:2.5rem; }
}
@media(max-width:760px) {
 .ft-hub .frh-shell { width:calc(100% - 2rem); }
 .ft-hub .frh-practical { grid-template-columns:1fr; gap:1.5rem; }
 .ft-hub .ft-hero__top { flex-wrap:wrap; }
 .ft-hub .ft-hero__top p { flex:1 1 180px; }
 .ft-hub .ft-hero__top p { font-size:.8125rem; max-width:32ch; }
 .ft-hub .ft-hero__top p > span { padding-inline:.3rem; }
 .ft-hub .ft-hero__grid { grid-template-columns:1fr; gap:1.5rem; padding-block:1.6rem 1.4rem; }
 .ft-hub .ft-hero h1 { font-size:clamp(3.45rem,11.8vw,6rem); letter-spacing:-.055em; }
 .ft-hub .ft-edition { margin-bottom:1rem; font-size:.8125rem; }
 .ft-hub .ft-hero__intro { font-size:1rem; margin-top:1.1rem; max-width:43ch; }
 .ft-hub .ft-hero__actions { gap:.5rem 1rem; margin-top:1.1rem; }
 .ft-hub .ft-action { font-size:.85rem; min-height:46px; padding:.75rem .8rem; }
 .ft-hub .ft-action--plain { padding-inline:.1rem; }
 .ft-hub .ft-atlas-preview { aspect-ratio:2.5; max-height:190px; }
 .ft-hub .ft-atlas-preview img { object-position:50% 52%; }
 .ft-hub .ft-atlas-preview__top { left:.9rem; right:.9rem; top:.7rem; font-size:.8125rem; }
 .ft-hub .ft-atlas-preview__bottom { padding:2rem .9rem .9rem; }
 .ft-hub .ft-atlas-preview__bottom strong { font-size:1.7rem; }
 .ft-hub .ft-atlas-preview__bottom > span { font-size:.8125rem; }
 .ft-hub .ft-curator { padding-block:.8rem 1rem; display:block; font-size:.8125rem; }
 .ft-hub .ft-curator strong { display:block; margin-bottom:.2rem; }
 .ft-hub .ft-curator a { display:inline-flex; align-items:center; min-height:24px; }
 .ft-hub .frh-dates__grid { grid-template-columns:1fr; }
 .ft-hub .frh-dates__grid > a { display:grid; grid-template-columns:minmax(82px,max-content) minmax(0,1fr) auto; padding:.95rem .2rem; gap:.8rem; border-left:0; }
 .ft-hub .frh-dates__grid > a + a { border-top:1px solid #37515f; border-left:0; }
 .ft-hub .frh-dates__date { font-size:1.9rem; white-space:nowrap; }
 .ft-hub .frh-dates__date small { display:block; margin-top:.25rem; font-size:.8125rem; }
 .ft-hub .frh-dates__grid > a > span:nth-child(2) { font-size:.89rem; }
 .ft-hub .ft-spotlight__grid { grid-template-columns:1fr; gap:1.75rem; }
 .ft-hub .ft-spotlight h2 { font-size:3rem; }
 .ft-hub .ft-spotlight__lead { font-size:1.2rem; }
 .ft-hub .ft-spotlight__identity { display:grid; grid-template-columns:minmax(0,1fr) 1fr; gap:.4rem 1rem; padding:1.1rem 0 0; border-left:0; border-top:1px solid #d4dddf; align-items:center; }
 .ft-hub .ft-spotlight__logo { grid-row:1/3; }
 .ft-hub .ft-spotlight__logo img { margin:0; }
 .ft-hub .ft-spotlight__date { font-size:1.5rem; }
 .ft-hub .ft-spotlight__place { grid-column:2; margin-top:0; font-size:.8125rem; }
 .ft-hub .frh-feature { grid-template-columns:minmax(76px,max-content) minmax(0,1fr); padding:1.3rem 0; gap:0 1rem; }
 .ft-hub .frh-feature__date { font-size:1.85rem; white-space:nowrap; }
 .ft-hub .frh-feature h3 { font-size:1.35rem; }
 .ft-hub .frh-feature .frh-link { grid-column:2; grid-row:auto; margin-top:.7rem; padding:.5rem 0; font-size:.84rem; }
 .ft-hub .frh-feature > p:not([class]) { font-size:1rem; }
 .ft-hub .frh-section-heading { align-items:start; }
 .ft-hub .frh-section-heading h2 { font-size:2rem; }
 .ft-hub .frh-tools { flex-direction:column; }
 .ft-hub .frh-search { width:100%; }
 .ft-hub .frh-search input { width:100%; font-size:16px; }
 .ft-hub .frh-filters button { font-size:.8125rem; }
 .ft-hub .frh-event { grid-template-columns:minmax(59px,max-content) minmax(0,1fr); gap:1rem; padding:1.4rem 0; }
 .ft-hub .frh-event__date span:first-child { font-size:1.5rem; white-space:nowrap; }
 .ft-hub .frh-event__body { display:block; }
 .ft-hub .frh-event h3 { font-size:1.35rem; }
 .ft-hub .frh-event__footer { border-left:0; border-top:1px solid #c9d4d3; padding:.55rem 0 0; margin-top:.65rem; gap:.25rem; }
 .ft-hub .frh-event__description { font-size:1rem; }
 .ft-hub .frh-event__footer a { width:auto; max-width:100%; }
 .ft-hub .frh-event__tags { font-size:.8125rem; }
 .ft-hub .ft-day-rail button { flex-grow:0; min-width:56px; }
 .ft-hub .ft-day-rail button:first-child { flex-basis:100px; }
 .ft-hub .frh-contact__form :is(input,textarea,select) { font-size:16px; }
}
@media(max-width:360px) {
 .ft-hub .ft-hero h1 { font-size:clamp(2.35rem,11.8vw,2.7rem); }
 .ft-hub .ft-hero__actions { align-items:stretch; }
 .ft-hub .ft-action--primary { flex:1; }
 .ft-hub .ft-spotlight__links .ft-action { width:100%; }
}
