:root { --ink:#15233a; --paper:#f4efe7; --white:#fffdf8; --coral:#cf655f; --rose:#e9a8a2; --line:rgba(21,35,58,.18); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; }
body.menu-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
.skip { position:fixed; left:1rem; top:-5rem; z-index:100; background:var(--white); padding:.8rem 1rem; }
.skip:focus { top:1rem; }
.topbar { height:84px; padding:0 4.5vw; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; position:absolute; z-index:20; width:100%; color:white; border-bottom:1px solid rgba(255,255,255,.28); }
.brand { display:flex; align-items:center; gap:.65rem; text-transform:uppercase; font-weight:700; letter-spacing:.08em; font-size:.72rem; line-height:1.05; }
.brand-mark { width:38px; height:38px; border:1px solid currentColor; border-radius:50%; display:grid; place-items:center; font-family:Georgia,serif; font-size:1.35rem; font-weight:400; }
.brand small { font-size:.53rem; font-weight:400; opacity:.72; letter-spacing:.16em; }
.topbar nav { display:flex; gap:2.4vw; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; }
.topbar nav a { position:relative; }
.topbar nav a:after { content:""; position:absolute; left:0; right:100%; bottom:-7px; height:1px; background:currentColor; transition:.25s; }
.topbar nav a:hover:after, .topbar nav a:focus-visible:after { right:0; }
.active-page:after { right:0; }
.menu-toggle { display:none; }
.hero { min-height:760px; height:100svh; max-height:980px; background:url('/img/montmartre-hero.wwc-1200.webp') center/cover no-repeat; color:white; position:relative; display:flex; align-items:center; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(13,24,41,.82) 0%,rgba(13,24,41,.55) 38%,rgba(13,24,41,.05) 75%),linear-gradient(0deg,rgba(10,20,35,.55),transparent 45%); }
.hero-content { position:relative; z-index:2; width:min(780px,90vw); margin-left:8.3vw; padding-top:50px; }
.eyebrow { margin:0 0 1.6rem; text-transform:uppercase; font-size:.68rem; font-weight:700; letter-spacing:.2em; display:flex; align-items:center; gap:.8rem; }
.eyebrow:before { content:""; width:30px; height:1px; background:var(--coral); }
.eyebrow.light:before { background:var(--rose); }
.hero h1 { margin:0; font-family:Georgia,'Times New Roman',serif; font-weight:400; font-size:clamp(4rem,7.7vw,8rem); line-height:.87; letter-spacing:-.055em; }
.hero h1 span, h2 span { display:block; }
.hero-copy { max-width:590px; font-size:clamp(1rem,1.35vw,1.25rem); line-height:1.65; margin:2rem 0; color:rgba(255,255,255,.86); }
.hero-actions { display:flex; flex-wrap:wrap; gap:.8rem; }
.button { min-height:52px; display:inline-flex; align-items:center; justify-content:center; padding:0 1.5rem; text-transform:uppercase; letter-spacing:.11em; font-size:.65rem; font-weight:700; border:1px solid transparent; transition:.2s; }
.button.primary { background:var(--coral); color:white; gap:2.4rem; }
.button.primary:hover { background:#b84f49; }
.button.ghost { color:white; border-color:rgba(255,255,255,.5); }
.button.ghost:hover { background:white; color:var(--ink); }
.verified { position:absolute; z-index:2; bottom:3.7rem; right:4.5vw; font-size:.65rem; text-transform:uppercase; letter-spacing:.12em; display:flex; gap:.6rem; align-items:center; }
.verified span { color:var(--rose); }
.scroll-cue { position:absolute; z-index:2; bottom:2.8rem; left:4.5vw; display:flex; align-items:center; gap:1rem; transform:rotate(-90deg); transform-origin:left center; font-size:.55rem; letter-spacing:.2em; }
.scroll-cue i { display:block; width:46px; height:1px; background:white; }
.section { padding:clamp(5rem,9vw,9rem) 8.3vw; }
h2 { margin:0; font:400 clamp(2.8rem,5vw,5.3rem)/.98 Georgia,'Times New Roman',serif; letter-spacing:-.045em; }
.intro { display:grid; grid-template-columns:1.05fr .95fr; gap:8vw; align-items:start; }
.intro-copy > p { margin:3.4rem 0 4.3rem; max-width:610px; font:400 clamp(1.2rem,2vw,1.65rem)/1.55 Georgia,serif; }
.stats { border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(3,1fr); }
.stats div { padding:1.5rem 1rem 0 0; border-right:1px solid var(--line); }
.stats div+div { padding-left:1.2rem; }
.stats strong { font:400 2rem/1 Georgia,serif; display:block; }
.stats span { font-size:.65rem; line-height:1.35; text-transform:uppercase; letter-spacing:.1em; opacity:.67; display:block; margin-top:.65rem; }
.dark { background:var(--ink); color:var(--white); }
.section-heading > p:not(.eyebrow), .side-note { color:rgba(21,35,58,.68); line-height:1.65; max-width:480px; }
.dark .section-heading > p:not(.eyebrow) { color:rgba(255,255,255,.62); }
.route { display:grid; grid-template-columns:.8fr 1.2fr; gap:8vw; }
.route .section-heading { position:sticky; top:4rem; align-self:start; }
.route .section-heading h2 { max-width:500px; }
.timeline article { min-height:185px; border-top:1px solid rgba(255,255,255,.2); display:grid; grid-template-columns:55px 100px 1fr; gap:1rem; padding:2rem 0; }
.timeline article:last-child { border-bottom:1px solid rgba(255,255,255,.2); }
.timeline-index { width:32px; height:32px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.3); border-radius:50%; font-size:.6rem; }
.timeline time { font-size:.73rem; color:var(--rose); letter-spacing:.12em; }
.timeline h3, .essential-card h3, .tip-grid h3 { margin:0 0 .75rem; font:400 1.55rem/1.1 Georgia,serif; }
.timeline p { margin:0; color:rgba(255,255,255,.62); line-height:1.55; font-size:.9rem; max-width:500px; }
.section-heading.row { display:grid; grid-template-columns:1.1fr .9fr; gap:5vw; align-items:end; margin-bottom:4rem; }
.side-note { justify-self:end; margin:0; font-size:.9rem; }
.essential-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.essential-card { min-height:455px; padding:1.6rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column; justify-content:space-between; transition:.2s; }
.essential-image { height:172px; margin:-1.6rem -1.6rem 1.35rem; overflow:hidden; background:var(--ink); }.essential-image img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .45s ease; }.essential-card:hover .essential-image img { transform:scale(1.045); }
.essential-card:hover { background:var(--white); transform:translateY(-5px); }
.card-top { display:flex; justify-content:space-between; color:var(--coral); font-size:.65rem; }
.essential-card .meta { color:var(--coral); text-transform:uppercase; font-size:.6rem; letter-spacing:.1em; }
.essential-card > div p:last-child { font-size:.85rem; line-height:1.62; color:rgba(21,35,58,.7); }
.essential-card > a { text-transform:uppercase; font-size:.6rem; letter-spacing:.12em; font-weight:700; border-top:1px solid var(--line); padding-top:1rem; }
.event { background:var(--coral); color:white; min-height:650px; position:relative; overflow:hidden; display:flex; align-items:center; padding:7rem 8.3vw; }
.event-orbit { position:absolute; right:-2vw; top:50%; transform:translateY(-50%); width:min(52vw,690px); height:min(52vw,690px); border:1px solid rgba(255,255,255,.28); border-radius:50%; display:grid; place-items:center; font:400 clamp(11rem,24vw,23rem)/1 Georgia,serif; color:rgba(255,255,255,.11); }
.event-orbit:before,.event-orbit:after { content:""; position:absolute; border:1px solid rgba(255,255,255,.18); border-radius:50%; }
.event-orbit:before { inset:8%; } .event-orbit:after { inset:20%; }
.event-content { position:relative; z-index:2; max-width:710px; }
.event-date { margin:0 0 1rem; text-transform:uppercase; letter-spacing:.16em; font-size:.75rem; }
.event-content h2 { font-size:clamp(3.2rem,6vw,6.5rem); }
.event-content > p:not(.eyebrow):not(.event-date) { max-width:570px; line-height:1.65; color:rgba(255,255,255,.83); margin:1.7rem 0 2.2rem; }
.button.pale { background:var(--paper); color:var(--ink); }
.directory { background:var(--white); }
.directory-visual { margin:0 0 1px; display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr); background:var(--ink); color:white; }
.directory-illustration { min-width:0; margin:0; position:relative; overflow:hidden; }
.directory-illustration img { width:100%; height:100%; min-height:480px; display:block; object-fit:cover; }
.directory-illustration figcaption { position:absolute; left:1.4rem; bottom:1.3rem; padding:.65rem .8rem; background:rgba(12,23,40,.82); color:rgba(255,255,255,.82); font-size:.58rem; line-height:1.4; letter-spacing:.1em; text-transform:uppercase; }
.directory-visual-copy { padding:clamp(2rem,4vw,4.3rem); display:flex; flex-direction:column; justify-content:center; }
.directory-visual-copy h2 { max-width:500px; color:white; font-size:clamp(2.7rem,4.4vw,4.8rem); }
.directory-visual-copy > p:last-child { max-width:470px; margin:2rem 0 0; color:rgba(255,255,255,.68); line-height:1.7; }
.directory-photo-grid { margin:0 0 3rem; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--ink); border:1px solid var(--ink); }
.directory-photo-card { min-height:210px; position:relative; display:block; overflow:hidden; color:white; }
.directory-photo-card:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(12,23,40,.9),rgba(12,23,40,.04) 70%); transition:.25s; }
.directory-photo-card img { width:100%; height:100%; position:absolute; inset:0; display:block; object-fit:cover; transition:transform .45s ease; }
.directory-photo-card > span { position:absolute; z-index:2; left:1.2rem; right:1.2rem; bottom:1.1rem; display:flex; justify-content:space-between; align-items:end; gap:1rem; }
.directory-photo-card strong { font:400 1.45rem Georgia,serif; }
.directory-photo-card small { font-size:.58rem; letter-spacing:.08em; text-transform:uppercase; opacity:.8; }
.directory-photo-card:hover img { transform:scale(1.035); }
.directory-photo-card:hover:after { background:linear-gradient(0deg,rgba(120,31,43,.92),rgba(12,23,40,.04) 70%); }
.directory-proof { display:grid; grid-template-columns:repeat(4,1fr); margin:0 0 2.5rem; border:1px solid var(--line); }
.directory-proof article { min-height:120px; padding:1.3rem; display:flex; flex-direction:column; justify-content:space-between; border-right:1px solid var(--line); }
.directory-proof article:last-child { border-right:0; }
.directory-proof strong { color:var(--coral); font:400 2rem Georgia,serif; }
.directory-proof span { color:rgba(21,35,58,.65); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; }
.directory-tools { margin-bottom:1.4rem; display:grid; grid-template-columns:minmax(280px,620px) 1fr; align-items:end; gap:2rem; }
.directory-search { display:grid; gap:.6rem; }
.directory-search > span { color:var(--coral); font-size:.62rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.directory-search input { width:100%; min-height:54px; padding:0 1.1rem; border:1px solid var(--line); border-radius:0; background:var(--paper); color:var(--ink); font:400 1rem Georgia,serif; }
.directory-search input:focus { outline:2px solid var(--coral); outline-offset:2px; }
.directory-tools > p { margin:0 0 .85rem; color:var(--muted); font-size:.75rem; }
.filters { display:flex; gap:.55rem; flex-wrap:wrap; }
.filters-primary { margin-bottom:.8rem; }
.directory-subfilters { min-height:48px; margin-bottom:2rem; }
.filters-secondary { padding:.65rem; background:var(--paper); }
.filters[hidden] { display:none; }
.filters button,.filters a { border:1px solid var(--line); border-radius:3rem; background:transparent; color:var(--ink); padding:.7rem 1.2rem; font-size:.67rem; text-transform:uppercase; letter-spacing:.1em; cursor:pointer; }
.filters button.active,.filters button:hover,.filters a.active,.filters a:hover { background:var(--ink); color:white; }
.filters button span,.filters a span { margin-left:.45rem; opacity:.58; font-size:.58rem; }
.directory-empty { margin:2rem 0; padding:2rem; border:1px solid var(--line); background:var(--paper); color:var(--muted); }
.place { display:grid; grid-template-columns:.58fr 1.45fr .8fr .58fr; align-items:center; gap:1.4rem; min-height:128px; padding:1.15rem 0; border-top:1px solid var(--line); transition:.2s; }
.place:last-child { border-bottom:1px solid var(--line); }
.place:hover { padding-left:1rem; background:var(--paper); }
.place-category { display:grid; gap:.45rem; color:var(--coral); text-transform:uppercase; letter-spacing:.12em; font-size:.6rem; }
.place-category small { color:var(--muted); font-size:.6rem; letter-spacing:.04em; text-transform:none; }
.place-copy { display:grid; gap:.55rem; }
.place-copy strong { font:400 1.45rem Georgia,serif; }
.place-copy small { max-width:620px; color:rgba(21,35,58,.68); font-size:.76rem; line-height:1.55; }
.place-address { display:grid; gap:.45rem; }
.place-address strong { font-size:.78rem; font-weight:600; line-height:1.45; }
.place-address small { color:var(--muted); font-size:.62rem; }
.place em { text-align:right; font-style:normal; text-transform:uppercase; letter-spacing:.1em; font-size:.56rem; }
.place[hidden] { display:none; }
.directory-guide { margin-top:5rem; }
.directory-method { margin-top:4rem; padding:3rem; display:grid; grid-template-columns:.45fr .75fr 1fr; gap:3vw; border-top:2px solid var(--ink); background:var(--paper); }
.directory-method h2 { margin:0; color:var(--wine-dark); font:400 2.2rem/1.05 Georgia,serif; }
.directory-method > p:last-child { margin:0; color:var(--muted); line-height:1.7; }
.practical { background:var(--ink); color:white; }
.practical-head { display:block; max-width:920px; margin-bottom:4rem; }
.practical-head h2 { max-width:680px; margin-bottom:1.4rem; }
.practical-head > p:last-child { max-width:760px; color:rgba(255,255,255,.7); line-height:1.75; }
.tip-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.2); border-left:1px solid rgba(255,255,255,.2); }
.tip-grid article { padding:1.7rem; min-height:320px; border-right:1px solid rgba(255,255,255,.2); border-bottom:1px solid rgba(255,255,255,.2); }
.tip-grid article > span { color:var(--rose); font-size:.65rem; }
.tip-grid h3 { margin-top:4.5rem; }
.tip-grid p { color:rgba(255,255,255,.62); font-size:.85rem; line-height:1.65; }
.source-row { margin-top:2.4rem; display:flex; justify-content:space-between; gap:2rem; color:rgba(255,255,255,.58); font-size:.7rem; line-height:1.5; }
.source-row p { max-width:560px; margin:0; }
.source-row div { display:flex; gap:1.5rem; }
.source-row a { color:white; }
footer { background:#0c1728; color:white; padding:4rem 4.5vw; display:grid; grid-template-columns:1fr 1fr auto; gap:3rem; align-items:end; border-top:1px solid rgba(255,255,255,.1); }
.footer-brand { display:flex; gap:1rem; align-items:center; }
.footer-brand h2 { font-size:1.6rem; letter-spacing:-.02em; }
footer p { margin:.35rem 0; color:rgba(255,255,255,.58); font-size:.68rem; line-height:1.5; }
footer > a { width:46px; height:46px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.3); border-radius:50%; }

