/*
Theme Name: BREATHE27
Theme URI: https://breatheconference.eu/
Description: Edition-specific public presentation for BREATHE27.
Version: 0.2.0
Requires at least: 6.7
Requires PHP: 8.2
Text Domain: breathe27
*/

/* A16: reference typography is self-hosted; no external font request. */
@font-face { font-family: Manrope; src: url("assets/fonts/Manrope-variable.ttf") format("truetype"); font-style: normal; font-weight: 200 800; font-display: swap; }
@font-face { font-family: Manrope; src: url("assets/fonts/Manrope-500.ttf") format("truetype"); font-style: normal; font-weight: 500; font-display: swap; }
@font-face { font-family: Manrope; src: url("assets/fonts/Manrope-600.ttf") format("truetype"); font-style: normal; font-weight: 600; font-display: swap; }
@font-face { font-family: Syne; src: url("assets/fonts/Syne-variable.ttf") format("truetype"); font-style: normal; font-weight: 400 800; font-display: swap; }
@font-face { font-family: Syne; src: url("assets/fonts/Syne-700.ttf") format("truetype"); font-style: normal; font-weight: 700; font-display: swap; }
@font-face { font-family: Syne; src: url("assets/fonts/Syne-800.ttf") format("truetype"); font-style: normal; font-weight: 800; font-display: swap; }
:root {
  --b27-ref-bg: #050c12;
  --b27-ref-night: #081522;
  --b27-ref-foam: #12223a;
  --b27-ref-ink: #f2f0e9;
  --b27-ref-mist: var(--b27-ref-muted);
  --b27-ref-muted: #b8c1cb;
  --b27-ref-line: rgba(242, 240, 233, .14);
  --b27-control-border: #728093;
  --b27-ref-gold: #f2c35a;
  --b27-ref-light-gold: #f3d48a;
  --b27-ref-warm: #f0c56a;
  --b27-navy-950: var(--b27-ref-bg);
  --b27-navy-900: var(--b27-ref-night);
  --b27-navy-800: var(--b27-ref-foam);
  --b27-cream-50: var(--b27-ref-bg);
  --b27-cream-100: var(--b27-ref-night);
  --b27-ink-950: var(--b27-ref-ink);
  --b27-slate-500: var(--b27-ref-muted);
  --b27-teal-500: var(--b27-ref-gold);
  --b27-teal-600: var(--b27-ref-gold);
  --b27-brass-500: var(--b27-ref-gold);
  --b27-line-dark: var(--b27-ref-line);
  --b27-line-light: var(--b27-ref-line);
  --b27-ink: var(--b27-ink-950);
  --b27-navy: var(--b27-navy-950);
  --b27-cream: var(--b27-cream-50);
  --b27-paper: var(--b27-cream-50);
  --b27-teal: var(--b27-teal-600);
  --b27-brass: var(--b27-brass-500);
  --b27-muted: var(--b27-slate-500);
  --b27-line: var(--b27-line-light);
  --b27-focus: var(--b27-teal-500);
  --b27-fast: 160ms;
  --b27-medium: 320ms;
  --b27-aperture: 380ms;
  --b27-ease-standard: cubic-bezier(.2, .8, .2, 1);
  --b27-ease: cubic-bezier(.22, 1, .36, 1);
  --b27-content-width: 1200px;
  --b27-gutter: 48px;
  --b27-content-inset: max(var(--b27-gutter), calc((100% - var(--b27-content-width)) / 2));
  --b27-radius: 8px;
  --b27-header-height: 72px;
  --b27-type-page: 3rem;
  --b27-type-section: 2.25rem;
  --b27-type-display: 4rem;
  --b27-type-session: 1.25rem;
  --b27-type-body: 1rem;
  --b27-type-meta: .875rem;
  --b27-type-utility: .75rem;
  --b27-weight-display: 700;
  --b27-weight-heading: 600;
  --b27-weight-session: 600;
  --b27-weight-body: 400;
  --b27-weight-utility: 650;
  --b27-space-section: 64px;
  --b27-font-sans: "Manrope", ui-sans-serif, system-ui, sans-serif;
  --b27-font-display: "Syne", ui-sans-serif, system-ui, sans-serif;
  color-scheme: dark;
  font-family: var(--b27-font-sans);
}

* { box-sizing: border-box; }
h1, h2, h3 { font-family: var(--b27-font-display); }
html { scroll-behavior: smooth; scroll-padding-block-start: calc(var(--b27-header-height) + 16px); }
body { display: flex; flex-direction: column; min-height: 100svh; margin: 0; background: var(--b27-ref-bg); color: var(--b27-ink); font-family: var(--b27-font-sans); font-size: var(--b27-type-body); font-weight: var(--b27-weight-body); line-height: 1.55; }
a { color: inherit; text-underline-offset: .22em; text-decoration-thickness: 1px; }
img { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
button { min-block-size: 44px; border-radius: var(--b27-radius); cursor: pointer; }
input:not([type="checkbox"]):not([type="radio"]), select, textarea { min-block-size: 44px; max-inline-size: 100%; padding: .65rem .8rem; border: 1px solid var(--b27-control-border); border-radius: var(--b27-radius); color: var(--b27-ink); background: var(--b27-ref-night); }
input::placeholder, textarea::placeholder { color: var(--b27-muted); opacity: 1; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }

.b27-skip-link { position: fixed; inset: .5rem auto auto .5rem; z-index: 1000; padding: .75rem 1rem; background: var(--b27-cream); color: var(--b27-ink); transform: translateY(-160%); }
.b27-skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid var(--b27-teal-500); outline-offset: 3px; box-shadow: 0 0 0 6px var(--b27-navy-950); }

