/* Brother Martin Our School — shared Home typography, colour tokens and motion. */
.bm-os-site{color:var(--bm-ink);background:var(--bm-paper);overflow:hidden}
.bm-os-site img,.bm-os-site video{display:block;max-width:100%}
.bm-os-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(300px,.88fr);gap:clamp(24px,5vw,72px);align-items:center;padding:clamp(52px,7vw,100px) max(var(--bm-gutter),calc((100vw - var(--bm-max))/2));background:linear-gradient(128deg,#2d211e 0%,#503a2d 55%,#526448 100%);color:#fff;min-height:440px}
.bm-os-hero__copy{position:relative;z-index:2;max-width:780px;animation:bm-os-rise .65s var(--bm-ease) both}
.bm-os-eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 18px;color:var(--bm-copper-light);font-size:.7rem;font-weight:850;letter-spacing:.16em;line-height:1.5;text-transform:uppercase}
.bm-os-eyebrow>span{width:30px;height:2px;background:var(--bm-copper);box-shadow:0 0 13px rgba(219,170,108,.55)}
.bm-os-hero h1{max-width:850px;color:#fff;font:400 clamp(2.65rem,5.4vw,5.35rem)/.99 var(--bm-head,Georgia,serif);letter-spacing:-.045em;margin:0 0 22px}
.bm-os-hero__lead{max-width:750px;color:#f1e8dd;font-size:clamp(.97rem,1.4vw,1.12rem);line-height:1.85;margin:0}
.bm-os-hero__actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:27px}
.bm-os-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:48px;padding:12px 18px;border:1px solid transparent;border-radius:999px;font-size:.8rem;font-weight:850;line-height:1.2;overflow:hidden;transition:transform var(--bm-fast) var(--bm-ease),background var(--bm-fast),border-color var(--bm-fast),box-shadow var(--bm-fast)}
.bm-os-button:hover{transform:translateY(-2px)}
.bm-os-button--gold{background:linear-gradient(135deg,#ecd2a1,#bc8e54);color:#30221c;box-shadow:0 10px 26px rgba(0,0,0,.15)}
.bm-os-button--outline{border-color:rgba(255,255,255,.52);color:#fff;background:rgba(255,255,255,.05)}
.bm-os-button--outline:hover{background:rgba(255,255,255,.13)}
.bm-os-button--dark{background:var(--bm-cocoa);color:#fff}
.bm-os-hero__visual{position:relative;z-index:1;margin:0;align-self:stretch;min-height:320px;overflow:hidden;border-radius:var(--bm-radius-lg);border:1px solid rgba(255,255,255,.32);box-shadow:0 30px 85px rgba(0,0,0,.28);animation:bm-os-card-arrive .7s .1s var(--bm-ease) both}
.bm-os-hero__visual:after{content:"";position:absolute;inset:32% 0 0;background:linear-gradient(180deg,transparent,rgba(29,19,14,.83));pointer-events:none}
.bm-os-hero__visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.bm-os-hero__visual figcaption{position:absolute;z-index:2;left:20px;right:20px;bottom:18px;display:flex;flex-direction:column;gap:3px;color:#fff}
.bm-os-hero__visual figcaption span{font:400 clamp(1.1rem,2vw,1.55rem)/1.2 var(--bm-head,Georgia,serif)}
.bm-os-hero__visual figcaption small{font-size:.69rem;letter-spacing:.12em;text-transform:uppercase;color:#e6d2b6}
.bm-os-hero__shine{position:absolute;top:0;right:0;width:32%;height:100%;z-index:-1;background:radial-gradient(ellipse at 100% 0,rgba(228,194,138,.18),transparent 64%);pointer-events:none}
.bm-os-intro__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,7vw,110px);align-items:start}
.bm-os-intro h2{max-width:650px;color:var(--bm-cocoa);font:400 clamp(2rem,3.4vw,3.45rem)/1.08 var(--bm-head,Georgia,serif);letter-spacing:-.035em}
.bm-os-intro__text{max-width:760px;color:var(--bm-muted);font-size:.94rem;line-height:1.9}
.bm-os-intro__text p+p{margin-top:14px}
.bm-os-section{background:var(--bm-paper);color:var(--bm-ink)}
.bm-os-feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.bm-os-feature-card{min-width:0;overflow:hidden;position:relative;border:1px solid var(--bm-line);border-radius:var(--bm-radius-md);background:var(--bm-card,var(--bm-paper));color:var(--bm-ink);box-shadow:0 10px 28px rgba(37,27,20,.045);transition:transform var(--bm-medium) var(--bm-ease),box-shadow var(--bm-medium),border-color var(--bm-medium)}
.bm-os-feature-card:hover{transform:translateY(-5px);box-shadow:var(--bm-shadow-card);border-color:var(--bm-copper)}
.bm-os-feature-card__image{height:205px;position:relative;overflow:hidden;background:var(--bm-ivory)}
.bm-os-feature-card__image>.bm-os-image{width:100%;height:100%;object-fit:cover;transition:transform .55s var(--bm-ease)}
.bm-os-feature-card:hover .bm-os-feature-card__image>.bm-os-image{transform:scale(1.045)}
.bm-os-feature-card__symbol{position:absolute;left:14px;bottom:14px;width:43px;height:43px;display:grid;place-items:center;border-radius:14px;border:1px solid rgba(255,255,255,.56);background:rgba(255,250,241,.92);backdrop-filter:blur(7px);color:var(--bm-cocoa);font-size:1.25rem;box-shadow:0 6px 18px rgba(0,0,0,.12)}
.bm-os-feature-card__body{position:relative;padding:18px 44px 20px 18px;min-height:118px}
.bm-os-card-kicker{margin:0 0 7px;color:var(--bm-copper);font-size:.63rem;letter-spacing:.13em;font-weight:850;text-transform:uppercase}
.bm-os-feature-card h3{font:700 1.18rem/1.23 var(--bm-head,Georgia,serif);letter-spacing:-.015em;color:var(--bm-cocoa);margin:0;overflow-wrap:anywhere}
.bm-os-feature-arrow{position:absolute;right:16px;bottom:18px;color:var(--bm-copper);font-size:1.2rem;transition:transform .18s var(--bm-ease)}
.bm-os-feature-card:hover .bm-os-feature-arrow{transform:translate(3px,-3px)}
.bm-os-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.bm-os-photo-grid--four{grid-template-columns:repeat(4,minmax(0,1fr))}
.bm-os-photo-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}
.bm-os-photo-card{overflow:hidden;min-width:0;border:1px solid var(--bm-line);border-radius:var(--bm-radius-md);background:var(--bm-card,var(--bm-paper));box-shadow:0 8px 28px rgba(38,26,20,.05);transition:transform var(--bm-medium) var(--bm-ease),box-shadow var(--bm-medium)}
.bm-os-photo-card:hover{transform:translateY(-4px);box-shadow:var(--bm-shadow-card)}
.bm-os-image-button{display:block;position:relative;width:100%;height:235px;padding:0;border:0;border-radius:0;background:var(--bm-ivory);cursor:zoom-in;overflow:hidden}
.bm-os-image-button .bm-os-image{width:100%;height:100%;object-fit:cover;transition:transform .45s var(--bm-ease),filter .45s}
.bm-os-photo-card:hover .bm-os-image-button .bm-os-image{transform:scale(1.035);filter:saturate(1.04)}
.bm-os-image-zoom{position:absolute;right:12px;top:12px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:rgba(43,30,22,.78);color:#fff;font-size:1.2rem;opacity:0;transform:scale(.9);transition:opacity .18s,transform .18s}
.bm-os-image-button:hover .bm-os-image-zoom,.bm-os-image-button:focus-visible .bm-os-image-zoom{opacity:1;transform:scale(1)}
.bm-os-photo-card figcaption{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px 14px;font-size:.78rem;font-weight:700;line-height:1.45;color:var(--bm-ink);min-height:56px}
.bm-os-photo-card figcaption span{overflow-wrap:anywhere}
.bm-os-card-link{flex:0 0 auto;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--bm-line);color:var(--bm-cocoa)}
.bm-os-card-link:hover{background:var(--bm-cocoa);color:white}
.bm-os-section--dark{background:#2f211d;color:#fff}
.bm-os-section--dark .section-heading h2{color:#fff}
.bm-os-section--dark .section-heading>p{color:#d4c6b8}
.bm-os-video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.bm-os-video-card{min-width:0;overflow:hidden;border-radius:var(--bm-radius-md);border:1px solid var(--bm-line);background:var(--bm-card,var(--bm-paper));color:var(--bm-ink);box-shadow:0 10px 30px rgba(0,0,0,.12)}
.bm-os-video-frame{position:relative;aspect-ratio:16/10;background:#100d0b;overflow:hidden}
.bm-os-video-frame video{width:100%;height:100%;object-fit:cover;background:#100d0b}
.bm-os-video-copy{padding:17px 18px 19px}
.bm-os-video-copy h3{font:700 1.18rem/1.25 var(--bm-head,Georgia,serif);color:var(--bm-cocoa);margin:0 0 8px}
.bm-os-video-copy>p:last-child{color:var(--bm-muted);font-size:.79rem;line-height:1.7;margin:0}
.bm-os-detail{background:var(--bm-paper)}
.bm-os-detail__layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:clamp(24px,4vw,60px);align-items:start}
.bm-os-detail__main{min-width:0}
.bm-os-story-block{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:clamp(24px,4vw,45px);align-items:center;padding-bottom:clamp(36px,5vw,62px);margin-bottom:clamp(34px,4.5vw,54px);border-bottom:1px solid var(--bm-line)}
.bm-os-story-block:last-child{margin-bottom:25px}
.bm-os-story-block--reverse .bm-os-story-block__media{order:2}
.bm-os-story-block--reverse .bm-os-story-block__copy{order:1}
.bm-os-story-block__media{position:relative;min-height:260px;margin:0;border-radius:var(--bm-radius-md);overflow:hidden;background:var(--bm-ivory);border:1px solid var(--bm-line)}
.bm-os-story-block__media .bm-os-image-button{height:100%;min-height:260px}
.bm-os-story-block__copy h2{font:400 clamp(1.75rem,2.8vw,2.6rem)/1.1 var(--bm-head,Georgia,serif);color:var(--bm-cocoa);margin:0 0 16px}
.bm-os-story-block__copy>p:last-child{font-size:.91rem;color:var(--bm-muted);line-height:1.9;margin:0}
.bm-os-sidebar{position:sticky;top:26px;display:grid;gap:17px}
.bm-os-sidebar-card{border:1px solid var(--bm-line);border-radius:var(--bm-radius-md);background:var(--bm-card,var(--bm-paper));padding:21px;color:var(--bm-ink)}
.bm-os-sidebar-card h2{font:400 1.4rem/1.2 var(--bm-head,Georgia,serif);color:var(--bm-cocoa);margin:0 0 13px}
.bm-os-sidebar-card p:not(.eyebrow){font-size:.81rem;line-height:1.75;color:var(--bm-muted)}
.bm-os-quick-links{display:grid;gap:2px;margin-top:13px}
.bm-os-quick-links a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--bm-line);font-size:.81rem;font-weight:750;color:var(--bm-ink)}
.bm-os-quick-links li:last-child a{border-bottom:0}
.bm-os-quick-links a b{font-size:1rem;color:var(--bm-copper);transition:transform .16s}
.bm-os-quick-links a:hover{color:var(--bm-copper)}
.bm-os-quick-links a:hover b{transform:translate(2px,-2px)}
.bm-os-sidebar-card--accent{background:var(--bm-ivory)}
.bm-os-inline-link{font-size:.8rem;font-weight:800;color:var(--bm-cocoa);overflow-wrap:anywhere}
.bm-os-gallery-tools{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 23px}
.bm-os-filter-button{padding:9px 14px;border-radius:999px;border:1px solid var(--bm-line);background:var(--bm-card,var(--bm-paper));color:var(--bm-ink);font-size:.74rem;font-weight:800;cursor:pointer;transition:background .16s,color .16s,border-color .16s,transform .16s}
.bm-os-filter-button:hover{transform:translateY(-1px);border-color:var(--bm-copper)}
.bm-os-filter-button.is-active{background:var(--bm-cocoa);border-color:var(--bm-cocoa);color:#fff}
.bm-os-photo-card[hidden]{display:none!important}
.bm-os-video-section{margin-top:50px}
.bm-os-departments{background:var(--bm-ivory)}
.bm-os-department-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.bm-os-department-card{overflow:hidden;border:1px solid var(--bm-line);border-radius:var(--bm-radius-md);background:var(--bm-card,var(--bm-paper));display:flex;flex-direction:column;min-width:0}
.bm-os-department-card__visual{height:170px;background:var(--bm-paper);overflow:hidden}
.bm-os-department-card__visual img{width:100%;height:100%;object-fit:cover}
.bm-os-department-card__copy{padding:18px}
.bm-os-department-card__copy h3{font:700 1.08rem/1.25 var(--bm-head,Georgia,serif);color:var(--bm-cocoa);margin:0 0 8px}
.bm-os-department-card__copy p{font-size:.78rem;line-height:1.7;color:var(--bm-muted);margin:0}
.bm-os-cta{padding-block:48px;background:linear-gradient(112deg,var(--bm-cocoa-deep),var(--bm-cocoa) 58%,var(--bm-olive-dark));color:#fff}
.bm-os-cta__inner{display:flex;align-items:center;justify-content:space-between;gap:35px}
.bm-os-cta__inner>div:first-child{max-width:820px}
.bm-os-cta__inner h2{color:#fff;font:400 clamp(1.8rem,3.2vw,2.85rem)/1.12 var(--bm-head,Georgia,serif);margin:0 0 12px}
.bm-os-cta__inner>div:first-child>p:last-child{color:#e5d9cc;line-height:1.8;font-size:.9rem;margin:0}
.bm-os-cta__actions{display:flex;flex-wrap:wrap;gap:10px;flex:0 0 auto}
.bm-os-lightbox{width:min(1120px,calc(100vw - 34px));max-width:none;max-height:90vh;overflow:visible;padding:44px 12px 12px;background:#16120f;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:18px;box-shadow:0 35px 120px rgba(0,0,0,.5)}
.bm-os-lightbox::backdrop{background:rgba(14,11,9,.82);backdrop-filter:blur(4px)}
.bm-os-lightbox>img{width:100%;max-height:75vh;object-fit:contain;border-radius:9px}
.bm-os-lightbox>p{font-size:.83rem;color:#eee0cf;text-align:center;margin:11px 0 3px}
.bm-os-lightbox__close{position:absolute;top:8px;right:11px;width:34px;height:34px;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:#33251e;color:#fff;font-size:1.4rem;line-height:1;cursor:pointer}
.bm-os-lightbox__close:hover{background:var(--bm-copper);color:#211813}
.bm-os-site a:focus-visible,.bm-os-site button:focus-visible{outline:3px solid var(--bm-copper);outline-offset:3px}
@keyframes bm-os-rise{from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}
@keyframes bm-os-card-arrive{from{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}
html[data-bm-theme="dark"] .bm-os-site{background:var(--bm-paper);color:var(--bm-ink)}
html[data-bm-theme="dark"] .bm-os-intro h2,html[data-bm-theme="dark"] .bm-os-story-block__copy h2,html[data-bm-theme="dark"] .bm-os-feature-card h3,html[data-bm-theme="dark"] .bm-os-sidebar-card h2,html[data-bm-theme="dark"] .bm-os-video-copy h3,html[data-bm-theme="dark"] .bm-os-department-card__copy h3{color:var(--bm-ink)}
html[data-bm-theme="dark"] .bm-os-feature-card,html[data-bm-theme="dark"] .bm-os-photo-card,html[data-bm-theme="dark"] .bm-os-video-card,html[data-bm-theme="dark"] .bm-os-sidebar-card,html[data-bm-theme="dark"] .bm-os-department-card{background:var(--bm-card);border-color:var(--bm-line);color:var(--bm-ink)}
html[data-bm-theme="dark"] .bm-os-feature-card__image,html[data-bm-theme="dark"] .bm-os-story-block__media,html[data-bm-theme="dark"] .bm-os-department-card__visual{background:#202720}
html[data-bm-theme="dark"] .bm-os-story-block,html[data-bm-theme="dark"] .bm-os-quick-links a{border-color:var(--bm-line)}
html[data-bm-theme="dark"] .bm-os-sidebar-card--accent{background:#202a22}
html[data-bm-theme="dark"] .bm-os-sidebar-card--accent .bm-os-button--dark{background:#c7dbbd;color:#182217}
html[data-bm-theme="dark"] .bm-os-filter-button{background:var(--bm-card);color:var(--bm-ink);border-color:var(--bm-line)}
html[data-bm-theme="dark"] .bm-os-filter-button.is-active{background:var(--bm-copper);border-color:var(--bm-copper);color:#20170f}
.bm-os-feature-card,.bm-os-photo-card,.bm-os-video-card,.bm-os-department-card{opacity:1;transform:translateY(0)}
.bm-os-site.js-motion .bm-os-feature-card:not(.bm-os-is-visible),.bm-os-site.js-motion .bm-os-photo-card:not(.bm-os-is-visible),.bm-os-site.js-motion .bm-os-video-card:not(.bm-os-is-visible),.bm-os-site.js-motion .bm-os-department-card:not(.bm-os-is-visible){opacity:.01;transform:translateY(10px)}
.bm-os-feature-card,.bm-os-photo-card,.bm-os-video-card,.bm-os-department-card{transition:opacity .35s var(--bm-ease),transform .35s var(--bm-ease),box-shadow var(--bm-medium),border-color var(--bm-medium)}
.bm-os-published-routes,.bm-os-published-facilities{margin-top:46px;padding-top:28px;border-top:1px solid var(--bm-line)}
.bm-os-route-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.bm-os-route-card{min-width:0;border:1px solid var(--bm-line);border-radius:14px;padding:17px;background:var(--bm-card,var(--bm-paper))}
.bm-os-route-card h3{font:700 1.08rem/1.3 var(--bm-head,Georgia,serif);color:var(--bm-cocoa);margin:0 0 7px}
.bm-os-route-card p{font-size:.82rem;color:var(--bm-muted);line-height:1.72;margin:0 0 7px;overflow-wrap:anywhere}
.bm-os-route-card p:last-child{margin-bottom:0}
.bm-os-route-points{font-weight:800;color:var(--bm-cocoa)!important}
html[data-bm-theme="dark"] .bm-os-route-card{background:var(--bm-card);border-color:var(--bm-line)}
html[data-bm-theme="dark"] .bm-os-route-card h3,html[data-bm-theme="dark"] .bm-os-route-points{color:var(--bm-ink)!important}
@media(max-width:680px){.bm-os-route-grid{grid-template-columns:1fr}}
