.upnext-services{list-style:none;padding:0;margin:18px 0 26px;font-size:13px;line-height:2.1}.cal-services{align-self:start;border-left:1px solid var(--line);padding-left:25px;margin-top:4px}.cal-services ul{list-style:none;padding:0;margin:22px 0 0}.cal-services li{display:flex;align-items:baseline;gap:12px;font:400 13px/1.6 var(--sans);margin:13px 0}.service-mark{font-size:18px;color:#42594c;flex:none;width:20px}.service-mark.unavailable{color:var(--muted)}.cal-event[data-confirmed="true"] .date-status{color:#42594c}.cal-event[data-confirmed="false"] .date-status{color:#86653c}.attending{font:500 10px/1.5 var(--sans);letter-spacing:.13em;text-transform:uppercase;border-left:2px solid #8c6344;padding-left:10px;margin:15px 0}.cal-upnext .attending{color:var(--paper);border-color:#d1c8b6}.cal-hero{display:grid;grid-template-columns:1fr 1fr;min-height:550px}.cal-hero-copy{padding:70px var(--gutter);display:flex;flex-direction:column;justify-content:center;gap:26px}.cal-hero h1{font-size:clamp(65px,7vw,108px)}.cal-hero-copy>p{max-width:45ch}.cal-hero figure{margin:0;min-height:550px;overflow:hidden}.cal-hero img{width:100%;height:100%;object-fit:cover;object-position:center}.cal-upnext{display:grid;grid-template-columns:.5fr 1.3fr 1fr;gap:50px;background:var(--dark);color:var(--paper);padding:58px var(--gutter)}.cal-upnext h2{font-size:50px;margin:12px 0 22px}.cal-upnext p{color:#d0c9ba}.cal-upnext .cal-up-date{font:400 35px/1.1 var(--serif);margin-top:20px}.cal-upnext .cal-links{margin-top:26px}.cal-heading{display:flex;justify-content:space-between;gap:30px;align-items:end}.cal-heading h2{margin:15px 0}.cal-heading p{max-width:44ch}.cal-filters{display:flex;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:36px 0 25px}.cal-filters button{border:1px solid var(--line);background:transparent;padding:12px 22px;min-height:48px;font:500 11px var(--sans);letter-spacing:.08em;text-transform:uppercase}.cal-filters button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.cal-event{display:grid;grid-template-columns:minmax(130px,.35fr) minmax(0,1fr) minmax(205px,.5fr);gap:40px;padding:42px 0;border-bottom:1px solid var(--line)}.cal-date>p:last-child{font:400 31px/1.15 var(--serif);margin-top:15px;max-width:10ch}.cal-body h3{font-size:46px;margin:18px 0}.cal-body>p{margin-top:12px}.badge{display:inline-block;border:1px solid #aaa293;padding:4px 9px;font:500 10px/1.5 var(--sans);letter-spacing:.04em;margin-left:12px}.cal-links{display:flex;flex-wrap:wrap;gap:16px 30px;margin-top:24px}.cal-pending{background:var(--paper2)}.cal-pending h2{margin:18px 0}.pending-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 60px;margin-top:35px}.pending{padding:32px 0;border-top:1px solid #c6beb0}.pending h3{margin:18px 0;font-size:37px}.pending .badge{margin-left:0}.pending .textlink{margin-top:15px}.cal-footnote{margin-top:30px;max-width:85ch;font-size:12px}.cal-guide{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw}.cal-guide h2{margin-top:16px}.cal-guide details p{font-size:14px}.cal-count{padding-top:15px;font-size:12px;color:var(--muted)}[hidden]{display:none!important}
@media(max-width:980px){.cal-hero{grid-template-columns:1fr}.cal-hero-copy{padding:65px 24px 50px}.cal-hero figure{min-height:0;height:380px}.cal-upnext{grid-template-columns:1fr 2fr;gap:30px}.cal-upnext>div:last-child{grid-column:2}.cal-heading{display:block}.cal-heading>p{margin-top:25px}.cal-event{grid-template-columns:145px minmax(0,1fr);gap:30px}.cal-services{grid-column:2;border-left:0;padding:22px 0 0;border-top:1px solid var(--line);margin-top:0}.cal-services ul{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;margin-top:15px}.cal-guide{grid-template-columns:1fr;gap:35px}}
@media(max-width:650px){.cal-hero h1{font-size:68px}.cal-hero figure{height:300px}.cal-upnext{grid-template-columns:1fr;padding:42px 24px;gap:24px}.cal-upnext>div:last-child{grid-column:auto}.cal-upnext h2{font-size:43px}.cal-up-date{margin-top:8px!important}.cal-event{grid-template-columns:1fr;gap:20px}.cal-services{grid-column:auto}.cal-services ul{grid-template-columns:1fr 1fr}.cal-services li{font-size:12px;gap:8px;margin:8px 0}.cal-date>p:last-child{max-width:none;font-size:29px}.cal-body h3{font-size:40px}.cal-body .badge{margin:10px 0 0;display:table}.pending-grid{grid-template-columns:1fr}.cal-filters button{padding:12px 15px}.cal-heading h2{font-size:48px}.cal-pending h2{font-size:42px}.section{padding-top:58px;padding-bottom:58px}}

.cal-hero-copy h1{font-size:clamp(58px,6.5vw,100px)}.cal-event{grid-template-columns:minmax(130px,.35fr) minmax(0,1fr);gap:50px}.cal-season-intro{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;border-bottom:1px solid var(--line)}.cal-season-intro h2{margin-top:24px}.cal-season-intro .textlink{margin-top:26px}@media(max-width:650px){.cal-event,.cal-season-intro{grid-template-columns:1fr;gap:30px}.cal-hero-copy h1{font-size:60px}}
.cal-story-meta{display:flex;gap:20px;flex-wrap:wrap;padding:28px var(--gutter);border-block:1px solid var(--line);font-size:12px}.story-caption{padding:12px var(--gutter);font-size:11px;color:var(--muted)}.story-invitation{background:var(--dark);color:var(--paper)}.story-invitation .cal-season-intro{border:0}.story-invitation .textlink{color:var(--paper)}.story-invitation p{color:#d0c9ba}.story-history{display:flex;gap:22px;flex-wrap:wrap;margin-top:28px}.official-notes{background:var(--paper2)}.official-notes details{max-width:1000px}.official-notes summary{font-size:14px}.official-notes .cal-links{padding-bottom:15px}.chapter-back{padding-top:32px;padding-bottom:32px}.cal-story-hero h1{font-size:clamp(52px,5.5vw,84px)}@media(max-width:650px){.cal-story-hero h1{font-size:56px}}

.cal-story-hero{min-height:660px}.cal-story-hero figure{height:660px;min-height:0;background:var(--paper2)}.cal-story-hero img{object-fit:contain}@media(max-width:980px){.cal-story-hero{min-height:0}.cal-story-hero figure{height:460px}}@media(max-width:650px){.cal-story-hero figure{height:350px}}

/* 17.1.1: preserve the approved mobile framing of Princess Grace. */
@media (max-width: 980px) {
  .cal-hero:not(.cal-story-hero) > figure > img {
    object-position: 50% 75%;
  }
}
