/* PHILHARMONIE — GUIDE DES STYLES
   Une règle s'écrit : sélecteur  {
   propriété: valeur;
   }

   .nom cible une classe du fichier HTML ;
   #nom cible un identifiant.
   :root contient la palette. Le bordeaux de référence est #781c2c.
   Les règles @media adaptent l'affichage aux écrans plus étroits.
   Les valeurs px sont en pixels ;
   rem suit la taille du texte.
   Conserver l'ordre : les règles du bas complètent celles du haut.
*/

:root {
  --wine:#781c2c;
  --dark:#251720;
  --gold:#d4b573;
  --ink:#27232a;
  --muted:#625c63;
  --paper:#fff;
  --soft:#f5f4f5;
  --line:#ddd8dc}

* {
  box-sizing:border-box}
html {
  scroll-behavior:smooth}
body {
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font:17px/1.65 "Segoe UI",Arial,sans-serif}
a {
  color:var(--wine);
  text-underline-offset:5px}
a:hover {
  text-decoration:underline}
a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:3px solid #c79532;
  outline-offset:5px}
img {
  max-width:100%;
  display:block}
h1,h2,h3,p {
  margin:0}
h1,h2,h3 {
  line-height:1.14;
  letter-spacing:-.035em;
  font-weight:650}
h1 {
  font-size:clamp(2.5rem,5vw,4.8rem)}
h2 {
  font-size:clamp(2rem,3.5vw,3rem)}
h3 {
  font-size:1.45rem}
p+p {
  margin-top:1rem}
.wrap {
  max-width:1180px;
  padding:0 40px;
  margin:auto}
.kicker {
  font-size:.84rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--wine);
  margin-bottom:20px}
.intro {
  font-size:1.15rem;
  max-width:680px;
  color:var(--muted);
  margin-top:24px}
.muted {
  color:var(--muted)}
.skip {
  position:absolute;
  top:-100px;
  left:12px;
  background:#fff;
  padding:12px;
  z-index:5}
.skip:focus {
  top:12px}