.b27-site-header { position: sticky; inset-block-start: 0; z-index: 100; border-block-end: 1px solid var(--b27-line-dark); background: var(--b27-navy-950); color: var(--b27-ink); }
.b27-site-header__inner.b27-container { inline-size: min(1440px, calc(100% - 64px)); }
.b27-site-header__inner { display: grid; grid-template-columns: auto 1fr auto; min-height: 72px; align-items: center; gap: 24px; }
.b27-wordmark { display: inline-flex; min-inline-size: 44px; min-block-size: 44px; align-items: center; font-size: .92rem; font-weight: 780; letter-spacing: .11em; text-decoration: none; }
.b27-wordmark__edition { color: var(--b27-brass-500); }
.b27-nav { justify-self: end; }
.b27-nav ul { margin: 0; padding: 0; list-style: none; }
.b27-nav__primary { display: flex; flex-wrap: nowrap; align-items: center; gap: 20px; }
.b27-nav a, .b27-control-link, .b27-register-link { display: inline-flex; min-inline-size: 44px; min-block-size: 44px; align-items: center; justify-content: center; font-size: .88rem; font-weight: 650; letter-spacing: .015em; text-transform: none; }
.b27-wordmark, .b27-nav a, .b27-control-link { min-inline-size: 44px; min-block-size: 44px; }
.b27-nav a, .b27-nav__about-toggle { text-decoration: none; font-size: 14px; white-space: nowrap; }
.b27-nav__about { position: relative; }
.b27-nav__about-toggle { display: inline-flex; min-height: 44px; align-items: center; gap: 6px; padding: 0; border: 0; background: transparent; color: var(--b27-ink); font-family: inherit; font-weight: 650; cursor: pointer; }
.b27-nav__about-toggle[data-active="true"] { color: var(--b27-ref-gold); }
.b27-nav .b27-nav__submenu { position: absolute; inset-block-start: 100%; inset-inline-start: 0; z-index: 1; width: 240px; padding: 8px; border: 1px solid var(--b27-control-border); background: var(--b27-navy-950); }
.b27-nav__submenu a { display: flex; justify-content: flex-start; padding-inline: 12px; min-height: 44px; }
.b27-nav__submenu[hidden] { display: none; }
.b27-nav a.b27-nav__my-breathe { padding-inline: 12px; border: 1px solid var(--b27-control-border); border-radius: var(--b27-radius); background: transparent; }
.b27-nav a:hover, .b27-nav a[aria-current], .b27-nav .current-menu-item a { text-decoration: underline; text-decoration-color: var(--b27-ref-gold); text-underline-offset: .5rem; }
.b27-nav a[aria-current] { color: var(--b27-ref-gold); }
.b27-control-link { padding: .55rem .85rem; border: 1px solid var(--b27-control-border); border-radius: var(--b27-radius); text-decoration: none; }
.b27-control-link:hover { background: var(--b27-ref-foam); text-decoration: underline; }
.b27-register-link { min-inline-size: 7.25rem; padding-inline: 1rem; border: 1px solid var(--b27-brass-500); border-radius: var(--b27-radius); background: var(--b27-ref-gold); color: var(--b27-ref-bg); text-decoration: none; }
.b27-register-link:hover { background: var(--b27-brass-500); color: var(--b27-navy-950); }

