:root { color-scheme: light; --ink:#272228; --muted:#645a60; --wine:#842c40; --wine-dark:#6e2234; --paper:#fffdfb; --rose:#f8eeee; --line:#e8deda; }
* { box-sizing:border-box; }
html { font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; line-height:1.7; scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); }
a { color:var(--wine); text-underline-offset:3px; }
a:hover { text-decoration-thickness:2px; }
.container { width:min(100% - 42px, 1020px); margin-inline:auto; }
.cover { position:relative; min-height:244px; background-color:#42353c; background-image:linear-gradient(100deg,rgba(18,14,20,.78),rgba(31,16,26,.25)); background-position:center 48%; background-size:cover; }
.cover-overlay { min-height:244px; background:linear-gradient(90deg,rgba(23,14,18,.72),rgba(23,14,18,.12)); display:flex; align-items:flex-end; }
.cover-inner { padding-block:54px 38px; }
.brand { display:inline-block; font:700 clamp(2rem,5vw,3.35rem)/1.1 Georgia, 'Times New Roman', serif; letter-spacing:-.035em; color:#fff; text-decoration:none; }
.brand:hover { text-decoration:none; color:#fff; }
.tagline { margin:.65rem 0 0; color:#f5e8e8; font-size:.99rem; letter-spacing:.035em; }
.site-nav { background:white; border-bottom:1px solid var(--line); box-shadow:0 3px 10px rgba(42,23,29,.035); }
.nav-inner { display:flex; align-items:stretch; flex-wrap:wrap; gap:0 20px; }
.site-nav a { display:inline-flex; align-items:center; padding:15px 1px 13px; border-bottom:3px solid transparent; color:var(--ink); text-decoration:none; font-size:.96rem; white-space:nowrap; }
.site-nav a:hover,.site-nav a[aria-current=page] { color:var(--wine); }
.site-nav a[aria-current=page] { font-weight:700; border-bottom-color:var(--wine); }
.page-main { min-height:440px; padding-block:56px 90px; }
h1,h2,h3 { font-family:Georgia,'Times New Roman',serif; line-height:1.24; letter-spacing:-.02em; }
h1 { font-size:clamp(2.4rem,4.7vw,3.8rem); margin:0 0 26px; }
h2 { font-size:clamp(1.6rem,2.4vw,2.1rem); margin:44px 0 16px; }
h3 { font-size:1.24rem; margin:0 0 10px; }
p { margin:0 0 19px; }
.eyebrow { text-transform:uppercase; font-size:.76rem; font-weight:750; letter-spacing:.15em; color:var(--wine); margin:0 0 13px; }
.lead { font-size:clamp(1.15rem,2vw,1.36rem); line-height:1.6; color:#42373e; }
.prose { max-width:800px; }
.prose ul { padding-left:1.5rem; }
.prose .video { margin:28px 0; }
.video iframe { display:block; width:100%; aspect-ratio:16/9; border:0; border-radius:8px; background:#262127; }
figcaption, .caption-text { color:var(--muted); font-size:.83rem; line-height:1.55; padding-top:8px; }
figure { margin:10px 0 24px; }
.photo-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-top:40px; }
.photo-grid img { display:block; width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:8px; background:#e7dad6; }
.photo-grid img:not([src]) { display:none; }
.welcome { max-width:730px; }
.welcome h1 { max-width:720px; }
.main-feature { margin-top:42px; padding:clamp(24px,4vw,44px); max-width:890px; background:var(--rose); border-left:5px solid var(--wine); border-radius:0 9px 9px 0; }
.main-feature h2 { font-size:clamp(2rem,3.5vw,3rem); margin:0 0 16px; }
.main-feature p:not(.eyebrow):not(.micro) { max-width:680px; font-size:1.13rem; }
.main-feature .micro { margin:16px 0 0; font-size:.85rem; color:var(--muted); }
.button { display:inline-flex; align-items:center; gap:13px; background:var(--wine); color:#fff; padding:12px 18px; border-radius:5px; text-decoration:none; font-size:.95rem; font-weight:650; }
.button:hover { background:var(--wine-dark); color:#fff; }
.section-space { margin-top:76px; }
.feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:24px 0 26px; }
.feature { display:block; min-height:180px; position:relative; border:1px solid var(--line); border-radius:7px; padding:24px; background:white; color:var(--ink); text-decoration:none; }
.feature:hover { border-color:var(--wine); box-shadow:0 3px 16px rgba(61,26,34,.065); text-decoration:none; }
.feature h3 { margin:6px 0 8px; }
.feature p { color:var(--muted); font-size:.92rem; line-height:1.5; }
.feature-label { font-size:.76rem; color:var(--wine); font-weight:650; }
.feature-arrow { position:absolute; right:18px; bottom:12px; color:var(--wine); }
.notice { border-left:4px solid var(--wine); background:var(--rose); padding:16px 20px; margin:32px 0; border-radius:0 6px 6px 0; }
.schedule { margin:24px 0 34px; border-top:1px solid var(--line); }
.schedule-row { display:grid; grid-template-columns:130px 1fr; gap:24px; border-bottom:1px solid var(--line); padding:21px 0; }
.schedule-time { color:var(--wine); font-weight:700; white-space:nowrap; }
.schedule-row h3 { margin:0 0 8px; }
.schedule-row p { margin:0; }
.archive-card { background:#f9f3f0; border:1px solid var(--line); border-radius:8px; padding:24px; margin-top:38px; }
.archive-card h3 { font-size:1.4rem; }
.archive-card p:last-child { margin-bottom:0; }
.archive { padding:14px 18px; background:var(--rose); border-left:4px solid var(--wine); }
.site-footer { border-top:1px solid var(--line); background:#fff; }
.footer-inner { padding-block:26px 33px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px 24px; font-size:.88rem; color:var(--muted); }
@media(max-width:720px) { .cover,.cover-overlay { min-height:190px; } .cover-inner { padding-block:43px 29px; } .page-main { padding-block:35px 64px; } .feature-grid { grid-template-columns:1fr; } .feature { min-height:125px; } .photo-grid { grid-template-columns:1fr; } .photo-grid img { max-width:600px; } .section-space { margin-top:54px; } }
@media(max-width:480px) { .container { width:min(100% - 30px,1020px); } .nav-inner { gap:0 16px; } .site-nav a { font-size:.88rem; padding:10px 0 8px; } .schedule-row { grid-template-columns:1fr; gap:4px; } }


/* Compact home introduction and Sunday Practica feature. */
.home-kicker { margin-bottom: 13px; font-family:inherit; line-height:1.5; }
.welcome .lead { margin-bottom:0; }
.main-feature { margin-top:27px; padding:clamp(20px,3vw,30px); }
.main-feature h2 { font-size:clamp(1.65rem,3vw,2.35rem); margin-bottom:10px; }
.main-feature p:not(.eyebrow):not(.micro) { font-size:1.04rem; line-height:1.65; margin-bottom:0; }
.page-main:has(.welcome) { padding-top:40px; padding-bottom:66px; }


/* Practica and Other Events v4 */
.prose .content-section + .content-section { margin-top:50px; padding-top:12px; border-top:1px solid var(--line); }
.prose .content-section > h2:first-child { margin-top:28px; }
.practica-page .content-section:first-child h1 { max-width:780px; font-size:clamp(2.15rem,4vw,3.3rem); }
.practica-page .focus-list, .practica-page .parking-list { margin:14px 0 26px; padding-left:1.35rem; }
.practica-page .focus-list li, .practica-page .parking-list li { padding-left:.25rem; margin-bottom:12px; line-height:1.68; }
.practica-page .focus-list li::marker, .practica-page .parking-list li::marker { color:var(--wine); }
.practica-page .focus-list strong { color:#3b2931; }
.venue-box { border-left:4px solid var(--wine); background:var(--rose); border-radius:0 7px 7px 0; padding:17px 20px; margin-top:25px; display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px 28px; }
.event-detail { border:1px solid var(--line); border-radius:8px; background:#fffaf8; padding:22px 27px; margin:21px 0 22px; }
.event-detail .eyebrow { font-size:.73rem; }
.event-detail h3 { margin-bottom:18px; }
.event-facts { margin:0 0 14px; }
.event-facts > div { display:grid; grid-template-columns:85px 1fr; gap:12px; padding:9px 0; border-bottom:1px solid var(--line); }
.event-facts dt { font-weight:700; color:var(--muted); }
.event-facts dd { margin:0; }
.event-detail > p:last-child { margin:17px 0 0; }
.private-classes { margin-top:48px; }
@media (max-width:480px) { .event-detail { padding:18px; } .event-facts > div { grid-template-columns:65px 1fr; gap:8px; } }