header {
  border-bottom:1px solid var(--line);
  background:#fff}
.navrow {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  min-height:100px}
.brand {
  display:flex;
  align-items:center;
  gap:14px;
  color:var(--ink);
  text-decoration:none}
.brand img {
  width:65px;
  height:65px;
  object-fit:contain}
.brand strong {
  display:block;
  font-size:1.12rem;
  line-height:1.3;
  letter-spacing:.03em}
.brand small {
  font-size:.8rem;
  letter-spacing:.09em}
.nav {
  display:flex;
  align-items:center;
  gap:26px}
.nav a {
  font-size:.92rem;
  font-weight:600;
  text-decoration:none;
  color:var(--ink);
  padding:14px 0;
  border-bottom:2px solid transparent}
.nav a[aria-current=page] {
  color:var(--wine);
  border-color:var(--wine)}
.menu-toggle {
  display:none;
  font:inherit;
  color:var(--wine);
  padding:9px 14px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:3px}
main {
  min-height:60vh}
.page[hidden] {
  display:none!important}
.hero {
  background:var(--dark);
  color:#fff}
.hero-grid {
  display:grid;
  grid-template-columns:1fr 1.08fr;
  min-height:565px}
.hero-copy {
  padding:70px 45px 62px 0;
  display:flex;
  flex-direction:column;
  justify-content:center}
.hero .kicker {
  color:var(--gold)}
.hero h1 {
  max-width:490px}
.hero h1 em {
  color:var(--gold);
  font-family:Georgia,serif;
  font-weight:400}
.hero p {
  color:#e1d9df;
  max-width:430px;
  margin-top:26px}
.hero-photo {
  position:relative;
  margin-right:calc((1180px - 100vw)/2);
  min-width:0}
.hero-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:53% 73%}
.hero-photo figcaption {
  position:absolute;
  bottom:18px;
  right:18px;
  background:#251720e6;
  color:#fff;
  padding:5px 12px;
  font-size:.8rem}
.actions {
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:30px}
.button {
  display:inline-block;
  padding:12px 21px;
  border:1px solid var(--wine);
  border-radius:3px;
  background:var(--wine);
  color:#fff;
  text-decoration:none;
  font-size:.94rem;
  font-weight:600}
.button:hover {
  background:#5c1321;
  color:#fff;
  text-decoration:none}
.button.light {
  background:#fff;
  border-color:#fff;
  color:var(--wine)}
.button.outline {
  background:transparent;
  border-color:currentColor;
  color:var(--wine)}
.hero .button.outline {
  color:#fff;
  border-color:#8c7784}
.values {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  padding:26px 0;
  gap:24px;
  border-bottom:1px solid var(--line)}
.values span {
  font-weight:600}
.values small {
  display:block;
  font-size:.9rem;
  color:var(--muted);
  margin-top:3px}
.section {
  padding:80px 0}
.section.tint {
  background:var(--soft)}
.split {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:center}
.split figure {
  margin:0}
.split figure img {
  width:100%;
  max-height:490px;
  object-fit:cover}
.split figcaption {
  font-size:.8rem;
  color:var(--muted);
  margin-top:9px}
.prose {
  max-width:760px}
.prose h2 {
  margin-bottom:24px}
.textlink {
  display:inline-block;
  margin-top:23px;
  font-weight:600}
.quote {
  border-left:3px solid var(--gold);
  padding:5px 0 5px 26px;
  margin:32px 0 0;
  font:1.45rem/1.5 Georgia,serif}
.tiles {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
  margin-top:36px}
.tile {
  border-top:2px solid var(--wine);
  padding-top:24px}
.tile p {
  color:var(--muted);
  margin-top:14px}
.tile .label {
  font-size:.85rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--wine);
  margin-bottom:12px}
.social-band {
  background:var(--wine);
  color:#fff;
  padding:48px 0}
.social-band .wrap {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px}
.social-band p {
  margin-top:14px;
  color:#eadde1}
.social-band h2 {
  font-size:2rem}
.page-head {
  padding:64px 0;
  background:var(--soft)}
.page-head h1 {
  font-size:clamp(2.6rem,5vw,4rem)}
.breadcrumb {
  font-size:.86rem;
  margin-bottom:23px}
.full-photo {
  width:100%;
  max-height:540px;
  object-fit:cover;
  object-position:50% 70%}
.people {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px;
  margin-top:35px}
.person {
  border-top:1px solid var(--line);
  padding-top:24px}
.person small {
  display:block;
  color:var(--wine);
  margin-bottom:10px}
.person p {
  margin-top:14px;
  color:var(--muted)}
.junior-mark {
  width:145px;
  height:100px;
  object-fit:contain;
  margin-bottom:24px}
.steps {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:34px;
  margin-top:38px}
.step strong {
  display:block;
  color:var(--wine);
  font-size:2.1rem;
  font-family:Georgia,serif;
  margin-bottom:14px}
.step p {
  margin-top:14px;
  color:var(--muted)}
details {
  border-bottom:1px solid var(--line);
  padding:19px 0}
summary {
  font-weight:650;
  cursor:pointer}
details p {
  margin-top:16px;
  color:var(--muted)}
.events-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:35px;
  margin-top:35px}
.event {
  padding:30px;
  background:var(--soft)}
.event small {
  display:block;
  font-size:.87rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--wine);
  margin-bottom:16px}
.event p {
  color:var(--muted);
  margin-top:18px}
.timeline {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:26px;
  margin-top:38px}
.timeline strong {
  font-size:2rem;
  color:var(--wine);
  font-family:Georgia,serif}
.timeline p {
  margin-top:12px;
  border-top:1px solid var(--line);
  padding-top:15px}
.portrait-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:26px;
  margin-top:38px}
.portrait img {
  width:100%;
  height:225px;
  object-fit:cover;
  object-position:50% 20%;
  background:var(--soft)}
.portrait h3 {
  font-size:1.25rem;
  margin-top:22px}