.b27-shell { flex: 1 0 auto; min-inline-size: 0; }
/* One content grid; full-bleed backgrounds and curtain stage remain outside it. */
.b27-container, .b27-entity { inline-size: min(var(--b27-content-width), calc(100% - 2 * var(--b27-gutter))); margin-inline: auto; min-inline-size: 0; }
.b27-filter-chip { display: inline-flex; align-items: center; gap: 8px; min-block-size: 44px; padding: 8px 12px; border: 1px solid var(--b27-control-border); border-radius: var(--b27-radius); background: var(--b27-ref-night); color: var(--b27-ink); font-family: var(--b27-font-sans); font-size: 14px; line-height: 1.45; }
.b27-filter-chip::before { content: ''; display: inline-block; flex: 0 0 1em; inline-size: 1em; block-size: 1em; background: currentColor; clip-path: polygon(8% 45%, 20% 33%, 42% 55%, 80% 10%, 94% 22%, 43% 83%); opacity: 0; }
.b27-filter-chip[aria-pressed="true"] { border-color: var(--b27-ref-gold); background: #f2c35a14; color: var(--b27-ink); }
.b27-filter-chip[aria-pressed="true"]::before { opacity: 1; color: var(--b27-ref-gold); }
.b27-filter-chip:hover { box-shadow: inset 0 0 0 1px var(--b27-control-border); }
.b27-home-experience { background: var(--b27-navy-950); }
.b27-aperture { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); min-block-size: 650px; background: var(--b27-navy-950); color: var(--b27-ink); }
.b27-aperture__intro { display: flex; min-width: 0; flex-direction: column; justify-content: flex-start; gap: 1rem; padding: 2.5rem var(--b27-gutter); }
.b27-aperture__intro > p { margin: 0; }
.b27-aperture__descriptor { color: #c8d5d2; }
.b27-aperture__event-meta, .b27-eyebrow { margin: 0 0 12px; color: var(--b27-ref-gold); font-size: var(--b27-type-utility); font-weight: var(--b27-weight-utility); letter-spacing: .08em; text-transform: uppercase; }
.b27-aperture h1 { max-width: 12ch; margin: 0; font-size: clamp(2.8rem, 4.5vw, 4.3rem); font-weight: var(--b27-weight-display); letter-spacing: -.052em; line-height: .96; text-wrap: balance; }
.b27-aperture h1 span { display: block; }
.b27-aperture__instruction { max-width: 34rem; margin: clamp(1.5rem, 3vw, 2.5rem) 0 0; color: #c8d5d2; font-size: clamp(.9rem, .84rem + .18vw, 1.02rem); }
.b27-aperture__meta { max-width: 28rem; margin: 2rem 0 0; color: #aebdbb; font-size: .82rem; letter-spacing: .06em; text-transform: uppercase; }
.b27-aperture__visual { position: relative; min-width: 0; min-block-size: 650px; isolation: isolate; background: var(--b27-navy-800); }
.b27-aperture__tracks { position: absolute; inset: 0; display: flex; min-width: 0; background: var(--b27-navy-950); }
.b27-track { --b27-reveal-top: 28%; --b27-reveal-bottom: 28%; position: relative; display: flex; flex: 1 1 0; min-width: 0; min-inline-size: 128px; isolation: isolate; overflow: hidden; transition: flex-grow var(--b27-aperture) var(--b27-ease); }
.b27-track[data-featured="true"] { --b27-reveal-top: 48%; --b27-reveal-bottom: 48%; flex-grow: 2.667; }
.b27-track:not([data-featured="true"]):hover, .b27-track:not([data-featured="true"]):focus-within { --b27-reveal-top: 38%; --b27-reveal-bottom: 38%; }
.b27-track__shutter { position: absolute; z-index: 1; inset: 0; background: var(--b27-navy-950); pointer-events: none; transition: clip-path var(--b27-aperture) var(--b27-ease); }
.b27-track__shutter--left { clip-path: polygon(0 0, calc(50% - var(--b27-reveal-top)) 0, calc(50% - var(--b27-reveal-bottom)) 100%, 0 100%); }
.b27-track__shutter--right { clip-path: polygon(calc(50% + var(--b27-reveal-top)) 0, 100% 0, 100% 100%, calc(50% + var(--b27-reveal-bottom)) 100%); }
.b27-track[data-selected="true"] .b27-track__button { border-block-end-color: var(--b27-teal-500); }
.b27-track:focus-within { box-shadow: inset 0 0 0 2px var(--b27-ink); }
.b27-track__form { position: absolute; z-index: 2; inset-inline: 0; inset-block-end: 0; }
.b27-track__button { position: relative; display: grid; grid-template-rows: 16px 36px; width: 100%; min-block-size: 80px; block-size: 100px; align-content: start; align-items: start; gap: .3rem; padding: .6rem .45rem 1.4rem; border: 0; border-block-end: 3px solid transparent; background: var(--b27-navy-950); color: var(--b27-ink); cursor: pointer; text-align: start; }
.b27-track__selection { position: absolute; inset-inline-start: .45rem; inset-block-end: .3rem; color: #c8d5d2; font-size: .68rem; text-transform: none; }
.b27-track__selection[hidden], .b27-mobile-worlds [hidden] { display: none; }
.b27-track__slot-number, .b27-mobile-worlds { display: none; }
.b27-menu-toggle { min-block-size: 44px; min-inline-size: 64px; border: 1px solid var(--b27-control-border); background: transparent; color: var(--b27-ink); font: inherit; }
.b27-menu-toggle[hidden], .b27-nav[hidden] { display: none; }
.b27-nav .b27-menu-register { display: none; }
.b27-track__number { flex-basis: 100%; color: #bccbc8; font-size: var(--b27-type-utility); font-variant-numeric: tabular-nums; letter-spacing: .04em; }
.b27-track__label { font-size: .9rem; font-weight: var(--b27-weight-session); letter-spacing: .015em; text-transform: uppercase; overflow-wrap: normal; }
.b27-track__image { position: absolute; inset: 0; display: block; width: 100%; max-width: none; height: 100%; object-fit: cover; }
.b27-track__image-missing { position: absolute; z-index: 0; inset: 0; background: var(--b27-navy-800); }
.b27-track[data-active="true"] .b27-track__label, .b27-track[data-preview="true"] .b27-track__label, .b27-track:focus-within .b27-track__label { color: #fff; }
.b27-aperture__summary { margin-block-start: auto; padding-block-start: 1rem; border-block-start: 1px solid var(--b27-line-dark); }
.b27-aperture__summary p { margin: 0 0 .5rem; max-inline-size: 38ch; }
.b27-aperture__summary [data-interest-demo] { padding: 0; border: 0; background: transparent; color: #c8d5d2; font-size: .85rem; }
.b27-aperture__summary [data-interest-link] { display: inline-flex; min-block-size: 44px; align-items: center; color: var(--b27-ink); font-weight: 650; }
.b27-aperture__summary [hidden] { display: none; }
.b27-fixture-banner { margin: 0; padding: .65rem var(--b27-content-inset); border-block-end: 1px solid var(--b27-line); background: var(--b27-ref-night); color: var(--b27-muted); font-size: .875rem; text-align: center; }

.b27-programme { padding: var(--b27-space-section) var(--b27-gutter); background: var(--b27-cream-50); color: var(--b27-ink-950); }
#b27-programme { scroll-margin-block-start: calc(var(--b27-header-height) + 1rem); }
.b27-programme .b27-eyebrow, .b27-my-breathe .b27-eyebrow { color: var(--b27-teal-600); }
.b27-programme__header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(17rem, .7fr); gap: 1.5rem 3rem; max-width: 94rem; margin: 0 auto 1.75rem; padding-block-end: 1.5rem; border-block-end: 1px solid var(--b27-line-light); }
.b27-page-title { max-width: 24ch; margin: 0; font-size: var(--b27-type-page); font-weight: var(--b27-weight-heading); letter-spacing: -.035em; line-height: 1.08; text-wrap: pretty; }
.b27-programme__header h2 { max-width: 22ch; margin: 0; font-size: var(--b27-type-section); font-weight: var(--b27-weight-heading); letter-spacing: -.03em; line-height: 1.1; }
.b27-programme__context { align-self: end; }
.b27-filter-status { max-width: 40rem; margin: 0; color: var(--b27-muted); }
.b27-selected-tracks { display: flex; flex-wrap: wrap; gap: .45rem; margin-block-start: 1rem; }
.b27-selected-track { display: inline-flex; min-height: 44px; align-items: center; gap: .65rem; padding: .35rem .65rem; border: 1px solid var(--b27-line-light); background: transparent; color: var(--b27-ink); font-size: .88rem; font-weight: 650; letter-spacing: 0; }
.b27-selected-track::after { color: var(--b27-teal-600); content: "×"; font-size: 1rem; line-height: 1; }
.b27-programme__links { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; margin-block-start: 1.5rem; }
.b27-programme__links a { display: inline-flex; min-height: 44px; align-items: center; font-size: .9rem; font-weight: 650; letter-spacing: 0; }
.b27-programme__links .b27-programme__primary { padding: .7rem 1rem; border: 1px solid var(--b27-ref-gold); border-radius: var(--b27-radius); background: var(--b27-ref-gold); color: var(--b27-ref-bg); text-decoration: none; }
.b27-session-groups { display: grid; gap: 2rem; max-width: 94rem; margin: 0 auto; }
.b27-programme-day[hidden] { display: none; }
.b27-programme-day__heading { display: flex; align-items: baseline; gap: 1rem; margin: 0 0 1rem; color: var(--b27-ink); font-size: 1rem; font-weight: 560; letter-spacing: .035em; text-transform: uppercase; }
.b27-programme-day__date { font-size: clamp(2.8rem, 4vw, 4rem); font-weight: 520; line-height: 1; letter-spacing: -.05em; }
.b27-programme-day__label { max-inline-size: 24ch; }
.b27-session-list { display: grid; gap: 1px; max-width: 94rem; margin: 0 auto; padding: 0; background: var(--b27-line-light); list-style: none; }
.b27-session { background: var(--b27-cream-50); }
.b27-session[hidden], .b27-featured-faculty[hidden], .b27-featured-person[hidden] { display: none; }
.b27-session__overview { display: grid; grid-template-columns: minmax(9rem, .27fr) minmax(0, 1fr) minmax(9rem, .28fr); gap: 1.25rem; min-height: 5rem; align-items: start; padding: 1.3rem 1rem .8rem; }
.b27-session__time { color: var(--b27-teal-600); font-size: .88rem; font-variant-numeric: tabular-nums; font-weight: 720; letter-spacing: .03em; }
.b27-session__overview p, .b27-session__title { margin: 0; }
.b27-session__title { font-family: var(--b27-font-sans); font-size: var(--b27-type-session); font-weight: var(--b27-weight-session); letter-spacing: -.015em; line-height: 1.3; }
.b27-session__title a { display: flex; min-block-size: 44px; align-items: flex-start; justify-content: space-between; gap: .75rem; padding-block: .1rem .5rem; text-decoration-color: transparent; overflow-wrap: anywhere; }
.b27-session__title a:hover { color: var(--b27-teal-600); text-decoration-color: currentColor; }
.b27-session__title a:focus-visible { outline: 2px solid var(--b27-teal-600); outline-offset: 4px; }
.b27-session__open { flex: 0 0 auto; color: var(--b27-teal-600); font-size: 1.2rem; }
.b27-session__context { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .25rem .65rem; color: var(--b27-muted); font-size: var(--b27-type-meta); font-weight: 500; letter-spacing: 0; text-align: end; }
.b27-session__format, .b27-session__room { flex: 1 0 100%; }
.b27-session__track + .b27-session__track::before { content: "· "; }
.b27-session__status { flex: 1 0 100%; color: #8d2c1d; }
.b27-session__disclosure { background: var(--b27-cream-50); }
.b27-session__disclosure[open] { background: var(--b27-cream-100); }
.b27-session__disclosure summary { display: inline-flex; min-height: 44px; align-items: center; margin-inline-start: calc(27% + 1.35rem); padding: .45rem .5rem; color: var(--b27-muted); cursor: pointer; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.b27-session__disclosure summary::marker { color: var(--b27-teal-600); }
.b27-session__disclosure[open] summary { color: var(--b27-ink); }
.b27-session__body { max-width: 60rem; padding: 1.6rem 1rem 2rem calc(27% + 1.35rem); }
.b27-session__body > :first-child { margin-block-start: 0; }
.b27-session__meta { color: var(--b27-muted); }
.b27-session-faculty { display: flex; flex-wrap: wrap; gap: .2rem .65rem; margin: .4rem 0 0; color: var(--b27-muted); font-size: .95rem; overflow-wrap: anywhere; }
.b27-session-faculty__label { color: var(--b27-teal-600); font-size: .85rem; font-weight: 650; letter-spacing: 0; }
.b27-session-faculty__names a { color: var(--b27-ink); font-weight: 620; }
.b27-session__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; margin-block-start: 1.25rem; }
.b27-session__actions--row { margin: 0; padding: 0 1rem .8rem; }
.b27-session__actions--row:not(:has(button:not([hidden]))) { display: none; }
.b27-save { min-height: 44px; padding: .55rem .9rem; border: 1px solid var(--b27-ink); background: transparent; color: var(--b27-ink); cursor: pointer; }
.b27-save[aria-pressed="true"] { border-color: var(--b27-ref-gold); background: var(--b27-ref-gold); color: var(--b27-ref-bg); }
.b27-empty, .b27-error { max-width: 48rem; margin: 1.25rem 0; padding: 1rem 1.25rem; border-inline-start: 3px solid var(--b27-teal-600); background: var(--b27-cream-100); }
.b27-error__retry { min-height: 44px; padding: .65rem 1rem; border: 0; background: var(--b27-ref-gold); color: var(--b27-ref-bg); font-weight: 700; }
.b27-entity { padding-block: var(--b27-space-section); }
.b27-entity .b27-eyebrow { color: var(--b27-teal-600); }
.b27-entity__lede { max-width: 65ch; font-size: 1.08rem; line-height: 1.6; }
.b27-portrait { width: min(22rem, 100%); aspect-ratio: 4 / 5; object-fit: cover; }
.b27-session-detail__header { max-inline-size: 68rem; padding-block-end: 1.25rem; border-block-end: 1px solid var(--b27-line-light); }
.b27-session-detail__header .b27-page-title { max-inline-size: 26ch; font-size: clamp(1.85rem, 1.5rem + 1.7vw, 3rem); }
.b27-session-detail__header .b27-entity__lede { margin-block: 1rem .6rem; font-size: 1.05rem; font-weight: 600; }
.b27-session-detail__metadata { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem 1.5rem; margin-block: 1rem 0; padding-block-start: 1rem; border-block-start: 1px solid var(--b27-line-light); font-size: .95rem; }
.b27-session-detail__metadata > div { min-inline-size: 0; }
.b27-session-detail__metadata dt { margin-block-end: .3rem; color: var(--b27-muted); font-size: .9rem; }
.b27-session-detail__metadata dd { margin: 0; overflow-wrap: anywhere; }
.b27-session-detail__faculty { grid-column: 1 / -1; }
.b27-session-detail__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin-block: 1rem; }
.b27-session-detail__content { max-inline-size: 68ch; margin-block-start: 1.5rem; font-size: 1.05rem; line-height: 1.6; }
.b27-session-detail__content h2 { margin-block: 1.5rem .6rem; font-size: 1.4rem; line-height: 1.25; }
.b27-demo-note { max-inline-size: 72ch; margin-block: 12px 16px; padding: 12px 16px; border-inline-start: 3px solid var(--b27-brass-500); background: var(--b27-ref-night); color: var(--b27-ink); font-size: 14px; line-height: 1.45; }
.b27-browser-save-note { max-inline-size: 68ch; margin-block: .5rem 1rem; color: var(--b27-muted); font-size: .9rem; line-height: 1.5; }

.b27-featured-faculty { padding: var(--b27-space-section) var(--b27-gutter); background: var(--b27-cream-100); }
.b27-featured-faculty__header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem 2rem; max-width: 94rem; align-items: end; margin: 0 auto 1.5rem; }
.b27-featured-faculty .b27-eyebrow, .b27-faculty-directory .b27-eyebrow, .b27-faculty-profile .b27-eyebrow { color: var(--b27-teal-600); }
.b27-featured-faculty h2 { max-width: 26ch; margin: 0; font-size: var(--b27-type-section); font-weight: var(--b27-weight-heading); letter-spacing: -.03em; line-height: 1.1; }
.b27-featured-faculty__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; max-width: 94rem; margin: 0 auto; padding: 0; background: var(--b27-cream-100); list-style: none; }
.b27-featured-person { min-width: 0; border-inline-end: 1px solid var(--b27-line-light); background: var(--b27-cream-100); }
.b27-featured-faculty__list[data-visible-count="1"] { grid-template-columns: minmax(0, 44rem); justify-content: center; }
.b27-featured-faculty__list[data-visible-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 2rem; }
.b27-featured-faculty__list[data-visible-count="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.b27-featured-faculty__list:is([data-visible-count="1"], [data-visible-count="2"]) .b27-featured-person:not(.b27-featured-person--text) { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1fr); align-items: start; border-inline-end: 0; }
.b27-featured-faculty__list:is([data-visible-count="1"], [data-visible-count="2"]) .b27-featured-person__body { padding-block: .5rem; }
.b27-featured-person__portrait { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.b27-featured-person__index { display: flex; min-height: 3.5rem; align-items: center; padding: 1rem 1rem 0; border-block-start: 2px solid var(--b27-navy-800); color: var(--b27-muted); font-size: .72rem; letter-spacing: .12em; }
.b27-featured-person__body { padding: 1.35rem 1rem 1.75rem; }
.b27-featured-person h3 { margin: 0 0 .6rem; font-size: clamp(1.2rem, 1rem + .5vw, 1.55rem); line-height: 1.18; overflow-wrap: anywhere; }
.b27-featured-person p { margin: .3rem 0; color: var(--b27-muted); overflow-wrap: anywhere; }
.b27-featured-person__credentials { color: var(--b27-ink) !important; font-weight: 650; }
.b27-featured-person__sessions { display: inline-flex; min-height: 44px; align-items: center; margin-block-start: .5rem; color: var(--b27-teal-600); font-size: .9rem; font-weight: 650; letter-spacing: 0; }
.b27-faculty-worlds { display: flex; flex-wrap: wrap; gap: .25rem .8rem; margin: .65rem 0 0; padding: 0; list-style: none; color: var(--b27-teal-600); font-size: .9rem; font-weight: 600; letter-spacing: 0; }
.b27-faculty-worlds li + li::before { margin-inline-end: .8rem; color: var(--b27-muted); content: "·"; }

.b27-faculty-directory { padding-block: var(--b27-space-section); }
.b27-faculty-directory__header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .8fr); gap: 1.25rem 2rem; align-items: end; margin-block-end: 1.75rem; }
.b27-faculty-directory__header .b27-eyebrow { grid-column: 1 / -1; margin-block-end: -1rem; }
.b27-faculty-directory__lede { max-width: 40rem; margin: 0; color: var(--b27-muted); font-size: clamp(1.05rem, 1rem + .35vw, 1.3rem); }
.b27-faculty-filters { margin-block-end: 1.25rem; }
.b27-faculty-filters fieldset { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0 0 1.25rem; border: 0; border-block-end: 1px solid var(--b27-line-light); }
.b27-faculty-directory__status { margin: 0 0 1rem; color: var(--b27-muted); }
.b27-faculty-directory__list { margin: 0; padding: 0; border-block-end: 1px solid var(--b27-line-light); list-style: none; }
.b27-faculty-row { display: grid; grid-template-columns: minmax(9rem, 13rem) minmax(14rem, .7fr) minmax(18rem, 1fr); gap: clamp(1.5rem, 4vw, 4rem); padding: 2rem 0; border-block-start: 1px solid var(--b27-line-light); }
.b27-faculty-row--text { grid-template-columns: minmax(14rem, .7fr) minmax(18rem, 1fr); }
.b27-faculty-row__portrait { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.b27-faculty-row__identity h2 { margin: 0 0 .75rem; font-size: clamp(1.5rem, 1.2rem + 1vw, 2.25rem); line-height: 1.1; overflow-wrap: anywhere; }
.b27-faculty-row__identity p { margin: .3rem 0; color: var(--b27-muted); overflow-wrap: anywhere; }
.b27-faculty-row__sessions .b27-eyebrow { margin-block-end: .6rem; }
.b27-faculty-row__sessions ul { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.b27-faculty-row__sessions a { font-weight: 620; }

.b27-faculty-profile__header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(15rem, 21rem); gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.b27-faculty-profile__identity .b27-page-title { max-width: 22ch; overflow-wrap: anywhere; }
.b27-faculty-profile__identity > p { margin: .55rem 0; color: var(--b27-muted); }
.b27-faculty-profile__credentials, .b27-faculty-profile__institution { color: var(--b27-ink) !important; font-weight: 650; }
.b27-faculty-profile__portrait { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.b27-faculty-profile__bio { max-width: 65ch; margin-block-start: 2rem; font-size: 1.08rem; line-height: 1.6; }
.b27-faculty-profile__programme { margin-block-start: 2.5rem; }
.b27-faculty-profile__programme > h2 { margin: 0 0 1.5rem; font-size: var(--b27-type-section); letter-spacing: -.03em; }
.b27-faculty-profile__day { margin-block-start: 2.5rem; }
.b27-faculty-profile__day h3 { margin: 0 0 .75rem; font-size: 1rem; letter-spacing: .08em; text-transform: uppercase; }
.b27-faculty-profile__day ol { margin: 0; padding: 0; border-block-end: 1px solid var(--b27-line-light); list-style: none; }
.b27-faculty-profile__day li { display: grid; grid-template-columns: 8rem minmax(0, 1fr) minmax(10rem, .5fr); gap: 1.25rem; align-items: baseline; padding: 1.25rem 0; border-block-start: 1px solid var(--b27-line-light); }
.b27-faculty-profile__day time { color: var(--b27-teal-600); font-weight: 720; font-variant-numeric: tabular-nums; }
.b27-faculty-profile__day h4, .b27-faculty-profile__day p { margin: 0; }
.b27-faculty-profile__day h4 { font-size: 1.15rem; overflow-wrap: anywhere; }
.b27-faculty-profile__day h4 a { display: inline-flex; align-items: center; min-height: 44px; }
.b27-faculty-profile__day p { color: var(--b27-muted); font-size: .9rem; letter-spacing: 0; }
.b27-faculty-profile__links { margin-block-start: 2.5rem; }
.b27-faculty-profile__links ul { display: flex; flex-wrap: wrap; gap: 1rem; margin: 0; padding: 0; list-style: none; }

.b27-site-footer { padding-block: 40px; border-block-start: 1px solid var(--b27-line); background: var(--b27-ref-night); color: var(--b27-ink); font-size: var(--b27-type-meta); line-height: 1.45; }
.b27-site-footer__inner { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)); gap: 32px; align-items: start; }
.b27-site-footer__inner > * { min-width: 0; }
.b27-site-footer p { margin: 0; overflow-wrap: anywhere; }
.b27-site-footer__mark { display: grid; gap: .5rem; }
.b27-site-footer__mark span { color: var(--b27-muted); }
.b27-site-footer__city { display: inline-block; max-inline-size: 100%; }
.b27-site-footer__mark strong { font-size: 1.1rem; letter-spacing: .1em; }
.b27-site-footer__event { display: grid; gap: 8px; }
.b27-site-footer nav { display: flex; flex-wrap: wrap; gap: 0 20px; }
.b27-site-footer nav.b27-site-footer__group { display: flex; flex-direction: column; align-items: flex-start; gap: 0; }
.b27-site-footer__group h2 { font: 600 14px/1.45 var(--b27-font-sans); margin: 0 0 8px; color: var(--b27-muted); }
.b27-site-footer a { display: inline-flex; min-inline-size: 44px; min-block-size: 44px; align-items: center; text-decoration: none; }
.b27-site-footer a:hover { text-decoration: underline; }
.b27-site-footer__utility { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: start; gap: 12px 32px; border-top: 1px solid var(--b27-line); padding-top: 20px; }
.b27-site-footer__utility > p { padding-block: 12px; }
.b27-site-footer__utility .b27-image-credits { flex: 1 1 260px; }
.b27-image-credits p { max-width: 65ch; }
.b27-site-footer__copyright, .b27-image-credits { color: var(--b27-muted); }
.b27-image-credits { min-inline-size: 0; }
.b27-image-credits ul { padding-inline-start: 1.25rem; }
.b27-image-credits summary { display: inline-flex; min-height: 44px; align-items: center; cursor: pointer; }

/* Upright slots remain side-by-side; full controls move below when columns narrow. */
@media (max-width: 1100px) {
  .b27-aperture__visual { display: grid; grid-template-rows: minmax(0, 1fr) auto; }
  .b27-aperture__tracks { position: relative; inset: auto; min-block-size: 300px; }
  .b27-track, .b27-track[data-featured="true"], .b27-track:not([data-featured="true"]):hover, .b27-track:not([data-featured="true"]):focus-within { flex: 1 1 0; min-inline-size: 0; --b27-reveal-top: 37%; --b27-reveal-bottom: 37%; }
  .b27-track:not([data-featured="true"]):hover, .b27-track:not([data-featured="true"]):focus-within { --b27-reveal-top: 43%; --b27-reveal-bottom: 43%; }
  .b27-track[data-featured="true"] { --b27-reveal-top: 50%; --b27-reveal-bottom: 50%; }
  .b27-track__form { display: none; }
  .b27-track__slot-number { display: block; position: absolute; z-index: 2; inset-block-start: .5rem; inset-inline-start: .35rem; padding: .25rem; background: var(--b27-navy-950); color: var(--b27-ink); font-size: .8rem; }
  .b27-track[data-selected="true"] .b27-track__slot-number::after { content: ' ✓'; }
  .b27-mobile-worlds { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem; padding: .65rem; background: var(--b27-navy-950); }
  .b27-mobile-worlds form { min-inline-size: 0; }
  .b27-mobile-worlds button { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .5rem; width: 100%; min-block-size: 44px; padding: .5rem; border: 1px solid var(--b27-control-border); background: transparent; color: var(--b27-ink); font-size: .85rem; text-align: start; }
  .b27-mobile-worlds button[aria-pressed="true"] { border-color: var(--b27-teal-500); }
  .b27-mobile-worlds [data-mobile-selected] { font-size: .7rem; }
}

@media (max-width: 1199px) {
  :root { --b27-gutter: 32px; --b27-space-section: 48px; --b27-header-height: 64px; --b27-type-page: 2.5rem; --b27-type-section: 1.875rem; --b27-type-display: 3rem; }
}
@media (max-width: 1023px) {
  .b27-aperture { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); min-block-size: 560px; }
  .b27-aperture__visual { min-block-size: 560px; }
	.b27-featured-faculty__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.b27-faculty-row, .b27-faculty-row--text { grid-template-columns: minmax(9rem, 12rem) minmax(0, 1fr); }
	.b27-faculty-row--text { grid-template-columns: minmax(0, 1fr); }
	.b27-faculty-row__sessions { grid-column: 2; }
	.b27-faculty-row--text .b27-faculty-row__sessions { grid-column: 1; }
}

/* Tablet preserves the large image; the rail wraps rather than hiding worlds. */
@media (min-width: 768px) and (max-width: 1023px) {
  .b27-aperture__intro { padding-block: 1.75rem; }
  .b27-aperture h1 { font-size: 2.8rem; }
}

@media (max-width: 767px) {
  :root { --b27-header-height: 64px; --b27-gutter: 20px; --b27-space-section: 40px; --b27-type-page: 2.125rem; --b27-type-section: 1.75rem; --b27-type-display: 2.375rem; --b27-type-session: 1.125rem; }
}
/* Collapse navigation before the full desktop link group becomes cramped. */
@media (max-width: 1199px) {
  .b27-menu-toggle { min-block-size: 48px; }
  .b27-site-header__inner { display: flex; flex-wrap: wrap; min-block-size: 64px; gap: .35rem .75rem; padding-block: .5rem; }
  .b27-wordmark { min-inline-size: 0; margin-inline-end: auto; font-size: .82rem; }
  .b27-nav { order: 3; flex: 1 0 100%; }
  .b27-site-header[data-menu-enhanced="true"] .b27-site-header__inner { flex-wrap: nowrap; block-size: 64px; }
  .b27-site-header[data-menu-enhanced="true"] .b27-nav { position: absolute; inset-inline: 0; inset-block-start: 100%; padding: 12px 32px; max-height: calc(100dvh - 64px); overflow-y: auto; overscroll-behavior: contain; background: var(--b27-navy-950); border-block-end: 1px solid var(--b27-line-dark); }
  .b27-nav__primary { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .b27-nav a, .b27-nav__about-toggle { min-height: 48px; justify-content: flex-start; width: 100%; white-space: normal; }
  .b27-nav__about-toggle { justify-content: space-between; }
  .b27-nav .b27-nav__submenu { position: static; width: auto; margin: 0 0 8px 16px; border: 0; border-inline-start: 1px solid var(--b27-control-border); padding: 0 0 0 12px; }
  .b27-nav a.b27-nav__my-breathe { width: auto; margin-block: 8px; }
  .b27-site-header[data-menu-enhanced="true"] .b27-register-link { display: none; }
  .b27-nav .b27-menu-register { display: inline-flex; }
  .b27-register-link { min-inline-size: 0; max-inline-size: 100%; margin-inline-start: auto; padding-inline: .75rem; text-align: center; white-space: normal; }
}
@media (max-width: 767px) {
  .b27-site-header__inner.b27-container { inline-size: calc(100% - 40px); }
  .b27-site-header[data-menu-enhanced="true"] .b27-nav { padding-inline: 20px; }
  .b27-aperture { display: block; min-block-size: 0; }
  .b27-aperture__visual { min-block-size: 0; grid-template-rows: 300px auto; margin-inline: 1rem; }
  .b27-aperture__intro { min-height: 0; padding-block: 1rem; gap: .5rem; justify-content: flex-start; }
  .b27-aperture__intro > p { margin: 0; }
  .b27-aperture__descriptor { font-size: .85rem; }
  .b27-aperture__event-meta { font-size: .75rem; }
  .b27-aperture h1 { max-width: 17ch; font-size: clamp(2.25rem, 9.2vw, 2.5rem); line-height: 1.03; }
  .b27-aperture h1 span { display: inline; }
  .b27-aperture h1 span + span::before { content: ' '; }
  .b27-aperture__instruction { font-size: 1rem; }
  .b27-aperture__meta { display: none; }
  .b27-aperture__summary { padding-block-start: .75rem; }
  .b27-programme { padding-block: 2rem; }
  .b27-programme__header { display: block; margin-block-end: 1.5rem; }
  .b27-programme__header h2, .b27-page-title { margin-block-end: 1rem; }
	.b27-session__overview { grid-template-columns: 5.4rem minmax(0, 1fr); gap: .6rem .9rem; min-height: 4.75rem; }
	.b27-session__context { grid-column: 2; justify-content: flex-start; text-align: start; }
	.b27-session__format, .b27-session__room, .b27-session__status { flex: 0 1 auto; }
	.b27-session__disclosure summary { margin-inline-start: 1rem; }
  .b27-session__body { padding: 1.25rem 1rem 1.75rem; }
	.b27-featured-faculty__header, .b27-faculty-directory__header, .b27-faculty-profile__header { grid-template-columns: 1fr; }
	.b27-featured-faculty__header .b27-control-link { justify-self: start; }
	.b27-featured-faculty__list { grid-template-columns: 1fr; }
	.b27-session-detail__metadata { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.b27-featured-faculty__list[data-visible-count] { grid-template-columns: 1fr; gap: 1.25rem; }
	.b27-featured-faculty__list:is([data-visible-count="1"], [data-visible-count="2"]) .b27-featured-person:not(.b27-featured-person--text) { grid-template-columns: minmax(7rem, .7fr) minmax(0, 1fr); }
	.b27-featured-person { display: grid; grid-template-columns: minmax(8rem, .42fr) minmax(0, 1fr); }
	.b27-featured-person--text { display: block; }
	.b27-faculty-directory__header .b27-eyebrow { grid-column: 1; margin-block-end: -1rem; }
	.b27-faculty-row, .b27-faculty-row--text { grid-template-columns: minmax(6.5rem, 8.5rem) minmax(0, 1fr); gap: 1rem; }
	.b27-faculty-row--text { grid-template-columns: 1fr; }
	.b27-faculty-row__sessions { grid-column: 1 / -1; }
	.b27-faculty-profile__header { align-items: start; }
	.b27-faculty-profile__portrait { width: min(18rem, 100%); }
	.b27-faculty-profile__day li { grid-template-columns: 5.75rem minmax(0, 1fr); gap: .5rem .9rem; }
	.b27-faculty-profile__day li p { grid-column: 2; }
  .b27-site-footer { padding-block: 32px; }
  .b27-site-footer__inner { grid-template-columns: 1fr; }
}

@media (max-width: 359px) {
  .b27-register-link { font-size: .66rem; letter-spacing: .06em; }
  .b27-aperture h1 { font-size: 2.6rem; }
	.b27-session__overview { grid-template-columns: 1fr; }
	.b27-session__context { grid-column: 1; }
	.b27-featured-person { grid-template-columns: 1fr; }
	.b27-faculty-row, .b27-faculty-row--text { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

.b27-home-visit {
	padding: var(--b27-space-section) var(--b27-gutter);
	border-block-start: 1px solid var(--b27-line-light);
}
.b27-home-visit .b27-eyebrow { color: var(--b27-ink); }
.b27-home-visit h2 { margin-block: .5rem 1rem; font-size: var(--b27-type-section); line-height: 1.1; }
.b27-home-visit .b27-event-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 3rem; max-inline-size: 60rem; margin-block: 1.25rem; }
.b27-home-visit .b27-event-facts > div { min-inline-size: 0; border-block-start: 1px solid var(--b27-line-light); padding-block-start: 1rem; }
.b27-home-visit .b27-event-facts dt { font-size: .8rem; margin-block-end: .5rem; }
.b27-home-visit .b27-event-facts dd { margin: 0; font-size: clamp(1.1rem, 2vw, 1.5rem); overflow-wrap: anywhere; }
.b27-trust-page__content { max-inline-size: 72ch; }
.b27-trust-page { padding-block: var(--b27-space-section); }
.b27-trust-page .b27-page-title { margin-block-end: 1.5rem; }
.b27-trust-page h2 { font-size: clamp(1.2rem, 1.1rem + .6vw, 1.65rem); line-height: 1.2; }
.b27-trust-page p { max-inline-size: 68ch; }
.b27-trust-page .b27-event-facts { display: grid; gap: .75rem; padding-block: 1.5rem; margin-block: 0; border-block: 1px solid var(--b27-line-light); }
.b27-trust-page .b27-event-facts > div { display: grid; grid-template-columns: 6rem minmax(0, 1fr); gap: 1rem; }
.b27-trust-page .b27-event-facts div { min-inline-size: 0; max-inline-size: 100%; }
.b27-trust-page .b27-event-facts dt { color: var(--b27-muted); font-size: .875rem; }
.b27-trust-page .b27-event-facts dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.b27-planning-section, .b27-visit-registration, .b27-visit-conduct { padding-block: 1.5rem; border-block-end: 1px solid var(--b27-line-light); }
.b27-planning-section h2, .b27-visit-registration h2, .b27-visit-conduct h2 { margin-block-start: 0; }
.b27-planning-actions { display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
.b27-trust-links ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); padding: 0; list-style: none; gap: 0 2rem; border-block-start: 1px solid var(--b27-line-light); margin-block-start: 2rem; }
.b27-trust-links li { border-block-end: 1px solid var(--b27-line-light); }
.b27-trust-links a { display: flex; min-block-size: 60px; align-items: center; }
.b27-context-support { max-inline-size: 58ch; margin-block: 1.25rem; padding-inline-start: 1rem; border-inline-start: 3px solid var(--b27-brass-500); }
.b27-context-support p { margin-block: .3rem; }
.b27-context-support .b27-eyebrow { color: var(--b27-ink); }
.b27-committee { margin: clamp(2rem, 5vw, 4rem) 0 0; padding: 0; border-block-end: 1px solid var(--b27-line-light); list-style: none; }
.b27-committee__member { display: grid; grid-template-columns: minmax(8rem, 11rem) minmax(0, 1fr); gap: clamp(1.25rem, 4vw, 3rem); padding-block: clamp(1.5rem, 4vw, 2.5rem); border-block-start: 1px solid var(--b27-line-light); }
.b27-committee__member--text { grid-template-columns: minmax(0, 1fr); }
.b27-committee__portrait { inline-size: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.b27-committee__identity h2 { margin: 0 0 .75rem; font-size: clamp(1.5rem, 1.2rem + 1vw, 2.25rem); line-height: 1.1; overflow-wrap: anywhere; }
.b27-committee__identity p { margin: .3rem 0; color: var(--b27-muted); overflow-wrap: anywhere; }
.b27-committee__identity .b27-committee__credentials, .b27-committee__identity .b27-committee__role { color: var(--b27-ink); font-weight: 650; }
.b27-committee__expertise { max-inline-size: 58ch; padding-block-start: .5rem; }
.b27-home-partners ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; padding: 0; list-style: none; }
.b27-home-partners li { display: flex; min-block-size: 5rem; align-items: center; gap: 1rem; }
.b27-home-partners img { max-inline-size: min(12rem, 70%); max-block-size: 4.5rem; inline-size: auto; block-size: auto; object-fit: contain; }
@media (max-width: 767px) {
	.b27-home-visit .b27-event-facts { grid-template-columns: minmax(0, 1fr); }
	.b27-home-partners ul { grid-template-columns: 1fr; }
	.b27-committee__member { grid-template-columns: minmax(0, 1fr); }
	.b27-committee__portrait { max-inline-size: 11rem; }
}
/* The narrow navigation wraps onto a third row; keep the results anchor below it. */
@media (max-width: 419px) {
  #b27-programme { scroll-margin-block-start: calc(var(--b27-header-height) + 1rem); }
}

@media (min-width: 768px) and (max-width: 1100px) {
	.b27-site-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Programme discovery stays an editorial rule-and-type surface, not a card. */
.b27-programme--directory { padding-block-start: 2.5rem; }
.b27-programme--directory .b27-programme__header { margin-block-end: 1rem; padding-block-end: 1rem; }
.b27-programme--directory .b27-selected-tracks { display: none; }
.b27-programme--directory .b27-programme__links { margin-block-start: .25rem; }
.b27-programme-filters { margin-block: 0 1.5rem; padding-block: .5rem; border-block-end: 1px solid var(--b27-line-light, #ccd0cb); }
.b27-programme-days { margin: 0 0 1.25rem; padding: 0; border: 0; min-inline-size: 0; }
.b27-programme-days legend, .b27-programme-filters__fields > label { font-size: .85rem; font-weight: 600; }
.b27-programme-days legend { margin-block-end: .5rem; }
.b27-programme-days > div { display: flex; flex-wrap: wrap; gap: 0; border-block: 1px solid var(--b27-line-light); }
.b27-programme-days label { position: relative; display: flex; }
.b27-programme-days input { position: absolute; opacity: 0; inline-size: 1px; block-size: 1px; }
.b27-programme-days span { display: flex; align-items: center; min-block-size: 48px; padding: .7rem 1rem; border-block-end: 3px solid transparent; font-size: .9rem; cursor: pointer; overflow-wrap: anywhere; }
.b27-programme-days input:checked + span { background: var(--b27-ref-gold); color: var(--b27-ref-bg); border-bottom: 3px solid var(--b27-ref-gold); font-weight: 700; }
.b27-programme-days input:focus-visible + span { outline: 3px solid var(--b27-teal-600, #007f82); outline-offset: 3px; }
.b27-programme-filters__fields { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) auto; align-items: end; gap: 1rem; }
.b27-programme-filters[data-enhanced="true"] .b27-programme-filters__fields { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
.b27-programme-filters__fields label { display: grid; gap: .4rem; min-inline-size: 0; }
.b27-programme-filters input[type="search"], .b27-programme-filters select { box-sizing: border-box; inline-size: 100%; min-inline-size: 0; min-block-size: 48px; padding: .7rem; border: 1px solid currentColor; border-radius: 0; color: inherit; background: transparent; font: inherit; font-size: 1rem; }
.b27-programme-filters button { min-block-size: 48px; font: inherit; cursor: pointer; }
.b27-programme-filters button[hidden] { display: none; }
.b27-programme-filters__summary { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .5rem 1rem; margin-block-start: .75rem; font-size: .9rem; }
.b27-programme-filters__summary p { margin: 0; }
.b27-programme-filters__summary a { display: inline-flex; align-items: center; min-block-size: 44px; text-underline-offset: .2em; }
@media (max-width: 767px) {
	.b27-programme--directory { padding-block-start: 1.5rem; }
	.b27-programme--directory .b27-page-title { margin-block-end: .75rem; }
	.b27-programme--directory .b27-programme__context { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1rem; }
	.b27-programme--directory .b27-filter-status { margin: 0; font-size: .85rem; }
	.b27-programme-filters__fields, .b27-programme-filters[data-enhanced="true"] .b27-programme-filters__fields { grid-template-columns: minmax(0, 1fr); gap: .8rem; }
	.b27-programme-filters__fields button { justify-self: start; }
	.b27-programme-days > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.b27-programme-days label, .b27-programme-days span { min-inline-size: 0; inline-size: 100%; }
}

.b27-home-positioning { padding-block: var(--b27-space-section); }
.b27-home-positioning__intro { display: grid; grid-template-columns: minmax(0, 45fr) minmax(0, 55fr); gap: 40px; }
.b27-home-positioning h2 { margin: 0; font-size: var(--b27-type-section); line-height: 1.15; letter-spacing: -.035em; font-weight: var(--b27-weight-heading); }
.b27-home-positioning h2 span { display: block; }
.b27-home-positioning__intro > div > p:first-child { margin-top: 0; }
.b27-home-positioning p { max-inline-size: 60ch; font-size: 16px; line-height: 1.55; }
.b27-home-positioning__items { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin-top: 40px; }
.b27-home-positioning__items h3 { font-size: 20px; line-height: 1.3; margin: 0 0 12px; }
.b27-home-positioning__items p { margin: 0; }
.b27-visit-planning > section, .b27-trust-page > .b27-planning-section { padding-block: 24px; border-top: 1px solid var(--b27-line); }
.b27-visit-planning h2, .b27-trust-page > .b27-planning-section h2 { margin-top: 0; }
.b27-site-footer__venue, .b27-site-footer__organisers { margin: 0; font-size: 14px; }
.b27-home-about__inner { display: grid; grid-template-columns: minmax(0, 45fr) minmax(0, 55fr); gap: 40px; }
.b27-home-about p { font-size: 16px; line-height: 1.55; }
.b27-home-about { padding-block: var(--b27-space-section); background: var(--b27-ref-night); border-block: 1px solid var(--b27-line); }
.b27-home-about h2, .b27-home-practical h2 { margin: 0 0 16px; font-size: var(--b27-type-section); font-weight: var(--b27-weight-heading); line-height: 1.15; letter-spacing: -.035em; }
.b27-home-about p { max-inline-size: 60ch; }
.b27-home-about__inner > div > p:first-child { margin-block-start: 0; }
.b27-home-practical { padding-block: var(--b27-space-section); background: var(--b27-ref-bg); }
.b27-home-practical__inner { display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.b27-home-practical p { max-inline-size: 60ch; margin: .35rem 0; }
.b27-home-practical__status { color: var(--b27-muted); font-size: 16px; line-height: 1.55; }
.b27-home-practical__inner > a { flex: 0 0 auto; }
@media (min-width: 1024px) { .b27-home-about__phrase { display: block; } }
@media (max-width: 1023px) { .b27-home-about__inner, .b27-home-positioning__intro { grid-template-columns: minmax(0, 1fr); gap: 24px; } }
@media (max-width: 767px) {
  .b27-home-positioning__items { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 24px; }
  .b27-home-about__inner { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .b27-home-practical__inner { flex-direction: column; align-items: start; }
}

/* Count-aware composition must never reintroduce filtered people. */
.b27-featured-faculty__list[data-visible-count] .b27-featured-person[hidden] { display: none; }
