@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--red:#b71925;--gold:#ffce32;--ink:#202020;--muted:#676767;--line:#e5e5e5;--paper:#f5f5f2}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:white;font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--red);outline-offset:5px}.notice{background:var(--red);color:white;padding:9px 5%;font-size:12px;letter-spacing:1.3px;font-weight:700}.notice span{font-weight:400;letter-spacing:0;margin-left:16px}.notice b{float:right}header{display:flex;align-items:center;justify-content:space-between;padding:22px 5%;border-bottom:1px solid var(--line);gap:30px}.brand{display:flex;align-items:center;gap:12px;font-size:30px;font-weight:800;line-height:1}.brand img{width:66px;height:46px;transform:scale(1.25);object-fit:contain}.brand span span{display:block;font-size:10px;letter-spacing:2px;margin-top:7px;white-space:nowrap}nav{display:flex;gap:23px;font-size:14px;font-weight:600}nav a.active{color:var(--red)}nav a:hover{color:var(--red)}.menu{display:none}main{max-width:1440px;margin:auto;padding:0 5%}h1,h2,h3,p{margin-top:0}h1,h2,.display{font-family:'Barlow Condensed','Arial Narrow',Impact,sans-serif;line-height:.97;letter-spacing:-.8px;text-transform:uppercase}h1{font-size:clamp(64px,7.8vw,116px);margin-bottom:22px}h2{font-size:46px;margin-bottom:15px}h3{font-size:22px;line-height:1.2}p{color:var(--muted)}.eyebrow{font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-bottom:22px}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:50px;padding:58px 0 46px;align-items:center}.hero h1 em{font-style:normal;color:var(--red)}.hero p{max-width:430px;font-size:18px}.actions{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:13px 22px;border:1px solid var(--ink);font-size:14px;font-weight:700;background:white;cursor:pointer}.btn.red{background:var(--red);border-color:var(--red);color:white}.btn.gold{background:var(--gold);border-color:var(--gold)}.spirit{background:var(--red);color:white;min-height:370px;position:relative;padding:28px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.spirit .display{font-size:112px;color:#f8d34c;line-height:.85;opacity:.95;position:absolute;bottom:27px;left:27px}.spirit img{width:67%;height:255px;object-fit:contain;align-self:center;position:relative;z-index:1;transform:rotate(-7deg);background:white;padding:18px;box-shadow:8px 9px 0 #781019}.spirit .stamp{position:absolute;right:19px;bottom:20px;background:var(--gold);color:var(--ink);border-radius:100%;width:91px;height:91px;display:grid;place-content:center;line-height:1.1;text-align:center;font-size:13px;font-weight:800;transform:rotate(12deg)}.quick{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:48px}.quick a{padding:23px 18px;border-right:1px solid var(--line);font-weight:700;display:flex;gap:15px;align-items:center}.quick a:first-child{padding-left:0}.quick a:last-child{border:0}.quick i{font-style:normal;background:var(--paper);padding:7px 13px;color:var(--red)}.quick b{margin-left:auto}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:25px;gap:15px}.section-head h2{margin:0}.textlink{font-size:14px;font-weight:700;border-bottom:1px solid;padding-bottom:4px}.sample{font-size:12px;color:var(--muted);margin-bottom:20px}.event-grid,.club-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.event-card{border:1px solid var(--line);padding:24px}.date{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.date strong{font-family:'Barlow Condensed',Impact,sans-serif;font-size:46px;line-height:1}.date strong small{font:700 12px 'DM Sans',sans-serif;display:block;letter-spacing:1px}.tag{font-size:12px;font-weight:700;padding:4px 9px;background:#fff3c6;display:inline-block}.event-card p{font-size:14px;margin:0}.home-bottom{display:grid;grid-template-columns:1.6fr 1fr;gap:24px;margin:48px 0 60px}.join{background:var(--paper);padding:35px}.join h2{font-size:50px}.ask{background:var(--gold);padding:35px}.ask p{color:#4c421e}.page-top{padding:48px 0 24px}.page-top h1{font-size:72px}.subnav{display:flex;gap:10px;flex-wrap:wrap;margin:15px 0 30px}.subnav a{border:1px solid var(--line);padding:8px 18px;font-size:14px;font-weight:600}.subnav a.active{background:var(--ink);color:white}.club{border:1px solid var(--line);padding:26px}.club .club-icon{font-size:36px;margin-bottom:20px}.club h3{margin:15px 0 12px}.club dl{font-size:14px;display:grid;grid-template-columns:90px 1fr;gap:8px;margin-bottom:0}.club dt{color:var(--muted)}.club dd{margin:0;font-weight:500}.club-grid{margin-bottom:50px}.panel{background:var(--paper);padding:30px;margin:24px 0 48px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:50px}.role{padding:24px;border:1px solid var(--line);display:flex;gap:20px;align-items:center}.avatar{background:var(--gold);width:64px;height:64px;display:grid;place-content:center;font-family:'Barlow Condensed',Impact,sans-serif;font-size:26px;flex-shrink:0}.role h3{margin:0 0 5px}.role p{margin:0;font-size:14px}.faq{max-width:860px;margin-bottom:60px}details{border-bottom:1px solid var(--line);padding:22px 0}summary{font-weight:600;font-size:18px;cursor:pointer}details p{padding-top:15px;margin-bottom:0}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;margin:20px 0}.calendar-toolbar h2{font-size:32px;margin:0}.calendar-toolbar button{background:white;border:1px solid var(--line);padding:5px 15px;cursor:pointer}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--line);border-top:1px solid var(--line);margin-bottom:45px}.day,.weekday{padding:10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:100px;font-size:14px}.weekday{min-height:auto;background:var(--paper);font-size:12px;font-weight:700}.day.blank{background:#fafafa}.day span{display:block;font-size:12px;background:#fff2c5;padding:4px;margin-top:6px;line-height:1.3}.story{border-top:1px solid var(--line);padding:25px 0;max-width:900px}.story h3{margin:10px 0}.story p{margin:0}.about-logo{max-width:200px;width:100%;display:block;margin:0 auto 25px}footer{border-top:1px solid var(--line);margin-top:50px;padding:35px 5%;display:flex;align-items:center;gap:30px;flex-wrap:wrap}footer p{margin:0;font-size:14px}footer>a{margin-left:auto;font-weight:600;font-size:14px}footer small{flex-basis:100%;font-size:12px;color:var(--muted)}.footbrand{font-size:24px} .footbrand img{width:48px} @media(max-width:1100px){nav{gap:13px;font-size:12px}header{gap:15px}.hero{gap:25px}.spirit .display{font-size:90px}}@media(max-width:800px){.notice span{display:none}header{padding:18px 5%;flex-wrap:wrap}.menu{display:block;background:white;border:1px solid var(--line);font-size:22px;padding:3px 12px}nav{display:none;width:100%;flex-wrap:wrap;font-size:15px;gap:18px}nav.open{display:flex}.hero{grid-template-columns:1fr;padding-top:35px;gap:30px}.hero h1{font-size:80px}.spirit{min-height:310px}.spirit img{height:215px;width:62%}.spirit .display{font-size:100px}.quick{grid-template-columns:1fr 1fr}.quick a{font-size:14px;padding:16px 8px!important}.quick a:nth-child(2){border-right:0}.event-grid,.club-grid{grid-template-columns:1fr}.home-bottom,.two-col{grid-template-columns:1fr}.section-head h2{font-size:38px}.page-top h1{font-size:56px}.day{min-height:75px;padding:5px}.day span{font-size:10px;padding:2px}.weekday{padding:5px;font-size:10px}footer>a{margin-left:0}.hero p{font-size:16px}}
.council-intro{display:flex;align-items:center;gap:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;margin-bottom:46px;flex-wrap:wrap}.council-intro p{margin:0}.team-section{margin-bottom:64px}.team-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px}.team-section:first-of-type .team-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.person{border:1px solid var(--line);background:white;min-width:0}.portrait{aspect-ratio:4/4.2;background:#f3f1ed;display:grid;place-content:center;position:relative;overflow:hidden}.portrait .initials{font-family:'Barlow Condensed',Impact,sans-serif;font-weight:800;font-size:100px;color:var(--red)}.person:nth-child(3n+2) .portrait{background:#ffe89b}.person:nth-child(3n+3) .portrait{background:#b71925}.person:nth-child(3n+3) .initials,.person:nth-child(3n+3) .photo-note{color:white}.portrait img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.photo-note{position:absolute;bottom:16px;width:100%;text-align:center;font-size:10px;letter-spacing:1.5px;font-weight:700;color:#6f6659}.person-info{padding:20px}.person-role{font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--red);margin-bottom:10px}.person-info h3{font-size:23px;margin-bottom:5px;overflow-wrap:anywhere}.edit-profile{margin-top:17px;border:0;border-top:1px solid var(--line);padding:14px 0 0;background:none;font-size:14px;cursor:pointer;text-align:left}.staff-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:650px}.portrait.tbd{background:var(--paper)}dialog{border:0;padding:32px;width:min(540px,92vw);max-height:90vh;box-shadow:0 20px 100px #0004}dialog::backdrop{background:#0008}.dialog-head{display:flex;justify-content:space-between;gap:20px}.dialog-head h2{font-size:38px}.dialog-head button{background:none;border:0;font-size:30px;cursor:pointer;align-self:start}dialog label{display:block;margin:18px 0 8px;font-size:14px;font-weight:700}dialog input{display:block;width:100%;padding:10px;border:1px solid #aaa;margin-top:6px;font-size:16px}dialog input[type=file]{font-size:14px}.photo-help{font-size:13px}#photo-preview{width:110px;height:135px;object-fit:cover}#save-status{font-size:14px;margin-top:15px;color:var(--red)}button:disabled{opacity:.6;cursor:wait}.load-error{background:#fff4cf;padding:16px;font-size:14px}.load-error button{background:none;border:0;text-decoration:underline;cursor:pointer}.saved-message{color:#24653e!important;font-weight:700}.calendar-toolbar .calendar-actions{display:flex;gap:8px}.day.today{box-shadow:inset 0 0 0 2px var(--red)}.contact-social{padding:30px;background:var(--paper);margin-bottom:40px}.club code{font-family:inherit;font-weight:700;letter-spacing:1px}.club-group-title{margin-top:35px}.club .source-note{font-size:12px;margin:20px 0 0}.calendar{overflow-wrap:anywhere}.calendar-layout{overflow:auto}
@media(max-width:900px){.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.team-section:first-of-type .team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.team-grid,.team-section:first-of-type .team-grid,.staff-grid{grid-template-columns:1fr 1fr;gap:12px}.portrait .initials{font-size:65px}.person-info{padding:13px}.person-info h3{font-size:18px}.person-role{font-size:12px;letter-spacing:0}.photo-note{font-size:9px;letter-spacing:.5px}.team-section h2{font-size:36px}.calendar{min-width:650px}.calendar-toolbar{flex-wrap:wrap;gap:12px}}
.portrait .initials,.portrait .photo-note{display:none}.portrait,.person:nth-child(3n+2) .portrait,.person:nth-child(3n+3) .portrait{background:#f3f3f1}.portrait{border-bottom:1px solid var(--line)}
/* Photo-and-details layout, following the supplied club-page reference. */
.team-grid,.team-section:first-of-type .team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.person{display:grid;grid-template-columns:42% minmax(0,1fr);align-items:stretch}.portrait{aspect-ratio:1/1;min-height:190px;border-bottom:0;border-right:1px solid var(--line)}.person-info{align-self:center;padding:24px}.staff-grid{max-width:none}.person-info h3{font-size:25px}.person-role{line-height:1.5}.edit-profile{font-size:14px}.team-section{scroll-margin-top:24px}@media(max-width:950px){.person{grid-template-columns:1fr}.portrait{min-height:0;border-right:0;border-bottom:1px solid var(--line)}.person-info{padding:20px}}@media(max-width:560px){.team-grid,.team-section:first-of-type .team-grid,.staff-grid{grid-template-columns:1fr}.person{grid-template-columns:37% minmax(0,1fr)}.portrait{min-height:170px;height:100%;aspect-ratio:auto;border-right:1px solid var(--line);border-bottom:0}.person-info{padding:18px}.person-info h3{font-size:22px}}

.spirit .display{top:58px;bottom:auto;left:24px;font-size:88px;font-weight:800;line-height:.88;letter-spacing:0}

.faq-answer{padding-top:15px;color:var(--muted)}.faq-answer p{padding-top:0;margin-bottom:12px}.faq-answer ol,.faq-answer ul{margin:0 0 12px;padding-left:26px}.faq-answer li{margin-bottom:4px}.faq-answer>:last-child{margin-bottom:0}

.home-wallpaper{width:100vw;margin-left:calc(50% - 50vw);line-height:0}.home-wallpaper img{display:block;width:100%;height:auto}

nav.club-categories{display:flex;flex-wrap:wrap;width:100%;font-size:14px}.club-category{scroll-margin-top:24px}

.club-logo-space{width:140px;height:140px;max-width:100%;display:grid;place-items:center;background:#fff;border-radius:50%;overflow:hidden;margin-bottom:20px;color:var(--muted);font-size:14px;text-align:center}.club-logo-space img{width:100%;height:100%;object-fit:contain;border-radius:50%}.club-logo-space--pangaea{overflow:visible;margin-bottom:48px}.club-logo-space--pangaea img{width:170px;height:170px;max-width:none;border-radius:0;transform:translateY(16px)}

.club-directory-card{position:relative}.club-corner-icon{position:absolute;top:24px;right:24px;font-size:30px;line-height:1;pointer-events:none}.club-directory-card .club-logo-space{max-width:calc(100% - 56px)}

.instagram-heading{display:flex;align-items:center;gap:14px;margin-bottom:20px}.instagram-heading img{width:44px;height:44px;object-fit:contain;flex-shrink:0}.instagram-heading h2{margin:0;min-width:0}.event-photo-space{width:100%;aspect-ratio:16/9;background:#f3f3f1;border:1px solid var(--line);margin:20px 0 0}.event-photo-space{position:relative;overflow:hidden}.event-photo-space img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;object-position:center}.event-photo-thanksgiving{background:#ffdc88}.event-photo-pa-day{background:#fff}.event-photo-winter-break{background:#084bab}

.event-card-with-photo{display:flex;flex-direction:column}.event-card-with-photo>h3{margin-bottom:6px}.event-card-with-photo>p{margin-bottom:12px}.event-card-with-photo .event-photo-space{margin-top:auto;flex-shrink:0}

.hero.home-combined{width:100vw;margin-left:calc(50% - 50vw);padding:144px max(5vw,calc((100vw - 1296px)/2));gap:36px;background:#d4b5ff;position:relative;isolation:isolate;overflow:hidden;align-items:center;margin-bottom:28px}.hero.home-combined::before{content:'';position:absolute;inset:-64px 0 0;z-index:-1;background:url('/ahs-welcome-banner.png') center top/cover no-repeat;pointer-events:none}.home-welcome-copy{background:rgba(255,255,255,.94);padding:32px;box-shadow:0 8px 24px #49005918}.home-combined h1{font-size:clamp(52px,5.8vw,84px)}.home-combined .home-welcome-copy>p{font-size:17px}.home-combined .spirit{box-shadow:0 8px 24px #49005928}.home-combined .actions{margin-top:24px}@media(max-width:800px){.hero.home-combined{padding:92px 5%;gap:24px;background-position:center top}.home-welcome-copy{padding:24px}.home-combined h1{font-size:clamp(48px,9vw,72px)}.home-combined .home-welcome-copy>p{font-size:16px}}

.garden-news{margin:12px 0 60px;border-top:1px solid var(--line);padding-top:30px}.garden-news-heading{margin-bottom:32px}.garden-news-heading h2{margin-top:16px}.garden-news-heading>p{margin-bottom:0}.garden-row{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start;margin-bottom:36px}.garden-photo{width:100%;aspect-ratio:16/9;background:var(--paper);border:1px solid var(--line)}.garden-copy h3{font-size:30px;margin-bottom:16px}.garden-copy>p{margin-bottom:0}.garden-details{border:0;padding:0;margin-top:22px}.garden-details>summary{list-style:none;width:fit-content}.garden-details>summary::-webkit-details-marker{display:none}.garden-details[open]>summary span{transform:rotate(180deg)}.garden-extra{padding-top:18px}.garden-extra p{padding-top:0;margin:0 0 14px}.garden-extra p:last-child{margin-bottom:0}@media(max-width:800px){.garden-row{grid-template-columns:1fr;gap:22px;margin-bottom:36px}.garden-row-reverse .garden-photo{grid-row:1}.garden-news-heading h2{font-size:38px}}

/* Crop the logo’s built-in whitespace and align its visible height with both text lines. */
.brand-logo{display:block;position:relative;flex-shrink:0;height:calc(1em + 10px);width:calc((1em + 10px)*217/127);overflow:hidden}
.brand .brand-logo img{position:absolute;max-width:none;width:119.8157%;height:118.1103%;left:-5.9908%;top:-16.5354%;transform:none;object-fit:fill}

/* Extend the wallpaper by revealing more of the existing image, without changing its scale. */
.hero.home-combined{padding-bottom:192px}
.hero.home-combined::before{top:-80px}
footer{background:#781019;border-top-color:#781019;color:#fff}
footer>p{color:#fff}
footer>a:focus-visible{outline-color:var(--gold)}
footer .brand-logo img{mix-blend-mode:normal;width:100%;height:100%;left:0;top:0;object-fit:contain}
@media(max-width:800px){.hero.home-combined{padding-bottom:140px}}

/* Full-width closing strip and circular school social links. */
footer{padding-bottom:0}
.site-bottom{flex:0 0 calc(100% + 11.111112%);margin:0 -5.555556%;padding:18px 5.555556%;background:#111;color:white;display:flex;align-items:center;justify-content:flex-start;gap:20px 40px;flex-wrap:wrap}
.site-bottom p{color:white;font-size:13px;line-height:1.5;margin:0}
.footer-connect{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:14px;font-weight:600}
.footer-socials{display:flex;gap:10px}
.footer-socials a{width:34px;height:34px;border-radius:50%;background:white;color:#111;display:grid;place-items:center;transition:background .15s,color .15s}
.footer-socials svg{width:16px;height:16px}
.footer-socials a:hover{background:var(--gold)}
.footer-socials a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
@media(max-width:600px){.site-bottom{gap:16px}.footer-socials a{width:38px;height:38px}}

/* Clean vector Facebook mark and a smaller, centred Instagram camera. */
.footer-socials a:first-child{background:transparent;color:white}
.footer-socials a:first-child svg{width:100%;height:100%;transform:none}
.footer-socials a:first-child:hover{color:var(--gold)}
.footer-socials a:nth-child(2) svg{width:21px;height:21px}

.footer-connect{margin-left:auto}

/* Keep the original label and row height independent of the smaller icons. */
.footer-connect{min-height:38px}
.footer-connect>span{font-size:14px;font-weight:600;line-height:1.6;flex-shrink:0}
@media(max-width:600px){.footer-connect{min-height:44px}}

/* Contact cards and Instagram share one desktop row. */
.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-bottom:50px;align-items:stretch}
.contact-grid>*{min-width:0;overflow-wrap:anywhere}
.contact-grid .contact-social{margin:0;padding:26px}
.contact-grid .contact-social .two-col{grid-template-columns:1fr;gap:28px;margin:0}
.contact-grid .instagram-heading{align-items:flex-start;gap:12px}
.contact-grid .instagram-heading h2{font-size:34px}
.contact-grid .instagram-heading img{width:36px;height:36px}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}

.contact-social>.tag{margin-bottom:16px}
.event-description{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);min-height:96px}
.event-description p{font-size:16px;line-height:1.6}

.person[data-member="amelia-kapuscinski"] .portrait img{object-position:center 18%}

/* Owner-only content editing. */
[hidden]{display:none!important}
#site-editor-bar{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:50;background:#202020;color:white;border:1px solid #555;box-shadow:0 4px 22px #0003;padding:12px 18px;display:flex;align-items:center;gap:14px;max-width:calc(100% - 24px);width:max-content;font-size:14px;border-radius:8px}
#site-editor-bar button{border:0;background:var(--gold);color:var(--ink);padding:10px 16px;font-weight:700;cursor:pointer;white-space:nowrap}
#editor-notice{color:#ffdf70}
.site-editing [data-editor-key]{cursor:pointer;outline:1px dashed #b7192570;outline-offset:3px}
.site-editing [data-editor-key]:hover,.site-editing [data-editor-key]:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.site-editing footer [data-editor-key]{outline-color:var(--gold)}
.site-editing .event-description:empty::before{content:'Add an event description';color:var(--muted);font-size:14px}
#site-content-dialog{width:min(620px,94vw);padding:26px}
#site-content-dialog textarea,#site-content-dialog select{display:block;width:100%;margin-top:8px;padding:10px;font:inherit;border:1px solid #999}
#site-content-dialog textarea{resize:vertical;min-height:130px}
#site-content-dialog input[type=range]{padding:0;accent-color:var(--red)}
#content-photo-frame{position:relative;max-height:300px;max-width:100%;width:100%;overflow:hidden;background:var(--paper);border:1px solid var(--line)}
#content-photo-preview{position:absolute;inset:0;width:100%;height:100%}
#content-editor-status{margin-top:18px;color:var(--red);font-size:14px}
#site-content-dialog .actions{gap:10px}
#site-content-dialog .btn{padding:11px 16px}
.garden-photo img{width:100%;height:100%;object-fit:cover;display:block}
.hero.home-combined.has-edited-background::before{display:none}
.edited-hero-background{position:absolute;inset:0;width:100%;height:100%;z-index:-1;object-fit:cover}
@media(max-width:600px){#site-editor-bar{bottom:8px;padding:10px;gap:10px;flex-wrap:wrap;justify-content:center;width:calc(100% - 16px)}#editor-instructions{flex-basis:100%;text-align:center;font-size:13px;order:3}#site-content-dialog{padding:20px}#site-content-dialog h2{font-size:32px}}

/* Keep the black footer at the viewport bottom on shorter pages, including Resources. */
body{min-height:100vh;min-height:100svh;display:flex;flex-direction:column}
body>header,body>footer{flex-shrink:0}
body>main{width:100%;flex:1 0 auto;margin:0 auto}

/* Keep the month grid at its original width and place the legend on the right above it. */
.calendar-layout{display:flex;flex-direction:column;gap:12px;overflow:visible}
.calendar-main{width:100%;min-width:0;overflow-x:auto;order:2}
.calendar-main .calendar{margin-bottom:45px}
.calendar-legend{align-self:flex-end;order:1;max-width:100%;border:1px solid var(--line);background:#fff;padding:10px 14px;font-size:12px}
.calendar-legend h3{display:inline-block;font-size:15px;margin:0 12px 0 0;vertical-align:middle}
.calendar-legend ul{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:6px 13px;list-style:none;padding:0;margin:0;vertical-align:middle}
.calendar-legend li{display:inline-flex;align-items:center;gap:5px;line-height:1.3;white-space:nowrap}
.calendar-swatch{width:13px;height:13px;flex:none;border-radius:3px}
.day span.reference-event{font-weight:600;line-height:1.3;border-radius:2px}
.calendar-event--holiday{background:#f9dee1!important;color:#8f1420!important}
.calendar-event--pa{background:#e8e8e8!important;color:#222!important}
.calendar-event--sports{background:#f8eac0!important;color:#705117!important}
.calendar-event--commemorative{background:#fff2b8!important;color:#6c5200!important}
.calendar-event--school{background:#fde6d5!important;color:#93430f!important}
.calendar-event--winter{background:#dfeafa!important;color:#245483!important}
.calendar-event--march{background:#e0f1e4!important;color:#276039!important}
.calendar-agenda-event{padding-left:16px;margin-bottom:8px;border-left:7px solid transparent;background:transparent!important;color:var(--ink)!important}
.calendar-agenda-event.calendar-event--holiday{border-left-color:#f9dee1}.calendar-agenda-event.calendar-event--pa{border-left-color:#e8e8e8}.calendar-agenda-event.calendar-event--sports{border-left-color:#f8eac0}.calendar-agenda-event.calendar-event--commemorative{border-left-color:#fff2b8}.calendar-agenda-event.calendar-event--school{border-left-color:#fde6d5}.calendar-agenda-event.calendar-event--winter{border-left-color:#dfeafa}.calendar-agenda-event.calendar-event--march{border-left-color:#e0f1e4}
@media(min-width:1740px){.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:24px;width:calc(100% + 214px)}.calendar-main{order:0}.calendar-legend{order:0;align-self:start}.calendar-legend h3{display:block;margin:0 0 10px}.calendar-legend ul{display:grid;justify-content:start;gap:10px}}
@media(max-width:700px){.calendar-legend{align-self:stretch}.calendar-legend h3{display:block;margin:0 0 7px}.calendar-legend ul{display:flex;justify-content:flex-start}}