.portrait p {
  font-size:.94rem;
  color:var(--muted);
  margin-top:8px}
.contactbox {
  border-top:2px solid var(--wine);
  padding-top:25px}
.contactbox h2 {
  font-size:1.8rem}
.contactbox p {
  margin-top:20px}
.contactbox a {
  overflow-wrap:anywhere}
.contact-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px}
.social-links {
  display:flex;
  gap:24px;
  flex-wrap:wrap;
  margin-top:25px}
.partner-list {
  display:flex;
  flex-wrap:wrap;
  gap:15px 30px;
  margin-top:26px;
  color:var(--muted)}
.table {
  border-collapse:collapse;
  width:100%;
  margin-top:18px;
  font-size:.94rem}
.table td,.table th {
  text-align:left;
  padding:12px 15px 12px 0;
  border-bottom:1px solid var(--line)}
.table th {
  color:var(--wine)}
.endcap {
  padding:50px 0;
  border-top:1px solid var(--line);
  margin-top:50px}
footer {
  background:var(--dark);
  color:#fff;
  padding:40px 0 24px}
footer .footgrid {
  display:flex;
  justify-content:space-between;
  gap:35px;
  flex-wrap:wrap}
footer a {
  color:#fff}
footer p {
  font-size:.9rem;
  color:#c8bdc5;
  margin-top:9px}
.footer-links {
  display:flex;
  gap:24px;
  flex-wrap:wrap;
  align-items:center}
footer .fine {
  font-size:.78rem;
  border-top:1px solid #4f3d49;
  margin-top:30px;
  padding-top:18px;
  color:#c8bdc5}
.notice {
  padding:8px 24px;
  background:#f3eef0;
  text-align:center;
  font-size:.8rem;
  color:#66515b}
.screen-reader {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0)}

@media(min-width:1180px) {
  .hero-photo {
  margin-right:calc((1100px - 100vw)/2)}
}

@media(max-width:1000px) {
  .wrap {
  padding:0 28px}
.nav {
  gap:18px}
.hero-grid {
  grid-template-columns:1fr 1fr;
  min-height:500px}
.hero-copy {
  padding-right:25px}
.hero-photo {
  margin-right:-28px}
.split {
  gap:35px}
.portrait-grid {
  grid-template-columns:1fr 1fr}
}

@media(max-width:760px) {
  .wrap {
  padding:0 22px}
.navrow {
  min-height:85px;
  flex-wrap:wrap;
  padding-top:10px;
  padding-bottom:10px}
.brand img {
  width:48px;
  height:54px}
.brand strong {
  font-size:.94rem}
.brand small {
  font-size:.72rem}
.menu-toggle {
  display:block}
.nav {
  display:none;
  width:100%;
  flex-wrap:wrap;
  gap:8px 22px}
.nav.open {
  display:flex}
.nav a {
  padding:9px 0}
.hero-grid {
  grid-template-columns:1fr}
.hero-copy {
  padding:42px 0}
.hero h1 {
  font-size:2.8rem}
.hero-photo {
  margin:0 -22px;
  height:350px}
.hero-photo img {
  object-position:center 72%}
.section {
  padding:48px 0}
.split {
  grid-template-columns:1fr;
  gap:32px}
.values {
  gap:15px}
.values span {
  font-size:.94rem}
.values small {
  font-size:.8rem}
.tiles,.steps {
  grid-template-columns:1fr;
  gap:30px}
.social-band .wrap {
  display:block}
.social-band .button {
  margin-top:24px}
.page-head {
  padding:42px 0}
.events-grid,.contact-grid,.people {
  grid-template-columns:1fr;
  gap:28px}
.timeline {
  grid-template-columns:1fr 1fr}
.portrait img {
  height:185px}
.contactbox a {
  font-size:.98rem}
h2 {
  font-size:2rem}
.quote {
  font-size:1.3rem}
.footer-links {
  gap:20px}
.table {
  font-size:.87rem}
}

@media(max-width:390px) {
  .values {
  grid-template-columns:1fr}
.portrait-grid {
  grid-template-columns:1fr}
.hero h1 {
  font-size:2.4rem}
.actions {
  display:block}
.actions .button {
  margin:0 10px 12px 0}
.brand {
  gap:8px}
}

@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto}
}