.page-hero { min-height:620px; padding:9rem 8.3vw 5rem; position:relative; overflow:hidden; display:flex; align-items:flex-end; color:white; background:var(--navy); }
.page-hero-media { position:absolute; inset:0; width:100%; height:100%; display:block; object-fit:cover; object-position:center 42%; }
.page-hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(13,24,41,.9),rgba(13,24,41,.38) 64%,rgba(13,24,41,.15)); }
.page-hero-shade.coral { background:linear-gradient(90deg,rgba(120,42,43,.94),rgba(207,101,95,.55),rgba(21,35,58,.15)); }
.page-hero-content { position:relative; z-index:1; max-width:930px; }
.page-hero h1 { margin:0; font:400 clamp(3.3rem,5.2vw,5.8rem)/.96 Georgia,'Times New Roman',serif; letter-spacing:-.045em; }
.page-hero-content > p:last-child { max-width:650px; font-size:1.1rem; line-height:1.65; color:rgba(255,255,255,.8); margin:1.7rem 0 0; }
.page-hero-walk .page-hero-media { object-position:center 58%; }
.page-hero-event .page-hero-media { object-position:center; }
.page-hero-directory .page-hero-media { object-position:center 52%; }
.page-hero-practical .page-hero-media { object-position:center 48%; }
.soft { background:var(--white); }
.portal-grid { display:grid; grid-template-columns:repeat(5,1fr); padding-top:0; padding-bottom:0; }
.portal-card { min-height:380px; padding:3rem 1.5rem; border-left:1px solid rgba(255,255,255,.18); display:flex; flex-direction:column; transition:.2s; }
.portal-card:last-child { border-right:1px solid rgba(255,255,255,.18); }
.portal-card:hover { background:rgba(255,255,255,.06); transform:translateY(-6px); }
.portal-card > span { color:var(--rose); font-size:.65rem; }
.portal-card h2 { margin-top:auto; font-size:2rem; }
.portal-card p { min-height:3.8rem; color:rgba(255,255,255,.58); font-size:.82rem; line-height:1.55; }
.portal-card em { font-style:normal; text-transform:uppercase; letter-spacing:.1em; font-size:.57rem; }
.home-event { min-height:600px; }
.story { display:grid; grid-template-columns:.75fr 1.25fr; gap:7vw; }
.story-columns { display:grid; gap:0; }
.story-columns article { display:grid; grid-template-columns:90px 1fr; column-gap:1.5rem; padding:2rem 0; border-top:1px solid var(--line); }
.story-columns article:last-child { border-bottom:1px solid var(--line); }
.story-columns span { color:var(--coral); font:400 1.3rem Georgia,serif; }
.story-columns h3 { margin:0 0 .7rem; font:400 1.55rem Georgia,serif; }
.story-columns p { grid-column:2; margin:0; color:rgba(21,35,58,.68); line-height:1.6; }
.story > div:first-child > p:last-child { max-width:520px; margin-top:1.5rem; color:rgba(21,35,58,.68); line-height:1.75; }
.quote-band { padding:6rem 8.3vw; background:var(--coral); color:white; display:flex; justify-content:space-between; align-items:center; gap:3rem; }
.quote-band blockquote { margin:0; max-width:820px; font:400 clamp(2.7rem,5vw,5rem)/1 Georgia,serif; letter-spacing:-.04em; }
.route-options .section-heading { margin-bottom:3rem; }
.option-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.option-grid article { min-height:300px; padding:2rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.option-grid span { color:var(--coral); font-size:.68rem; letter-spacing:.12em; }
.option-grid h3 { margin:5rem 0 1rem; font:400 2rem Georgia,serif; }
.option-grid p { color:rgba(21,35,58,.68); line-height:1.65; max-width:480px; }
.dark .option-grid { border-color:rgba(255,255,255,.2); }
.dark .option-grid article { border-color:rgba(255,255,255,.2); }
.dark .option-grid p { color:rgba(255,255,255,.62); }
.option-grid.three { grid-template-columns:repeat(3,1fr); }
.agenda-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.agenda-card { display:flex; min-height:390px; padding:2rem; flex-direction:column; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.agenda-card > span { color:var(--coral); font-size:.68rem; letter-spacing:.12em; }
.agenda-card .agenda-date { margin:0 0 1rem; color:var(--wine); font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.agenda-card h3 { margin:2rem 0 1rem; font:400 1.75rem/1.15 Georgia,serif; }
.agenda-card > p:not(.agenda-date) { color:rgba(21,35,58,.68); line-height:1.6; }
.agenda-card .agenda-details { margin:.75rem 0 0; color:var(--wine); font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.agenda-card small { display:block; margin-top:auto; padding-top:1.5rem; color:rgba(21,35,58,.58); line-height:1.45; }
.agenda-card a { align-self:flex-start; margin-top:1rem; padding-bottom:.35rem; border-bottom:1px solid var(--ink); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; }
.practical-data-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.practical-data-card { display:flex; min-height:370px; padding:2rem; flex-direction:column; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.practical-data-category { margin:0; color:var(--coral); font-size:.66rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.practical-data-card h3 { margin:1.5rem 0 1rem; font:400 1.65rem/1.15 Georgia,serif; }
.practical-data-card > p:not(.practical-data-category) { color:rgba(21,35,58,.68); line-height:1.55; }
.practical-data-card .practical-data-hours { color:var(--wine); font-size:.78rem; font-weight:700; }
.practical-data-card small { display:block; margin-top:auto; padding-top:1.5rem; color:rgba(21,35,58,.58); line-height:1.45; }
.practical-data-card a { align-self:flex-start; margin-top:1rem; padding-bottom:.35rem; border-bottom:1px solid var(--ink); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; }
.event-detail { display:grid; grid-template-columns:.75fr 1.25fr; gap:7vw; align-items:center; }
.event-number { font:400 clamp(12rem,26vw,24rem)/.75 Georgia,serif; color:var(--coral); letter-spacing:-.1em; }
.event-copy h2 { font-size:clamp(3rem,5vw,5.2rem); }
.event-copy > p:not(.eyebrow) { max-width:640px; font-size:1.05rem; line-height:1.7; color:rgba(21,35,58,.68); margin:2rem 0; }
.source-card { display:grid; grid-template-columns:1fr .8fr auto; gap:4vw; align-items:end; }
.source-card h2 { font-size:clamp(2.8rem,4.5vw,4.5rem); }
.source-card > p { color:rgba(21,35,58,.64); line-height:1.65; }
.source-card > a { text-transform:uppercase; font-size:.62rem; letter-spacing:.1em; border-bottom:1px solid var(--ink); padding-bottom:.4rem; }
.faq { display:grid; grid-template-columns:.8fr 1.2fr; gap:7vw; }
.faq-list { border-top:1px solid var(--line); }
.faq details { border-bottom:1px solid var(--line); padding:1.6rem 0; }
.faq summary { cursor:pointer; font:400 1.35rem Georgia,serif; }
.faq details p { max-width:650px; color:rgba(21,35,58,.68); line-height:1.65; }
.not-found { min-height:75vh; padding-top:13rem; }
.not-found h1 { margin:0; max-width:850px; font:400 clamp(4rem,8vw,8rem)/.9 Georgia,serif; letter-spacing:-.05em; }
.not-found > p:not(.eyebrow) { color:rgba(255,255,255,.65); margin:2rem 0; }

@media (max-width:1000px) {
  .topbar { grid-template-columns:1fr auto auto; gap:1rem; }
  .menu-toggle { display:block; background:transparent; border:0; color:white; font-size:1.4rem; z-index:2; }
  .topbar nav { display:none; position:absolute; top:84px; left:0; right:0; background:var(--ink); padding:2rem 4.5vw; flex-direction:column; font-size:.85rem; }
  .topbar nav.open { display:flex; }
  .languages { justify-self:auto; }
  .intro,.route { grid-template-columns:1fr; }
  .route .section-heading { position:static; }
  .essential-grid,.tip-grid { grid-template-columns:repeat(2,1fr); }
  .essential-card { min-height:390px; }
  .portal-grid { grid-template-columns:repeat(2,1fr); }
  .portal-card { min-height:300px; }
  .agenda-grid,.practical-data-grid { grid-template-columns:repeat(2,1fr); }
  .story,.event-detail,.faq { grid-template-columns:1fr; }
  .source-card { grid-template-columns:1fr 1fr; }
  .source-card > a { justify-self:start; }
}

@media (max-width:680px) {
  .topbar { height:72px; padding:0 1.2rem; }
  .topbar nav { top:72px; }
  .brand span:not(.brand-mark) { display:none; }
  .hero { min-height:720px; background-position:62% center; }
  .hero-shade { background:linear-gradient(90deg,rgba(13,24,41,.87),rgba(13,24,41,.25)),linear-gradient(0deg,rgba(10,20,35,.65),transparent); }
  .hero-content { margin:0 1.25rem; padding-top:25px; }
  .hero h1 { font-size:clamp(3.4rem,17vw,5.4rem); }
  .hero-copy { font-size:.95rem; }
  .verified { left:1.25rem; right:auto; bottom:2rem; max-width:78vw; line-height:1.4; }
  .scroll-cue { display:none; }
  .section { padding:5rem 1.25rem; }
  h2 { font-size:2.75rem; }
  .intro-copy > p { margin:1.8rem 0 3rem; font-size:1.12rem; }
  .stats { grid-template-columns:1fr; }
  .stats div { border-right:0; border-bottom:1px solid var(--line); padding:1.2rem 0!important; display:grid; grid-template-columns:100px 1fr; align-items:center; }
  .stats span { margin:0; }
  .timeline article { grid-template-columns:42px 1fr; }
  .timeline article time { grid-column:2; grid-row:1; }
  .timeline article > div:last-child { grid-column:2; }
  .section-heading.row,.practical-head { display:block; }
  .side-note { margin-top:1.4rem; }
  .essential-grid,.tip-grid { grid-template-columns:1fr; }
  .essential-card { min-height:360px; }
  .event { min-height:620px; padding:5rem 1.25rem; }
  .event-orbit { width:95vw; height:95vw; right:-42vw; }
  .event-content h2 { font-size:3.3rem; }
  .directory-proof { grid-template-columns:repeat(2,1fr); }
  .directory-visual { grid-template-columns:1fr; }
  .directory-illustration img { min-height:320px; }
  .directory-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .directory-photo-card { min-height:180px; }
  .directory-proof article:nth-child(2) { border-right:0; }
  .directory-proof article:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .directory-tools { grid-template-columns:1fr; gap:.4rem; }
  .directory-tools > p { margin:0; }
  .directory-subfilters { min-height:0; }
  .place { grid-template-columns:1fr auto; gap:.8rem; padding:1.25rem 0; min-height:150px; }
  .place-category,.place-copy,.place-address { grid-column:1; }
  .place-copy strong { font-size:1.3rem; }
  .place em { grid-column:2; grid-row:1 / span 3; max-width:100px; }
  .directory-method { padding:2rem 1.25rem; grid-template-columns:1fr; }
  .source-row { display:block; }
  .source-row div { margin-top:1.5rem; flex-wrap:wrap; }
  footer { grid-template-columns:1fr auto; padding:3.2rem 1.25rem; }
  footer > div:nth-child(2) { grid-column:1 / -1; grid-row:2; }
  .page-hero { min-height:600px; padding:8rem 1.25rem 4rem; }
  .page-hero h1 { font-size:3.6rem; }
  .directory-photo-grid { grid-template-columns:1fr; }
  .directory-photo-card { min-height:220px; }
  .portal-grid { grid-template-columns:1fr; padding:0; }
  .portal-card { min-height:240px; border-right:1px solid rgba(255,255,255,.18); border-bottom:1px solid rgba(255,255,255,.18); }
  .quote-band { padding:4rem 1.25rem; display:block; }
  .quote-band .button { margin-top:2rem; }
  .story-columns article { grid-template-columns:70px 1fr; }
  .option-grid,.option-grid.three,.agenda-grid,.practical-data-grid { grid-template-columns:1fr; }
  .event-number { font-size:12rem; }
  .source-card { grid-template-columns:1fr; }
}

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

:root { --wine:#781f2b; --wine-dark:#4d1019; --navy:#10243a; --cream:#f3eee5; --ivory:#fffdf8; --gold:#c79a45; --charcoal:#1b252f; --muted:#6c6c68; --portal-line:rgba(27,37,47,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:130px; }
body { background:var(--cream); color:var(--charcoal); font-family:Arial,Helvetica,sans-serif; }
a { color:inherit; }
.sr-only,.skip { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip:focus { z-index:999; width:auto; height:auto; clip:auto; margin:10px; padding:.8rem 1rem; background:white; color:#111; }
.utility-bar { min-height:34px; padding:0 4vw; display:flex; align-items:center; justify-content:space-between; gap:2rem; background:var(--wine-dark); color:white; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; }
.utility-bar p { margin:0; }.utility-bar div { display:flex; gap:1.5rem; }.utility-bar a { text-decoration:none; opacity:.86; }.utility-bar a:hover { opacity:1; text-decoration:underline; }
.site-header { position:relative; z-index:50; background:var(--ivory); border-bottom:1px solid var(--portal-line); }
.masthead { min-height:92px; padding:0 4vw; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:2rem; }
.brand { color:var(--wine); display:inline-flex; align-items:center; gap:.85rem; text-decoration:none; width:max-content; }
.brand-mark { width:48px; height:48px; border:1px solid currentColor; border-radius:50%; display:grid; place-items:center; font:italic 1.8rem Georgia,serif; }
.brand-copy { display:grid; line-height:1; }.brand-copy strong,.footer-brand strong { font:400 1.65rem Georgia,serif; }.brand-copy small,.footer-brand small { margin-top:.35rem; font-size:.58rem; letter-spacing:.24em; text-transform:uppercase; }
.masthead-line { color:#7c7369; margin:0; font:italic 1rem Georgia,serif; letter-spacing:.03em; }
.header-actions { justify-self:end; display:flex; align-items:center; gap:1.5rem; }
.language-switcher { position:relative; color:var(--wine-dark); }
.language-switcher summary { min-width:62px; min-height:42px; padding:.55rem .75rem; display:flex; align-items:center; justify-content:center; gap:.65rem; border:1px solid rgba(77,16,25,.25); border-radius:999px; background:#fffdf8; color:var(--wine-dark); cursor:pointer; font-size:.68rem; font-weight:800; letter-spacing:.08em; list-style:none; }
.language-switcher summary::-webkit-details-marker { display:none; }
.language-switcher summary:hover,.language-switcher summary:focus-visible,.language-switcher[open] summary { border-color:var(--wine); background:var(--wine); color:white; outline:none; }
.language-switcher summary i { width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .2s ease; }
.language-switcher[open] summary i { transform:rotate(225deg) translate(-1px,-1px); }
.language-menu { position:absolute; z-index:80; top:calc(100% + .65rem); right:0; width:310px; padding:.55rem; display:grid; grid-template-columns:1fr 1fr; gap:.3rem; border:1px solid var(--portal-line); border-radius:14px; background:#fffdf8; box-shadow:0 18px 42px rgba(25,20,15,.2); }
.language-switcher:not([open]) .language-menu { display:none; }
.language-menu a { min-height:48px; padding:.65rem .75rem; display:grid; grid-template-columns:38px 1fr; align-items:center; gap:.45rem; border-radius:9px; color:var(--wine-dark); text-decoration:none; opacity:1; }
.language-menu a:hover,.language-menu a:focus-visible { background:rgba(120,31,43,.08); outline:none; }
.language-menu a.active { background:var(--wine); color:white; }
.language-menu strong { font-size:.66rem; letter-spacing:.08em; }
.language-menu span { font-size:.75rem; font-weight:500; }
[dir="rtl"] .language-menu { right:auto; left:0; }
[dir="rtl"] .language-menu a { direction:rtl; grid-template-columns:1fr 38px; }
[dir="rtl"] .language-menu a strong { grid-column:2; }
[dir="rtl"] .language-menu a span { grid-column:1; grid-row:1; }
.menu-toggle { display:none; min-width:44px; min-height:44px; padding:.45rem; border:0; background:none; color:var(--wine); cursor:pointer; }.menu-toggle span { width:22px; height:1px; display:block; margin:5px auto; background:currentColor; }.menu-toggle em { font-style:normal; font-size:.58rem; letter-spacing:.15em; text-transform:uppercase; }
.portal-nav { border-top:1px solid var(--portal-line); background:var(--ivory); }.nav-inner { padding:0 4vw; display:grid; grid-template-columns:repeat(8,1fr); }.nav-group { position:relative; border-left:1px solid var(--portal-line); }.nav-group:last-child { border-right:1px solid var(--portal-line); }
.nav-main { min-height:58px; padding:.8rem .65rem; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.25rem; font-size:.69rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; text-decoration:none; }.nav-main span { color:var(--wine); font:italic .68rem Georgia,serif; }.nav-main:hover,.nav-main.active-page { color:white; background:var(--wine); }.nav-main:hover span,.nav-main.active-page span { color:white; }
.nav-panel { position:absolute; top:100%; left:-1px; min-width:270px; padding:1.2rem; display:none; background:var(--ivory); border:1px solid var(--portal-line); box-shadow:0 18px 35px rgba(25,20,15,.15); }.nav-group:nth-last-child(-n+2) .nav-panel { left:auto; right:-1px; }.nav-group:hover .nav-panel,.nav-group:focus-within .nav-panel { display:grid; }.nav-panel p { margin:0 0 .65rem; color:var(--wine); font:italic 1rem Georgia,serif; }.nav-panel a { padding:.55rem 0; border-top:1px solid var(--portal-line); text-decoration:none; font-size:.79rem; }.nav-panel a:hover { color:var(--wine); padding-left:.25rem; }
.section { padding:7rem 6vw; }.eyebrow { letter-spacing:.19em; font-size:.68rem; font-weight:700; text-transform:uppercase; }.eyebrow:before { content:""; width:28px; height:1px; margin-right:.7rem; display:inline-block; vertical-align:middle; background:var(--wine); }.eyebrow.light:before { background:var(--gold); }
.portal-hero { min-height:700px; position:relative; overflow:hidden; color:white; background:var(--navy); }.portal-hero .hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(9,21,34,.9) 0%,rgba(9,21,34,.62) 48%,rgba(9,21,34,.15) 78%),linear-gradient(0deg,rgba(9,21,34,.65),transparent 45%); }.hero-layout { min-height:640px; position:relative; z-index:1; padding:7rem 6vw 4rem; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.48fr); align-items:center; gap:8vw; }.hero-main { max-width:800px; }.hero-main h1 { margin:1.2rem 0 1.4rem; font:400 clamp(4rem,7vw,7.4rem)/.87 Georgia,serif; letter-spacing:-.045em; }.hero-main h1 span { display:block; }.hero-main > p:not(.eyebrow) { max-width:680px; font-size:1.08rem; line-height:1.75; }.hero-actions { margin-top:2rem; display:flex; gap:.8rem; flex-wrap:wrap; }.button { min-height:54px; padding:0 1.5rem; display:inline-flex; align-items:center; justify-content:center; gap:1.7rem; border:1px solid transparent; text-decoration:none; font-size:.68rem; font-weight:bold; letter-spacing:.12em; text-transform:uppercase; }.button.primary { background:var(--wine); color:white; }.button.primary:hover { background:#9b2e3b; }.button.outline { border-color:rgba(255,255,255,.6); color:white; }.button.outline:hover { background:white; color:var(--navy); }.button.pale { background:var(--cream); color:var(--navy); }
.hero-desk { align-self:end; margin-bottom:2rem; padding:1.5rem; background:rgba(12,29,47,.83); border-top:3px solid var(--gold); backdrop-filter:blur(7px); }.hero-desk > span { display:block; padding-bottom:1rem; border-bottom:1px solid rgba(255,255,255,.2); font:.9rem Georgia,serif; }.hero-desk article { padding:1rem 0; display:grid; grid-template-columns:62px 1fr; gap:1rem; border-bottom:1px solid rgba(255,255,255,.16); }.hero-desk time { color:var(--gold); font:italic 1.1rem Georgia,serif; }.hero-desk strong { font-size:.8rem; text-transform:uppercase; letter-spacing:.08em; }.hero-desk p { margin:.35rem 0 0; font-size:.76rem; line-height:1.5; color:rgba(255,255,255,.72); }.hero-desk > a { margin-top:1rem; display:inline-block; color:white; font-size:.69rem; font-weight:bold; text-transform:uppercase; text-decoration:none; }.hero-ribbon { min-height:60px; position:relative; z-index:1; padding:0 6vw; display:flex; align-items:center; justify-content:space-between; background:rgba(77,16,25,.91); font-size:.65rem; font-weight:bold; letter-spacing:.12em; text-transform:uppercase; }.hero-ribbon p { margin:0; }.hero-ribbon span { margin-right:.6rem; color:var(--gold); }
.portal-intro { display:grid; grid-template-columns:1fr 1fr; gap:9vw; background:var(--ivory); }.portal-intro h2,.section-title h2 { margin:.8rem 0 0; color:var(--wine-dark); font:400 clamp(2.8rem,5vw,5.6rem)/.95 Georgia,serif; letter-spacing:-.035em; }.portal-intro > div:last-child { padding-top:1.5rem; }.portal-intro > div:last-child p { margin:0 0 1.5rem; max-width:680px; font:1.25rem/1.7 Georgia,serif; color:#4f4d49; }.text-link { display:inline-block; padding-bottom:.3rem; border-bottom:1px solid var(--wine); color:var(--wine); font-size:.7rem; font-weight:bold; text-decoration:none; letter-spacing:.11em; text-transform:uppercase; }
.portal-directory { background:var(--cream); }.section-title { margin-bottom:3.5rem; display:flex; align-items:end; justify-content:space-between; }.section-title h2 { font-size:clamp(2.7rem,5vw,5rem); }.universe-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:#cfc8bd; border:1px solid #cfc8bd; }.universe-card { min-height:430px; display:grid; grid-template-columns:42% 58%; background:var(--ivory); }.universe-image { min-height:100%; position:relative; display:block; overflow:hidden; }.universe-image img { width:100%; height:100%; position:absolute; inset:0; display:block; object-fit:cover; transition:transform .45s ease; }.universe-image:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(16,36,58,.35),transparent); transition:.3s; }.universe-card:hover .universe-image img { transform:scale(1.035); }.universe-card:hover .universe-image:after { background:rgba(120,31,43,.15); }.universe-image span { position:absolute; z-index:2; top:1rem; left:1rem; width:42px; height:42px; display:grid; place-items:center; border-radius:50%; background:var(--wine); color:white; font:italic 1rem Georgia,serif; }.universe-card > div { padding:2.2rem; display:flex; flex-direction:column; }.universe-card > div > p { margin:0; color:var(--muted); font-size:.65rem; letter-spacing:.12em; text-transform:uppercase; }.universe-card h3 { margin:.55rem 0 1.6rem; color:var(--wine-dark); font:400 2.2rem Georgia,serif; }.universe-card h3 a { text-decoration:none; }.universe-card ul { list-style:none; padding:0; margin:auto 0 0; }.universe-card li { border-top:1px solid var(--portal-line); }.universe-card li a { padding:.68rem 0; display:flex; justify-content:space-between; gap:1rem; font-size:.78rem; text-decoration:none; }.universe-card li a:hover { color:var(--wine); }.universe-card li span { color:var(--wine); }
.home-visual-stories { background:var(--ivory); }.home-visual-stories .section-title > p { max-width:410px; margin:0; color:var(--muted); line-height:1.65; }.home-visual-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--navy); }.home-visual-grid article { min-height:330px; position:relative; overflow:hidden; background:var(--navy); color:white; }.home-visual-grid article:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(12,23,40,.88),transparent 65%); }.home-visual-grid img { width:100%; height:100%; position:absolute; inset:0; display:block; object-fit:cover; transition:transform .5s ease; }.home-visual-grid article:hover img { transform:scale(1.045); }.home-visual-grid article > div { position:absolute; z-index:1; left:1.4rem; right:1.4rem; bottom:1.35rem; }.home-visual-grid small { color:var(--gold); font-size:.62rem; font-weight:bold; letter-spacing:.14em; text-transform:uppercase; }.home-visual-grid h3 { margin:.45rem 0 0; font:400 1.8rem/1 Georgia,serif; }
.agenda-photo-grid { width:min(100%,var(--header-max)); margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--navy); }.agenda-photo-grid figure { min-height:280px; margin:0; overflow:hidden; }.agenda-photo-grid img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .45s ease; }.agenda-photo-grid figure:hover img { transform:scale(1.04); }
.editorial-picks { display:grid; grid-template-columns:.75fr 1.25fr; background:var(--navy); color:white; }.pick-lead { padding:7rem 6vw; background:var(--wine); }.pick-lead h2 { margin:1rem 0 1.5rem; font:400 clamp(3rem,5vw,5rem)/.95 Georgia,serif; }.pick-lead > p:not(.eyebrow) { max-width:420px; line-height:1.7; color:rgba(255,255,255,.78); }.pick-lead .button { margin-top:1.5rem; }.pick-list { padding:4rem 6vw 4rem 4vw; }.pick-list > a { padding:2rem 0; display:grid; grid-template-columns:55px 1fr 30px; gap:1.2rem; border-bottom:1px solid rgba(255,255,255,.18); color:white; text-decoration:none; }.pick-list > a > span { color:var(--gold); font:italic 1rem Georgia,serif; }.pick-list small { color:rgba(255,255,255,.55); font-size:.65rem; text-transform:uppercase; letter-spacing:.12em; }.pick-list h3 { margin:.35rem 0 .6rem; font:400 1.8rem Georgia,serif; }.pick-list p { margin:0; max-width:680px; color:rgba(255,255,255,.68); font-size:.83rem; line-height:1.6; }.pick-list em { font-style:normal; font-size:1.4rem; }.pick-list > a:hover h3 { color:var(--gold); }
.portal-news { display:grid; grid-template-columns:1.55fr .75fr; gap:5vw; background:var(--ivory); }.news-feature { display:grid; grid-template-columns:160px 1fr; gap:2.4rem; }.news-feature .event-number { color:var(--wine); font:italic clamp(5rem,10vw,10rem)/.8 Georgia,serif; }.news-feature h2 { margin:.6rem 0 1rem; color:var(--wine-dark); font:400 clamp(2.2rem,4vw,4.2rem)/1 Georgia,serif; }.news-feature p:not(.eyebrow) { max-width:650px; line-height:1.7; }.portal-news aside { padding-left:2rem; border-left:1px solid var(--portal-line); }.portal-news aside > a { padding:1.25rem 0; display:grid; border-top:1px solid var(--portal-line); text-decoration:none; }.portal-news aside strong { font:400 1.25rem Georgia,serif; }.portal-news aside span { margin-top:.4rem; color:var(--muted); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; }
.section-hero { min-height:510px; position:relative; display:grid; grid-template-columns:1fr 1fr; background:var(--wine); color:white; }.section-hero-image { min-height:510px; background-size:cover; background-position:center; filter:saturate(.8); }.section-hero-copy { padding:5rem 7vw; display:flex; flex-direction:column; justify-content:center; }.section-hero-copy h1 { margin:1rem 0; font:400 clamp(4rem,7vw,7rem)/.9 Georgia,serif; }.section-hero-copy > p:last-child { max-width:650px; font-size:1.02rem; line-height:1.7; color:rgba(255,255,255,.8); }.breadcrumb { position:absolute; bottom:0; right:0; width:50%; padding:1rem 7vw; display:flex; gap:.7rem; background:rgba(0,0,0,.13); font-size:.66rem; text-transform:uppercase; letter-spacing:.1em; }.breadcrumb a { color:white; }
.section-hero-image img { width:100%; height:100%; display:block; object-fit:cover; object-position:center; }
.section-overview { display:grid; grid-template-columns:300px 1fr; gap:8vw; background:var(--ivory); }.section-overview aside { display:flex; flex-direction:column; border-top:3px solid var(--wine); }.section-overview aside > span { padding:1rem 0; color:var(--wine); font-size:.66rem; font-weight:bold; letter-spacing:.12em; text-transform:uppercase; }.section-overview aside a { padding:1rem 0; display:flex; align-items:center; gap:1rem; border-top:1px solid var(--portal-line); text-decoration:none; font-size:.8rem; }.section-overview aside small { color:var(--wine); font:italic .8rem Georgia,serif; }.section-overview h2 { margin:.8rem 0 1.2rem; color:var(--wine-dark); font:400 clamp(2.6rem,5vw,4.8rem)/.95 Georgia,serif; }.section-overview .lead { font:1.25rem/1.7 Georgia,serif; }.section-overview > div > p:last-child { color:var(--muted); line-height:1.7; }
.topic-list { padding-top:0; background:var(--ivory); }.topic-list article { padding:4rem 0; display:grid; grid-template-columns:160px minmax(0,820px); justify-content:center; gap:3vw; border-top:1px solid var(--portal-line); scroll-margin-top:120px; }.topic-number { color:var(--gold); font:italic 3.7rem Georgia,serif; }.topic-list h2 { margin:.5rem 0 1rem; color:var(--wine-dark); font:400 clamp(2.4rem,4vw,4rem) Georgia,serif; }.topic-list article > div:last-child > p:not(.eyebrow) { max-width:730px; font-size:1rem; line-height:1.75; color:#55544f; }.topic-links { margin-top:1.4rem; }.topic-links a { color:var(--wine); font-size:.7rem; font-weight:bold; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; }
.section-crosslinks { display:grid; grid-template-columns:.7fr 1.3fr; gap:7vw; background:var(--cream); }.section-crosslinks h2 { color:var(--wine-dark); font:400 3rem/1.05 Georgia,serif; }.section-crosslinks > div:last-child { display:grid; }.section-crosslinks > div:last-child a { padding:1.2rem 0; display:grid; grid-template-columns:40px 1fr 1fr 25px; align-items:center; gap:1rem; border-top:1px solid var(--portal-line); text-decoration:none; }.section-crosslinks a > span { color:var(--wine); font:italic .8rem Georgia,serif; }.section-crosslinks a > strong { font:400 1.3rem Georgia,serif; }.section-crosslinks a > small { color:var(--muted); }.section-crosslinks a > em { font-style:normal; color:var(--wine); }
.section-crosslinks > div:first-child > p:last-child { max-width:560px; color:var(--muted); line-height:1.7; }
.site-footer { padding:5rem 5vw 2rem; display:grid; grid-template-columns:280px 1fr; gap:7vw; background:#0b1a2b; color:white; }.site-footer > * { min-width:0; }.footer-intro p { color:rgba(255,255,255,.58); font-size:.8rem; line-height:1.6; }.footer-brand { display:flex; align-items:center; gap:.8rem; }.footer-brand > div { display:grid; }.footer-map { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:2.5rem 3vw; }.footer-map > div { min-width:0; display:flex; flex-direction:column; }.footer-map a { padding:.25rem 0; overflow-wrap:anywhere; color:rgba(255,255,255,.55); font-size:.68rem; text-decoration:none; }.footer-map a:first-child { margin-bottom:.45rem; color:white; font:400 1.15rem Georgia,serif; }.footer-map a:hover { color:var(--gold); }.footer-bottom { grid-column:1/-1; padding-top:2rem; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:2rem; border-top:1px solid rgba(255,255,255,.15); color:rgba(255,255,255,.45); font-size:.58rem; letter-spacing:.08em; text-transform:uppercase; }.footer-bottom p { margin:0; }.footer-bottom p:nth-child(2) { text-align:center; }.footer-actions { justify-self:end; display:flex; align-items:center; gap:2rem; }.footer-bottom a { color:white; }

@media (max-width:1050px) {
  .masthead { grid-template-columns:1fr auto; }.masthead-line { display:none; }.menu-toggle { display:block; }.portal-nav { display:none; position:absolute; top:100%; left:0; right:0; max-height:calc(100vh - 120px); overflow:auto; }.portal-nav.open { display:block; }.nav-inner { padding:1rem 4vw 2rem; grid-template-columns:repeat(2,1fr); }.nav-group,.nav-group:last-child { border:0; border-bottom:1px solid var(--portal-line); }.nav-main { align-items:flex-start; font-size:.8rem; }.nav-panel,.nav-group:nth-last-child(-n+2) .nav-panel { min-width:0; position:static; display:grid; padding:0 0 1rem 2.3rem; border:0; box-shadow:none; }.nav-panel p { display:none; }.nav-panel a { padding:.4rem 0; border:0; color:var(--muted); }
  .universe-card { grid-template-columns:38% 62%; }.universe-card > div { padding:1.5rem; }.universe-card h3 { font-size:1.8rem; }
  .editorial-picks { grid-template-columns:1fr; }.pick-lead { padding:5rem 6vw; }.portal-news { grid-template-columns:1fr; }.portal-news aside { padding:2rem 0 0; border-left:0; }
  .site-footer { grid-template-columns:1fr; }.footer-map { grid-template-columns:repeat(4,1fr); }
}
@media (max-width:720px) {
  .utility-bar { min-height:30px; justify-content:center; }.utility-bar p { display:none; }.utility-bar div { width:100%; justify-content:space-between; gap:.6rem; }.masthead { min-height:76px; padding:0 5vw; }.brand-mark { width:40px; height:40px; font-size:1.4rem; }.brand-copy strong { font-size:1.35rem; }.brand-copy small { font-size:.48rem; }.header-actions { gap:.8rem; }.menu-toggle em { display:none; }.nav-inner { grid-template-columns:1fr; }
  .portal-hero { min-height:690px; }.hero-layout { min-height:630px; padding:5rem 5vw 2rem; display:block; }.hero-main h1 { font-size:clamp(3.5rem,15vw,5.6rem); margin-top:1rem; }.hero-main > p:not(.eyebrow) { font-size:.93rem; line-height:1.6; }.hero-desk { display:none; }.hero-ribbon { min-height:60px; padding:0 5vw; }.hero-ribbon p:last-child { display:none; }.button { width:100%; }.section { padding:4.5rem 5vw; }
  .portal-intro { grid-template-columns:1fr; gap:2rem; }.portal-intro h2 { font-size:3rem; }.portal-intro > div:last-child { padding-top:0; }.portal-intro > div:last-child p { font-size:1.05rem; }.section-title { display:block; }.section-title h2 { font-size:3rem; }
  .universe-grid { grid-template-columns:1fr; }.universe-card { min-height:0; grid-template-columns:1fr; }.universe-image { min-height:230px; }.universe-card > div { padding:1.7rem; }.home-visual-grid { grid-template-columns:1fr; }.home-visual-grid article { min-height:280px; }.agenda-photo-grid { grid-template-columns:repeat(2,1fr); }.agenda-photo-grid figure { min-height:220px; }.pick-lead { padding:4.5rem 5vw; }.pick-list { padding:2rem 5vw 3rem; }.pick-list > a { grid-template-columns:35px 1fr 20px; }.pick-list p { display:none; }.news-feature { grid-template-columns:1fr; gap:1rem; }.news-feature .event-number { font-size:6rem; }.portal-news aside { margin-top:1rem; }
  .section-hero { min-height:620px; display:block; }.section-hero-image { min-height:260px; }.section-hero-copy { padding:3.5rem 5vw 5rem; }.section-hero-copy h1 { font-size:4rem; }.breadcrumb { width:100%; padding:1rem 5vw; }.section-overview { grid-template-columns:1fr; gap:3rem; }.section-overview aside { order:2; }.topic-list article { padding:3rem 0; grid-template-columns:50px 1fr; gap:1rem; }.topic-number { font-size:2rem; }.section-crosslinks { grid-template-columns:1fr; }.section-crosslinks h2 { font-size:2.5rem; }.section-crosslinks > div:last-child a { grid-template-columns:32px 1fr 20px; }.section-crosslinks a > small { display:none; }
  .site-footer { grid-template-columns:1fr; }.footer-map { grid-template-columns:repeat(2,minmax(0,1fr)); }.footer-bottom { grid-template-columns:1fr; justify-items:start; gap:.8rem; }.footer-bottom p:nth-child(2) { text-align:left; }.footer-actions { justify-self:start; gap:1.2rem; }
}

@media (max-width:720px) {
  .page-hero-event { background-position:58% center; }
  .page-hero-practical { background-position:57% center; }
}

.home-culture { min-height:660px; display:grid; grid-template-columns:1fr 1fr; background:#3d1821; color:white; }
.home-culture-visual { position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:center; padding:5vw; background:linear-gradient(135deg,rgba(16,36,58,.2),rgba(120,31,43,.6)),url('/img/culture-cancan.wwc-1200.webp') center 28%/cover no-repeat; }
.home-culture-visual:after { content:"M"; position:absolute; right:-.05em; bottom:-.2em; color:rgba(255,255,255,.16); font:italic 34rem Georgia,serif; }
.home-culture-visual span { position:relative; z-index:1; width:max-content; margin:.15rem 0; padding:.25rem .6rem; background:var(--gold); color:var(--navy); font-size:.66rem; font-weight:bold; letter-spacing:.2em; }
.home-culture-copy { padding:6rem 6vw; align-self:center; }.home-culture-copy h2 { margin:1rem 0 1.4rem; font:400 clamp(3rem,5vw,5.4rem)/.95 Georgia,serif; }.home-culture-copy > p:not(.eyebrow) { max-width:620px; color:rgba(255,255,255,.72); line-height:1.75; }.home-culture-copy > div { margin:2rem 0; display:flex; gap:2.5rem; }.home-culture-copy > div strong { color:var(--gold); font:italic 2.4rem Georgia,serif; }.home-culture-copy > div small { display:block; color:white; font:700 .6rem Arial,sans-serif; letter-spacing:.14em; text-transform:uppercase; }
.culture-hero { min-height:650px; display:grid; grid-template-columns:.85fr 1.15fr; background:var(--navy); color:white; }.culture-hero > * { min-width:0; }.culture-hero-art { min-height:650px; position:relative; overflow:hidden; display:flex; align-items:flex-end; justify-content:space-between; padding:2rem; background:var(--navy); }.culture-hero-art span { position:relative; z-index:1; color:white; font:italic 1.1rem Georgia,serif; }.culture-hero-copy { padding:6rem 8vw; display:flex; flex-direction:column; justify-content:center; }.culture-hero-copy h1 { margin:1rem 0 1.5rem; font:400 clamp(4rem,7vw,7.5rem)/.88 Georgia,serif; }.culture-hero-copy > p:not(.eyebrow) { max-width:690px; color:rgba(255,255,255,.7); font-size:1.05rem; line-height:1.7; }.culture-count { margin-top:2rem; padding-top:1.5rem; display:flex; align-items:center; gap:1.2rem; border-top:1px solid rgba(255,255,255,.2); }.culture-count strong { color:var(--gold); font:italic 4rem/1 Georgia,serif; }.culture-count span { font-size:.67rem; line-height:1.5; letter-spacing:.12em; text-transform:uppercase; }
.culture-intro { display:grid; grid-template-columns:1fr 1fr; gap:8vw; background:var(--ivory); }.culture-intro h2 { color:var(--wine-dark); font:400 clamp(3rem,5vw,5.5rem)/.95 Georgia,serif; }.culture-intro > div:last-child > p { font:1.2rem/1.75 Georgia,serif; color:#514d49; }.culture-jump { margin-top:2rem; display:flex; gap:.7rem; flex-wrap:wrap; }.culture-jump a { padding:.75rem 1rem; border:1px solid var(--wine); color:var(--wine); font-size:.65rem; font-weight:bold; letter-spacing:.12em; text-decoration:none; text-transform:uppercase; }
.culture-photo-essay { width:min(100%,var(--header-max)); margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--navy); }.culture-photo-essay figure { min-height:420px; margin:0; position:relative; overflow:hidden; }.culture-photo-essay img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .5s ease; }.culture-photo-essay figure:hover img { transform:scale(1.035); }.culture-photo-essay figcaption { position:absolute; left:1.4rem; right:1.4rem; bottom:1.35rem; max-width:400px; color:white; font:italic 1.15rem/1.35 Georgia,serif; text-shadow:0 1px 18px rgba(0,0,0,.7); }
.culture-chapter { background:var(--navy); color:white; }.chapter-head { margin-bottom:4rem; display:grid; grid-template-columns:1fr .7fr; align-items:end; gap:8vw; }.chapter-head h2 { margin:.7rem 0 0; font:400 clamp(3rem,5vw,5rem)/.95 Georgia,serif; }.chapter-head > p { max-width:550px; color:rgba(255,255,255,.6); line-height:1.7; }.culture-catalogue { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.2); border-left:1px solid rgba(255,255,255,.2); }.culture-catalogue article { min-height:360px; padding:1.8rem; display:grid; grid-template-columns:45px 1fr; gap:1rem; border-right:1px solid rgba(255,255,255,.2); border-bottom:1px solid rgba(255,255,255,.2); }.work-year { color:var(--gold); font:italic 1rem Georgia,serif; writing-mode:vertical-rl; }.work-copy { display:flex; flex-direction:column; }.work-copy > p { margin:0; color:rgba(255,255,255,.5); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; }.work-copy h3 { margin:.8rem 0 .35rem; font:400 1.7rem/1.05 Georgia,serif; }.work-copy strong { color:var(--gold); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; }.work-copy > span { margin-top:1.2rem; color:rgba(255,255,255,.66); font-size:.8rem; line-height:1.65; }.work-copy a { margin-top:auto; padding-top:1rem; color:white; font-size:.62rem; font-weight:bold; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; }
.books-chapter { background:var(--cream); color:var(--charcoal); }.books-chapter .chapter-head > p { color:var(--muted); }.books-chapter .chapter-head h2 { color:var(--wine-dark); }.book-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:#cfc8bd; border:1px solid #cfc8bd; }.book-grid article { min-height:360px; display:grid; grid-template-columns:75px 1fr; background:var(--ivory); }.book-spine { padding:1.3rem .8rem; display:flex; flex-direction:column; justify-content:space-between; align-items:center; background:var(--wine); color:white; }.book-spine span { font:italic 1.4rem Georgia,serif; }.book-spine small { writing-mode:vertical-rl; letter-spacing:.12em; }.book-grid article > div:last-child { padding:2rem; display:flex; flex-direction:column; }.book-grid p { margin:0; color:var(--muted); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; }.book-grid h3 { margin:.7rem 0 .35rem; color:var(--wine-dark); font:400 1.8rem Georgia,serif; }.book-grid strong { color:var(--wine); font-size:.68rem; text-transform:uppercase; }.book-grid article > div:last-child > span { margin-top:1.2rem; color:#5d5954; font-size:.82rem; line-height:1.65; }.book-grid a { margin-top:auto; padding-top:1.2rem; color:var(--wine); font-size:.62rem; font-weight:bold; text-decoration:none; text-transform:uppercase; }
.songs-chapter { background:#37151d; }.song-list { border-top:1px solid rgba(255,255,255,.2); }.song-list article { padding:2rem 0; display:grid; grid-template-columns:60px 90px 1fr; gap:2rem; border-bottom:1px solid rgba(255,255,255,.2); }.song-index { color:var(--gold); font:italic 1rem Georgia,serif; }.song-list time { color:rgba(255,255,255,.45); }.song-list small { color:var(--gold); font-size:.58rem; letter-spacing:.12em; text-transform:uppercase; }.song-list h3 { margin:.4rem 0 .25rem; font:400 2rem Georgia,serif; }.song-list strong { font-size:.67rem; letter-spacing:.1em; text-transform:uppercase; }.song-list p { max-width:700px; color:rgba(255,255,255,.62); font-size:.82rem; line-height:1.6; }.music-source { margin-top:3rem; padding:2rem; display:grid; grid-template-columns:1fr auto; gap:2rem; align-items:center; background:rgba(255,255,255,.07); }.music-source p { margin:0; max-width:800px; line-height:1.6; }.music-source a { color:var(--gold); font-size:.65rem; font-weight:bold; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; }
.archive-gateway { display:grid; grid-template-columns:.7fr 1.3fr; gap:8vw; background:var(--ivory); }.archive-gateway h2 { color:var(--wine-dark); font:400 3.5rem Georgia,serif; }.archive-gateway > div:first-child > p:last-child { color:var(--muted); line-height:1.7; }.archive-gateway > div:last-child a { padding:1.5rem 0; display:grid; grid-template-columns:40px 1fr 1fr 25px; align-items:center; gap:1rem; border-top:1px solid var(--portal-line); text-decoration:none; }.archive-gateway a > span { color:var(--wine); font:italic .9rem Georgia,serif; }.archive-gateway a > strong { font:400 1.3rem Georgia,serif; }.archive-gateway a > small { color:var(--muted); }.archive-gateway a > em { color:var(--wine); font-style:normal; }
.heritage-guide { background:var(--ivory); }.heritage-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--portal-line); }.heritage-grid article { padding:2rem 2rem 2rem 0; display:grid; grid-template-columns:45px 1fr; gap:1.2rem; border-bottom:1px solid var(--portal-line); }.heritage-grid article:nth-child(odd) { border-right:1px solid var(--portal-line); }.heritage-grid article:nth-child(even) { padding-left:2rem; }.heritage-grid article > span { color:var(--gold); font:italic 1rem Georgia,serif; }.heritage-grid small { color:var(--wine); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; }.heritage-grid h3 { margin:.55rem 0; color:var(--wine-dark); font:400 1.7rem Georgia,serif; }.heritage-grid p { color:var(--muted); font-size:.82rem; line-height:1.6; }.heritage-grid a { color:var(--wine); font-size:.6rem; font-weight:bold; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; }.culture-callout { padding:5rem 6vw; display:grid; grid-template-columns:1fr 1fr auto; gap:5vw; align-items:center; background:var(--wine); color:white; }.culture-callout h2 { margin:.7rem 0 0; font:400 3.5rem/1 Georgia,serif; }.culture-callout > p { color:rgba(255,255,255,.7); line-height:1.7; }
.official-hub { display:grid; grid-template-columns:.75fr 1.25fr; gap:8vw; background:var(--cream); }.official-hub h2 { color:var(--wine-dark); font:400 clamp(3rem,5vw,5rem)/.95 Georgia,serif; }.official-hub > div:first-child > p:last-child { color:var(--muted); line-height:1.7; }.official-list { border-top:2px solid var(--wine); }.official-list a { padding:1.25rem 0; display:grid; grid-template-columns:40px 42px 1fr 25px; gap:1rem; align-items:center; border-bottom:1px solid var(--portal-line); text-decoration:none; }.official-list a > span { color:var(--wine); font:italic .8rem Georgia,serif; }.official-list a div { display:grid; }.official-list strong { font:400 1.25rem Georgia,serif; }.official-list small { margin-top:.3rem; color:var(--muted); }.official-list em { color:var(--wine); font-style:normal; }.official-source-mark,.official-source-fallback { width:38px; height:38px; display:grid; place-items:center; object-fit:contain; border-radius:50%; background:white; border:1px solid var(--portal-line); }.official-source-fallback { color:var(--wine); font:italic 1rem Georgia,serif; }
.editorial-photo-band { padding-top:0; padding-bottom:0; background:var(--ivory); }.editorial-photo-band figure { max-width:1180px; margin:0 auto; position:relative; }.editorial-photo-band img { width:100%; min-height:360px; max-height:620px; display:block; object-fit:cover; }.editorial-photo-band figcaption { max-width:480px; position:absolute; right:0; bottom:0; padding:1rem 1.25rem; background:rgba(16,36,58,.9); color:rgba(255,255,255,.9); font:italic .95rem/1.45 Georgia,serif; }.editorial-photo-band-dark { background:var(--navy); }.editorial-photo-band-compact { background:var(--cream); }

@media (max-width:1000px) {
  .culture-catalogue { grid-template-columns:repeat(2,1fr); }.home-culture { grid-template-columns:1fr; }.home-culture-visual { min-height:430px; }.culture-hero { grid-template-columns:1fr; }.culture-hero-art { min-height:420px; }.culture-hero-copy { padding:5rem 6vw; }.official-hub,.archive-gateway { grid-template-columns:1fr; }.culture-photo-essay { grid-template-columns:1fr; }.culture-photo-essay figure { min-height:380px; }
}
@media (max-width:720px) {
  .home-culture-visual { background-image:linear-gradient(135deg,rgba(16,36,58,.2),rgba(120,31,43,.6)),url('/img/culture-cancan.wwc-768.webp'); }
  .home-culture-visual { min-height:300px; }.home-culture-visual:after { font-size:20rem; }.home-culture-copy { padding:4rem 5vw; }.home-culture-copy h2 { font-size:3rem; }.home-culture-copy > div { gap:1.5rem; }.culture-hero-art { min-height:320px; }.culture-hero-copy { padding:4rem 5vw; }.culture-hero-copy h1 { font-size:3.8rem; }.culture-intro,.chapter-head { grid-template-columns:1fr; gap:2rem; }.culture-catalogue { grid-template-columns:1fr; }.culture-catalogue article { min-height:310px; }.book-grid { grid-template-columns:1fr; }.book-grid article { min-height:330px; }.song-list article { grid-template-columns:35px 1fr; gap:1rem; }.song-list time { display:none; }.music-source { grid-template-columns:1fr; }.archive-gateway > div:last-child a { grid-template-columns:32px 1fr 20px; }.archive-gateway a > small { display:none; }.heritage-grid { grid-template-columns:1fr; }.heritage-grid article,.heritage-grid article:nth-child(even) { padding:1.7rem 0; border-right:0; }.culture-callout { grid-template-columns:1fr; }.culture-callout h2 { font-size:3rem; }.official-hub { grid-template-columns:1fr; }.editorial-photo-band { padding-left:0; padding-right:0; }.editorial-photo-band img { min-height:270px; }.editorial-photo-band figcaption { max-width:88%; padding:.8rem 1rem; font-size:.84rem; }
}

:root { --site-gutter:clamp(1.5rem,3vw,3.5rem); --content-max:1500px; --header-max:1750px; --footer-max:1350px; }
.utility-bar { padding:0; }
.utility-inner,.masthead,.nav-inner,.hero-layout,.hero-ribbon-inner { width:min(calc(100% - var(--site-gutter) - var(--site-gutter)),var(--header-max)); margin-inline:auto; }
.utility-inner { min-height:34px; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.masthead,.nav-inner { padding-inline:0; }
.brand-logo { width:246px; height:64px; display:block; }
.hero-layout { padding-inline:0; }
.hero-ribbon { padding-inline:0; }
.hero-ribbon-inner { min-height:60px; display:flex; align-items:center; justify-content:space-between; }
.section,.page-hero,.event,.quote-band,.culture-callout { padding-left:max(var(--site-gutter),calc((100vw - var(--content-max)) / 2)); padding-right:max(var(--site-gutter),calc((100vw - var(--content-max)) / 2)); }
.editorial-picks,.home-culture,.culture-hero,.section-hero { width:min(100%,var(--header-max)); margin-inline:auto; }
.site-footer { display:block; padding:5rem var(--site-gutter) 2rem; }
.footer-shell { width:100%; max-width:var(--footer-max); margin-inline:auto; display:grid; grid-template-columns:280px 1fr; gap:3.5rem 7vw; }
.footer-shell > * { min-width:0; }
.footer-brand img { width:min(246px,100%); height:auto; display:block; }
.legal-hero { padding-top:7rem; padding-bottom:5rem; background:var(--ivory); }
.legal-hero h1 { max-width:1100px; margin:.7rem 0 1.2rem; color:var(--wine-dark); font:400 clamp(3.8rem,7vw,7rem)/.92 Georgia,serif; letter-spacing:-.04em; }
.legal-hero > p:last-child { max-width:760px; color:var(--muted); font:1.2rem/1.65 Georgia,serif; }
.legal-layout { padding-top:5rem; display:grid; grid-template-columns:260px minmax(0,1fr); gap:clamp(3rem,7vw,8rem); background:var(--cream); }
.legal-layout > aside { height:max-content; position:sticky; top:2rem; display:grid; border-top:3px solid var(--wine); }
.legal-layout > aside a { padding:1rem 0; border-bottom:1px solid var(--portal-line); color:var(--muted); font-size:.72rem; font-weight:bold; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; }
.legal-layout > aside a:hover { color:var(--wine); }
.legal-content { max-width:940px; }
.legal-content section { padding:0 0 4rem; scroll-margin-top:2rem; }
.legal-content section + section { padding-top:4rem; border-top:1px solid var(--portal-line); }
.legal-number { margin:0 0 .7rem; color:var(--gold); font:italic 1rem Georgia,serif; }
.legal-content h2 { margin:0 0 1.4rem; color:var(--wine-dark); font:400 clamp(2.2rem,4vw,3.8rem)/1 Georgia,serif; }
.legal-content p { max-width:850px; color:#514f4b; line-height:1.75; }
.legal-content a { color:var(--wine); font-weight:bold; text-decoration:underline; text-underline-offset:.2em; overflow-wrap:anywhere; }

.portal-hero { background-image:none; }
.portal-hero-media { position:absolute; inset:0; display:block; }
.portal-hero-media img { width:100%; height:100%; display:block; object-fit:cover; object-position:center 48%; }
.section-hero-image { overflow:hidden; background-image:none; }
.culture-hero-art { background-image:none; }
.culture-hero-art img { position:absolute; inset:0; width:100%; height:100%; display:block; object-fit:cover; }
.culture-hero-art:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(16,36,58,.62),transparent 55%); }

@media (max-width:720px) {
  .portal-hero,.page-hero,.page-hero-walk,.page-hero-event,.page-hero-directory,.page-hero-practical,.section-hero-image,.culture-hero-art { background-image:none; }
  .portal-hero-media img { object-position:center 42%; }
  .page-hero-event .page-hero-media { object-position:58% center; }
  .page-hero-practical .page-hero-media { object-position:57% center; }
}

@media (max-width:1050px) {
  .footer-shell { grid-template-columns:1fr; }
  .footer-ai,.footer-bottom { grid-column:1; }
}
@media (max-width:720px) {
  :root { --site-gutter:1.25rem; }
  .utility-inner { justify-content:center; }
  .utility-inner { width:calc(100% - var(--site-gutter) - var(--site-gutter)); }
  .utility-inner > p { display:none; }
  .utility-inner > div a:nth-child(2),.utility-inner > div a:nth-child(4) { display:none; }
  .masthead { padding-inline:0; gap:.75rem; }
  .brand-logo { width:178px; height:auto; }
  .language-switcher summary { min-width:54px; min-height:44px; padding:.45rem .65rem; }
  .language-menu { position:fixed; top:108px; left:var(--site-gutter); right:var(--site-gutter); width:auto; grid-template-columns:1fr 1fr; }
  .hero-layout { padding:5rem 0 2rem; }
  .hero-ribbon { padding-inline:0; }
  .hero-ribbon-inner p:last-child { display:none; }
  .section,.page-hero,.event,.quote-band,.culture-callout { padding-left:var(--site-gutter); padding-right:var(--site-gutter); }
  .site-footer { padding:3.5rem var(--site-gutter) 2rem; }
  .footer-shell { gap:2.5rem; }
  .footer-map { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer-bottom { align-items:flex-start; }
  .legal-hero { padding-top:5rem; padding-bottom:3.5rem; }
  .legal-hero h1 { font-size:3.7rem; }
  .legal-layout { padding-top:3rem; grid-template-columns:1fr; gap:3rem; }
  .legal-layout > aside { position:static; }
  .legal-content section { padding-bottom:3rem; }
  .legal-content section + section { padding-top:3rem; }
}

/* Directory pagination and server-side search. */
.directory-tools .button{border:0;cursor:pointer;align-self:center}
.directory-pagination{margin:1.5rem 0;padding:1rem 0;border-block:1px solid #d9d2c8}
.directory-pagination p{margin:0 0 .75rem}
.directory-pagination>div{display:flex;flex-wrap:wrap;gap:.4rem}
.directory-pagination a,.directory-pagination [aria-current]{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:.4rem .7rem;border:1px solid #d9d2c8;border-radius:4px}
.directory-pagination [aria-current]{background:#781f2b;color:#fff}
.directory-pagination a:hover{background:#eee8df}
.directory-pagination a:focus-visible{outline:3px solid #781f2b;outline-offset:2px}
@media(max-width:720px){.directory-tools{display:flex;flex-direction:column;align-items:stretch}.directory-tools .button{align-self:flex-start}}

/* Homepage answer-first layer: concise facts for visitors and answer engines. */
.home-answer { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr); gap:clamp(3rem,7vw,8rem); background:var(--navy); color:white; }
.home-answer-copy h2 { max-width:760px; margin:.8rem 0 1.6rem; font:400 clamp(3rem,5.4vw,5.8rem)/.94 Georgia,serif; letter-spacing:-.04em; }
.home-answer-copy > p:not(.eyebrow) { max-width:760px; color:rgba(255,255,255,.69); line-height:1.75; }
.home-answer-copy .home-answer-lead { color:white!important; font:400 clamp(1.2rem,1.8vw,1.55rem)/1.6 Georgia,serif; }
.home-answer-actions { margin:2rem 0; display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap; }
.home-answer-actions .text-link { color:white; border-color:var(--gold); }
.home-answer-sources { margin:2.3rem 0 0!important; padding-top:1.2rem; border-top:1px solid rgba(255,255,255,.18); font-size:.7rem; }
.home-answer-sources strong { color:white; }.home-answer-sources a { color:var(--gold); text-underline-offset:.2em; }.home-answer-sources span { white-space:nowrap; }
.home-answer-facts { margin:0; border-top:3px solid var(--gold); align-self:start; }
.home-answer-facts > div { padding:1.35rem 0; display:grid; grid-template-columns:100px 1fr; gap:1rem; border-bottom:1px solid rgba(255,255,255,.18); }
.home-answer-facts dt { padding-top:.22rem; color:var(--gold); font-size:.62rem; font-weight:bold; letter-spacing:.14em; text-transform:uppercase; }
.home-answer-facts dd { margin:0; }.home-answer-facts dd strong { display:block; font:400 1.45rem/1.15 Georgia,serif; }.home-answer-facts dd span { max-width:500px; margin-top:.45rem; display:block; color:rgba(255,255,255,.64); font-size:.78rem; line-height:1.55; }

.home-planner { background:var(--cream); }
.home-planner .section-title > p { max-width:470px; margin:0; color:var(--muted); line-height:1.65; }
.home-planner-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--portal-line); border-left:1px solid var(--portal-line); }
.home-planner-grid article { min-height:480px; padding:2rem; display:flex; flex-direction:column; background:var(--ivory); border-right:1px solid var(--portal-line); border-bottom:1px solid var(--portal-line); }
.planner-index { color:var(--gold); font:italic 1rem Georgia,serif; }
.planner-duration { margin:2.8rem 0 .7rem; color:var(--wine); font-size:.62rem; font-weight:bold; letter-spacing:.15em; text-transform:uppercase; }
.home-planner-grid h3 { min-height:2.4em; margin:0 0 1rem; color:var(--wine-dark); font:400 clamp(1.7rem,2.4vw,2.25rem)/1.05 Georgia,serif; }
.home-planner-grid article > p:not(.planner-duration) { color:#585650; font-size:.86rem; line-height:1.7; }
.home-planner-grid ul { margin:1rem 0 1.5rem; padding:0; list-style:none; }
.home-planner-grid li { padding:.55rem 0; border-top:1px solid var(--portal-line); color:var(--muted); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; }
.home-planner-grid a { margin-top:auto; padding-top:1rem; display:flex; justify-content:space-between; border-top:2px solid var(--wine); color:var(--wine); font-size:.64rem; font-weight:bold; letter-spacing:.11em; text-decoration:none; text-transform:uppercase; }
.home-planner-grid article:hover { background:white; }.home-planner-grid article:hover h3 { color:var(--wine); }

.home-faq { display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(3rem,8vw,9rem); background:var(--ivory); }
.home-faq-heading { align-self:start; position:sticky; top:2rem; }
.home-faq-heading h2 { margin:.8rem 0 1.3rem; color:var(--wine-dark); font:400 clamp(3rem,5vw,5rem)/.95 Georgia,serif; letter-spacing:-.035em; }
.home-faq-heading > p:not(.eyebrow) { max-width:520px; color:var(--muted); line-height:1.7; }
.home-faq-heading .text-link { margin-top:1rem; }
.home-faq-list { border-top:3px solid var(--wine); }
.home-faq-list details { border-bottom:1px solid var(--portal-line); }
.home-faq-list summary { min-height:82px; padding:1.4rem 0; display:grid; grid-template-columns:1fr 32px; align-items:center; gap:1rem; color:var(--wine-dark); cursor:pointer; list-style:none; font:400 1.35rem/1.35 Georgia,serif; }
.home-faq-list summary::-webkit-details-marker { display:none; }
.home-faq-list summary span { width:30px; height:30px; display:grid; place-items:center; border:1px solid var(--portal-line); border-radius:50%; color:var(--wine); font:400 1rem Arial,sans-serif; transition:transform .2s ease; }
.home-faq-list details[open] summary span { transform:rotate(45deg); background:var(--wine); color:white; }
.home-faq-list details p { max-width:780px; margin:0; padding:0 3rem 1.6rem 0; color:#585650; line-height:1.75; }

@media (max-width:1050px) {
  .home-answer { grid-template-columns:1fr; }.home-answer-facts { width:100%; }.home-planner-grid { grid-template-columns:1fr; }.home-planner-grid article { min-height:0; }.home-planner-grid h3 { min-height:0; }.home-faq { grid-template-columns:1fr; }.home-faq-heading { position:static; }
}
@media (max-width:720px) {
  .home-answer-copy h2 { font-size:3.2rem; }.home-answer-actions { align-items:stretch; }.home-answer-actions .button { width:100%; }.home-answer-actions .text-link { width:max-content; }.home-answer-facts > div { grid-template-columns:1fr; gap:.45rem; }.home-answer-sources span { white-space:normal; }.home-planner .section-title > p { margin-top:1.2rem; }.home-planner-grid article { padding:1.6rem; }.planner-duration { margin-top:1.8rem; }.home-faq-heading h2 { font-size:3rem; }.home-faq-list summary { min-height:72px; font-size:1.15rem; }.home-faq-list details p { padding-right:0; }
}

/* Discovery field guide. */
.street-reading { background:var(--navy); color:white; }
.street-reading .section-heading h2 { max-width:820px; }
.street-reading .side-note { color:rgba(255,255,255,.64); }
.street-reading-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.2); border-left:1px solid rgba(255,255,255,.2); }
.street-reading-grid article { min-height:390px; padding:1.8rem; display:flex; flex-direction:column; border-right:1px solid rgba(255,255,255,.2); border-bottom:1px solid rgba(255,255,255,.2); }
.street-reading-grid article > span { color:var(--gold); font:italic 1rem Georgia,serif; }
.street-reading-grid h3 { margin:4rem 0 1rem; font:400 1.75rem/1.08 Georgia,serif; }
.street-reading-grid p { margin:0; color:rgba(255,255,255,.66); font-size:.84rem; line-height:1.68; }
.street-reading-grid a { margin-top:auto; padding-top:1rem; border-top:1px solid rgba(255,255,255,.2); color:var(--gold); font-size:.62rem; font-weight:bold; letter-spacing:.11em; text-decoration:none; text-transform:uppercase; }
.street-reading-grid article:hover { background:rgba(255,255,255,.05); }.street-reading-grid article:hover h3 { color:var(--gold); }
@media (max-width:1050px) { .street-reading-grid { grid-template-columns:repeat(2,1fr); }.street-reading-grid article { min-height:330px; } }
@media (max-width:720px) { .street-reading .section-heading.row { display:block; }.street-reading .side-note { margin-top:1.4rem; }.street-reading-grid { grid-template-columns:1fr; }.street-reading-grid article { min-height:290px; padding:1.5rem; }.street-reading-grid h3 { margin-top:2.5rem; } }

/* Cross-site invitation to the broader Paris guide. */
.paris-guide-promo { position:relative; overflow:hidden; display:grid; grid-template-columns:140px minmax(0,1fr) minmax(290px,410px); gap:clamp(2rem,5vw,5rem); align-items:center; color:white; isolation:isolate; }
.paris-guide-promo--wine { background:var(--wine-dark); }
.paris-guide-promo--navy { background:var(--navy); }
.paris-guide-promo:after { content:"PARIS"; position:absolute; right:-.04em; bottom:-.24em; z-index:-1; color:rgba(255,255,255,.035); font:700 clamp(8rem,22vw,21rem)/.8 Arial,sans-serif; letter-spacing:-.08em; pointer-events:none; }
.paris-guide-promo-mark { min-height:190px; display:flex; flex-direction:column; justify-content:space-between; padding-right:2rem; border-right:1px solid rgba(255,255,255,.2); }
.paris-guide-promo-mark span { writing-mode:vertical-rl; transform:rotate(180deg); color:var(--gold); font-size:.64rem; font-weight:bold; letter-spacing:.38em; }
.paris-guide-promo-mark i { color:var(--gold); font:400 2.2rem Georgia,serif; }
.paris-guide-promo-copy h2 { max-width:720px; margin:.8rem 0 1.1rem; font:400 clamp(2.7rem,4.8vw,5.2rem)/.94 Georgia,serif; letter-spacing:-.035em; }
.paris-guide-promo-copy > p:last-child { max-width:700px; margin:0; color:rgba(255,255,255,.68); line-height:1.7; }
.paris-guide-promo-link { min-height:180px; padding:1.7rem; display:grid; grid-template-columns:1fr auto; grid-template-rows:auto 1fr; gap:1.5rem; align-items:end; border:1px solid rgba(255,255,255,.3); color:white; text-decoration:none; transition:background .2s ease,border-color .2s ease,transform .2s ease; }
.paris-guide-promo-link span { grid-column:1/-1; align-self:start; color:rgba(255,255,255,.58); font-size:.58rem; letter-spacing:.08em; overflow-wrap:anywhere; }
.paris-guide-promo-link strong { max-width:220px; font:400 1.7rem/1.08 Georgia,serif; }
.paris-guide-promo-link em { color:var(--gold); font:400 1.8rem Georgia,serif; }
.paris-guide-promo-link:hover { background:rgba(255,255,255,.08); border-color:var(--gold); transform:translateY(-3px); }
.paris-guide-promo-link:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
@media (max-width:1050px) { .paris-guide-promo { grid-template-columns:90px 1fr; }.paris-guide-promo-link { grid-column:2; min-height:0; grid-template-columns:1fr auto; grid-template-rows:auto auto; }.paris-guide-promo-mark { grid-row:1/3; height:100%; }.paris-guide-promo-link span { grid-column:1; }.paris-guide-promo-link strong { max-width:none; } }
@media (max-width:720px) { .paris-guide-promo { grid-template-columns:1fr; gap:2rem; }.paris-guide-promo:after { bottom:-.08em; font-size:34vw; }.paris-guide-promo-mark { min-height:0; padding:0 0 1.2rem; flex-direction:row; border-right:0; border-bottom:1px solid rgba(255,255,255,.2); }.paris-guide-promo-mark span { writing-mode:horizontal-tb; transform:none; }.paris-guide-promo-mark i { font-size:1.4rem; }.paris-guide-promo-copy h2 { font-size:3rem; }.paris-guide-promo-link { grid-column:1; padding:1.4rem; }.paris-guide-promo-link span { grid-column:1/-1; } }

/* Cross-site invitation to Paris France Communication. */
.communication-promo { position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(440px,.8fr); gap:clamp(3rem,8vw,9rem); align-items:center; overflow:hidden; background:var(--ivory); border-top:1px solid var(--portal-line); border-bottom:1px solid var(--portal-line); }
.communication-promo:before { content:""; position:absolute; inset:0 auto 0 0; width:10px; background:linear-gradient(var(--coral) 0 33.33%,var(--navy) 33.33% 66.66%,var(--gold) 66.66%); }
.communication-promo-copy h2 { max-width:820px; margin:.8rem 0 1.3rem; color:var(--navy); font:400 clamp(2.8rem,5vw,5.3rem)/.94 Georgia,serif; letter-spacing:-.04em; }
.communication-promo-copy > p:last-child { max-width:750px; margin:0; color:#585650; font:400 1.08rem/1.75 Georgia,serif; }
.communication-promo-offer { position:relative; z-index:1; padding:2rem; background:var(--cream); border:1px solid var(--portal-line); box-shadow:18px 18px 0 rgba(16,36,58,.06); }
.communication-promo-offer ul { margin:0 0 2rem; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); list-style:none; border-top:1px solid var(--portal-line); }
.communication-promo-offer li { padding:.85rem .4rem .85rem 0; border-bottom:1px solid var(--portal-line); color:var(--navy); font-size:.64rem; font-weight:bold; letter-spacing:.09em; text-transform:uppercase; }
.communication-promo-offer li:nth-child(even) { padding-left:1rem; border-left:1px solid var(--portal-line); }
.communication-promo-offer a { min-height:118px; padding:1.4rem; display:grid; grid-template-columns:1fr auto; align-items:end; gap:.7rem 1rem; background:var(--navy); color:white; text-decoration:none; transition:background .2s ease,transform .2s ease; }
.communication-promo-offer a span { grid-column:1/-1; align-self:start; color:rgba(255,255,255,.55); font-size:.56rem; letter-spacing:.07em; overflow-wrap:anywhere; }
.communication-promo-offer a strong { font:400 1.55rem/1.1 Georgia,serif; }
.communication-promo-offer a em { color:var(--gold); font:400 1.6rem Georgia,serif; }
.communication-promo-offer a:hover { background:var(--wine); transform:translateY(-3px); }
.communication-promo-offer a:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
@media (max-width:1050px) { .communication-promo { grid-template-columns:1fr; }.communication-promo-offer { width:100%; max-width:780px; } }
@media (max-width:720px) { .communication-promo { gap:2.5rem; }.communication-promo:before { width:6px; }.communication-promo-copy h2 { font-size:3rem; }.communication-promo-copy > p:last-child { font-size:1rem; }.communication-promo-offer { padding:1.25rem; box-shadow:10px 10px 0 rgba(16,36,58,.06); }.communication-promo-offer ul { grid-template-columns:1fr; }.communication-promo-offer li:nth-child(even) { padding-left:0; border-left:0; }.communication-promo-offer a { padding:1.2rem; }.communication-promo-offer a strong { font-size:1.4rem; } }