@media print {
  header,.notice,.actions,.social-band,footer {
  display:none}
.page[hidden] {
  display:block!important}
.page {
  break-before:page}
.hero {
  color:#000;
  background:#fff}
.hero .kicker,.hero p {
  color:#333}
.hero-photo {
  margin:0}
.section {
  padding:25px 0}
}


/* Une histoire à transmettre */
.story-lead {
  background:var(--dark);
  color:white;
  padding:76px 0}
.story-lead .kicker {
  color:var(--gold)}
.story-lead h1 {
  font-family:Georgia,serif;
  font-weight:400;
  max-width:900px;
  font-size:clamp(2.8rem,5.5vw,5rem)}
.story-lead .intro {
  color:#e5dce1;
  max-width:760px}
.story-lead .breadcrumb a {
  color:#fff}
.story-index {
  display:flex;
  gap:12px 26px;
  flex-wrap:wrap;
  padding:25px 0;
  border-bottom:1px solid var(--line)}
.story-index a {
  font-size:1rem;
  font-weight:600}
.chapter {
  display:grid;
  grid-template-columns:160px 1fr;
  gap:40px;
  padding:64px 0;
  border-bottom:1px solid var(--line);
  scroll-margin-top:25px}
.chapter-number {
  font:3.6rem/1 Georgia,serif;
  color:var(--wine)}
.chapter-number small {
  display:block;
  font:14px/1.6 'Segoe UI',sans-serif;
  letter-spacing:.05em;
  margin-top:12px;
  color:var(--muted)}
.chapter h2 {
  font-family:Georgia,serif;
  font-weight:400;
  margin-bottom:24px}
.chapter p {
  max-width:750px}
.chapter .original {
  font-size:1.18rem;
  border-left:3px solid var(--gold);
  padding-left:22px;
  margin:26px 0;
  color:var(--wine)}
.chapter figure {
  margin:30px 0 0}
.chapter figure img {
  max-height:460px;
  width:100%;
  object-fit:contain;
  background:#f5f4f5}
.chapter figcaption {
  font-size:14px;
  color:var(--muted);
  margin-top:10px}
.chapter .memory {
  display:flex;
  align-items:center;
  gap:28px;
  margin:30px 0}
.memory img {
  width:150px;
  height:180px;
  object-fit:cover;
  flex-shrink:0}
.memory .original {
  margin:0}
.tribute {
  background:var(--wine);
  color:#fff;
  padding:64px 0}
.tribute .kicker {
  color:var(--gold)}
.tribute h2 {
  font-family:Georgia,serif;
  font-weight:400}
.tribute p {
  max-width:790px;
  margin-top:24px;
  color:#f5eaf0}
.tribute .button {
  margin-top:25px}
.portrait-entry {
  display:grid;
  grid-template-columns:220px 1fr;
  gap:45px;
  padding:40px 0;
  border-bottom:1px solid var(--line);
  align-items:center}
.portrait-entry img {
  width:220px;
  height:245px;
  object-fit:cover}
.portrait-entry h2 {
  font:2.1rem/1.15 Georgia,serif;
  margin-bottom:14px}
.portrait-entry p {
  max-width:660px}
.portrait-entry .original {
  font-size:1.15rem;
  color:var(--wine);
  margin:15px 0}
.portrait-entry.text-only {
  grid-template-columns:1fr;
  padding-left:265px}
.heritage {
  background:var(--dark);
  color:#fff}
.heritage .kicker {
  color:var(--gold)}
.heritage .intro {
  color:#e5dce1}
.heritage .textlink {
  color:#fff}
.heritage h2 {
  font-family:Georgia,serif;
  font-weight:400}
.visit-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:35px}
.visit-grid p {
  margin-top:18px;
  color:var(--muted)}
.hero-photo {
  margin-top:0;
  margin-bottom:0;
  margin-left:0}
.nav {
  gap:20px}
.nav a {
  font-size:14px}
.draft-detail {
  font-size:14px}
.memory-call {
  border-top:2px solid var(--gold);
  margin-top:35px;
  padding-top:25px}

@media(max-width:1000px) {
  .navrow {
  flex-wrap:wrap;
  padding-top:12px;
  padding-bottom:12px}
.nav {
  gap:18px}
.portrait-entry {
  gap:28px}
.chapter {
  grid-template-columns:115px 1fr;
  gap:28px}
}

@media(max-width:760px) {
  .story-lead {
  padding:45px 0}
.chapter {
  grid-template-columns:1fr;
  padding:40px 0;
  gap:20px}
.chapter-number {
  font-size:2.5rem}
.chapter-number small {
  display:inline;
  margin-left:16px}
.portrait-entry,.portrait-entry.text-only {
  grid-template-columns:1fr;
  padding-left:0;
  gap:20px}
.portrait-entry img {
  width:155px;
  height:180px}
.chapter .memory {
  align-items:flex-start;
  gap:18px}
.memory img {
  width:100px;
  height:125px}
.chapter .original {
  font-size:1rem}
.visit-grid {
  grid-template-columns:1fr}
.story-index {
  gap:14px 22px}
.story-lead h1 {
  font-size:2.7rem}
.tribute {
  padding:45px 0}
}



.travel-filters {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin:30px 0 20px}
.travel-filters button {
  font:600 16px/1.3 'Segoe UI',sans-serif;
  padding:11px 18px;
  border:1px solid var(--wine);
  color:var(--wine);
  background:white;
  border-radius:3px;
  cursor:pointer}
.travel-filters button[aria-pressed=true] {
  background:var(--wine);
  color:white}
.travel-table {
  overflow-x:auto}
.travel-table .table {
  min-width:480px;
  background:white}
.travel-table td,.travel-table th {
  padding:14px}
.source-note {
  font-size:14px;
  color:var(--muted);
  margin-top:26px;
  max-width:850px}
.source-labels {
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  margin-top:25px;
  font-size:14px;
  color:var(--muted)}
.nav {
  gap:16px}
.navrow {
  flex-wrap:wrap}
.nav a {
  font-size:14px}
.chapter h2 {
  max-width:800px}
.story-index a {
  font-size:14px}
.travel-table tr[hidden] {
  display:none}
.notice {
  font-size:14px}


.live-grid {
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);
  gap:40px;
  margin-top:38px}
.live-grid h3 {
  margin-bottom:22px}
.calendar-frame {
  width:100%;
  height:650px;
  border:1px solid var(--line);
  background:white;
  border-radius:4px}
.facebook-holder {
  max-width:500px;
  width:100%;
  overflow:hidden;
  background:white;
  border:1px solid var(--line);
  min-height:650px}
.facebook-frame {
  display:block;
  width:100%;
  height:650px;
  border:0}
.embed-help {
  font-size:14px;
  color:var(--muted);
  margin-top:14px}
.live-grid .textlink {
  margin-top:12px}
.nav {
  flex-wrap:wrap}
.navrow {
  justify-content:center}
.brand {
  margin-right:auto}
#agenda .calendar-frame {
  height:760px}
@media(max-width:1000px) {
  .live-grid {
  grid-template-columns:1fr}
.facebook-holder {
  margin:auto}
.navrow {
  justify-content:space-between}
}
@media(max-width:760px) {
  .calendar-frame {
  height:600px}
#agenda .calendar-frame {
  height:650px}
.live-grid {
  gap:45px}
}


.committee-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
  margin-top:35px}
.committee-card {
  border-top:2px solid var(--gold);
  padding:24px 0}
.committee-card p {
  color:var(--wine);
  font-size:14px;
  margin:0 0 10px}
.committee-card h3 {
  font-size:1.4rem}
.quote-credit {
  background:none;
  color:var(--muted);
  padding:14px 0 0;
  font:14px/1.4 'Segoe UI',sans-serif}
.join-grid {
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:60px;
  align-items:start}
.join-note {
  border-left:3px solid var(--gold);
  padding:8px 0 8px 28px}
.join-note p {
  margin-top:20px}
.nav a.musician-button {
  background:var(--wine);
  color:white;
  padding:10px 15px;
  border-radius:3px}
.nav a.musician-button:hover {
  background:#5c1321}
.navrow {
  gap:20px}
.nav {
  gap:16px}
.nav a {
  font-size:14px}
@media(max-width:900px) {
  .committee-grid {
  grid-template-columns:1fr 1fr}
.join-grid {
  grid-template-columns:1fr;
  gap:30px}
}
@media(max-width:560px) {
  .committee-grid {
  grid-template-columns:1fr}
}


/* Photos ajoutées dans les emplacements auparavant sans image.
   object-fit: cover remplit le cadre (avec recadrage éventuel).
   Une photo manquante reste lisible entièrement grâce à contain. */
.person-photo { width: 100%; height: 260px; object-fit: cover; margin: 20px 0; }
.travel-photo { width: 100%; height: 230px; object-fit: cover; margin-bottom: 22px; }
img.photo-missing { object-fit: contain !important; background: #f5f4f5; border: 1px dashed #b9a5ac; }

/* Cartes automatiques : affiches entières, sans recadrage. */
.rendezvous-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:30px 0}
.rendezvous-card{background:white;border:1px solid var(--line);min-width:0}
.rendezvous-card img{width:100%;height:300px;object-fit:contain;background:#eee}

/* V4.3 — photos collectives et fiches faciles à maintenir.
   Les photos de groupe gardent leurs proportions pour ne couper personne.
   Les portraits individuels sont carrés et alignés sur le haut du visage. */
.committee-group, .conductors-group { margin: 0 0 52px; }
.committee-group img, .conductors-group img { display: block; width: 100%; height: auto; }
.conductors-group { max-width: 900px; margin: 30px auto 48px; }
.committee-group figcaption, .conductors-group figcaption {
  color: var(--muted); font-size: .85rem; margin-top: 12px; line-height: 1.6;
}
.committee-intro { max-width: 740px; color: var(--muted); margin: 18px 0 32px; }
.committee-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.member-card { border: 1px solid #e2d9db; background: #fff; padding: 24px; display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 22px; align-items: start; overflow: hidden; }
.member-visual { position: relative; aspect-ratio: 1; background: #eee7e2; overflow: hidden; display: grid; place-items: center; }
.member-initials { font: 32px Georgia, serif; color: var(--wine, #781c2c); }
.member-visual::after { content: ''; position: absolute; inset: 6px; border: 1px solid #d5c6ba; pointer-events: none; }
.member-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 28%; }
.member-body { padding: 0; }
.member-body .member-role { color: #781c2c; font-size: .8rem; margin: 0 0 8px; }
.member-body h3 { margin: 0; font-size: 1.3rem; }
.member-body .member-description { color: var(--muted); margin: 14px 0 0; font-size: .95rem; line-height: 1.7; }
.direction-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 900px; margin: auto; }
.portrait-entry img.archive-monogram { object-fit: contain; background: #f1ece6; }
.person-photo[data-photo="david-winkler.jpg"] { object-position: center 12%; }
@media (max-width: 800px) {
  .committee-grid { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 520px) {
  .member-card { padding: 18px; gap: 16px; grid-template-columns: 66px minmax(0, 1fr); }
  .member-body h3 { font-size: 1.18rem; }
}
.rendezvous-body{padding:24px}.event-description{white-space:pre-line;overflow-wrap:anywhere}
.rendezvous-date{padding:44px 20px;background:var(--wine);color:white;font-size:1.7rem;text-align:center}
@media(max-width:900px){.rendezvous-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.rendezvous-grid{grid-template-columns:1fr}}
