/* =========================================================
   Science Oasis Schools — home page (Default.aspx)
   Everything is scoped under .os-home. Tokens live in oasis.css.
   ========================================================= */
.os-home { line-height: 1.75; font-size: 17px; color: var(--os-ink); }
.os-home section { position: relative; }
.os-home h1, .os-home h2, .os-home h3, .os-home h4, .os-home p, .os-home ul, .os-home ol, .os-home figure { margin: 0; padding: 0; }
.os-home h1, .os-home h2, .os-home h3, .os-home h4 { line-height: 1.25; font-weight: 700; color: inherit; }
.os-home img { display: block; max-width: 100%; }
.os-home a { text-decoration: none; }
.os-title em, .os-home em { font-style: normal; color: var(--os-green); position: relative; white-space: nowrap; z-index: 0; }
.os-home em::after {
    content: ""; position: absolute; inset-inline: 0; bottom: .08em; height: .28em; background: var(--os-sand);
    opacity: .55; z-index: -1; border-radius: 4px;
}

/* ---------- section heads ---------- */
.os-head { margin-bottom: 56px; }
.os-head.os-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; }
.os-kicker { display: inline-block; font-family: var(--os-f-head); font-size: .85rem; color: var(--os-green-700); letter-spacing: .04em; margin-bottom: 14px; }
.os-home .os-head h2 { font-size: clamp(2.1rem, 4.4vw, 3.8rem); font-weight: 800; color: var(--os-green-900); }
.os-home .os-head p { color: var(--os-muted); margin-top: 12px; }
.os-head.os-on-dark h2, .os-head.os-on-dark .os-kicker { color: var(--os-cream) !important; }
.os-head.os-on-dark p { color: rgba(247,243,234,.7) !important; }
.os-head.os-on-dark em { color: var(--os-sand); }
.os-head.os-on-dark em::after { opacity: .25; }

/* ---------- hero ---------- */
.os-hero { min-height: min(100vh, 920px); display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: 40px; padding: 140px 6vw 80px; overflow: hidden; }
.os-hero-rays { position: absolute; width: 1100px; height: 720px; color: var(--os-green); opacity: .045; top: -160px; inset-inline-end: -260px; pointer-events: none; animation: os-spin 120s linear infinite; transform-origin: 50% 77%; }
@keyframes os-spin { to { transform: rotate(360deg); } }
.os-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-family: var(--os-f-head); font-size: .85rem; color: var(--os-green); background: var(--os-green-100); padding: .45em 1em; border-radius: 999px; }
.os-eyebrow i { width: 8px; height: 8px; border-radius: 50%; background: var(--os-green); animation: os-pulse 2s infinite; }
@keyframes os-pulse { 0% { box-shadow: 0 0 0 0 rgba(21,74,32,.5); } 70% { box-shadow: 0 0 0 10px rgba(21,74,32,0); } 100% { box-shadow: 0 0 0 0 rgba(21,74,32,0); } }
.os-home .os-hero h1 { font-size: clamp(3rem, 7vw, 6.6rem); font-weight: 800; line-height: 1.08; margin: 26px 0 22px; color: var(--os-green-900); }
.os-hero h1 em::after { height: .22em; }
.os-hero h1 .dot { color: var(--os-sand); }
.os-hero-copy > p { max-width: 540px; color: var(--os-muted); font-size: 1.1rem; }
.os-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 34px; }
.os-cta.os-center { justify-content: center; }
.os-home a.os-play-link { display: flex; align-items: center; gap: 12px; font-family: var(--os-f-head); font-weight: 500; color: var(--os-green); }
.os-play { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid var(--os-green); font-size: .75rem; transition: .3s; }
.os-play-link:hover .os-play { background: var(--os-green); color: #fff; }
.os-facts { list-style: none; display: flex; gap: 44px; margin-top: 56px !important; padding-top: 28px !important; border-top: 1px solid var(--os-line); max-width: 540px; }
.os-facts b { display: block; font-family: var(--os-f-head); font-size: 2.2rem; font-weight: 800; color: var(--os-green); line-height: 1; }
.os-facts span { font-size: .88rem; color: var(--os-muted); }

.os-hero-visual { position: relative; justify-self: center; width: min(460px, 100%); aspect-ratio: .82; }
.os-shield {
    position: absolute; inset: 0; clip-path: url(#osShieldClip); background: var(--os-green) center/cover no-repeat;
    background-image: url('https://images.unsplash.com/photo-1509062522246-3755977927d7?w=900&q=80&auto=format&fit=crop');
}
.os-shield::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(21,74,32,0) 45%, rgba(11,41,18,.55)); pointer-events: none; }
/* Slides rendered by Default.aspx.cs: .mySlides > .numbertext + img.image_cover + .text-caption */
.os-slides, .os-slides .mySlides { position: absolute; inset: 0; }
.os-slides .mySlides { opacity: 0 !important; transition: opacity 1.2s ease; display: block !important; }
.os-slides .mySlides.show { opacity: 1 !important; }
.os-slides .image_cover { width: 100% !important; height: 100% !important; object-fit: cover; transform: scale(1.08); transition: transform 6s ease; }
.os-slides .mySlides.show .image_cover { transform: scale(1); }
.os-slides .numbertext, .os-slides .text-caption { display: none; }
.os-slide-caption {
    position: absolute; inset-inline: 8%; bottom: -8%; z-index: 3; background: #fff; border-radius: 18px; padding: 14px 18px;
    box-shadow: 0 18px 40px -16px rgba(11,41,18,.35); font-family: var(--os-f-head); font-weight: 500; color: var(--os-green-900);
    font-size: .95rem; line-height: 1.5; text-align: center; transition: opacity .5s;
}
.os-slide-caption:empty { display: none; }
.os-slide-caption { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; padding-block: 0; border-block: 14px solid #fff; }
.os-slide-caption h3 { font-size: inherit; font-weight: inherit; margin: 0; color: inherit; }
.os-dots { position: absolute; bottom: -22%; inset-inline: 0; display: flex; justify-content: center; gap: 8px; text-align: center; }
.os-dots .dot { width: 9px; height: 9px; border-radius: 999px; background: var(--os-line); cursor: pointer; display: inline-block; transition: .4s var(--os-ease); margin: 0; }
.os-dots .dot.active { width: 28px; background: var(--os-green); }
.os-shield-arcs { position: absolute; width: 118%; height: 70%; left: -9%; bottom: -16%; color: var(--os-sand); pointer-events: none; z-index: 2; }
.os-shield-arcs path { stroke-dasharray: 700; stroke-dashoffset: 700; animation: os-draw 2.4s var(--os-ease) forwards; }
.os-shield-arcs path:nth-child(2) { animation-delay: .25s; }
.os-shield-arcs path:nth-child(3) { animation-delay: .5s; }
@keyframes os-draw { to { stroke-dashoffset: 0; } }
.os-sun {
    position: absolute; z-index: 3; width: 118px; height: 118px; border-radius: 50%; background: var(--os-cream); border: 10px solid var(--os-green);
    top: -34px; inset-inline-start: -34px; display: grid; place-items: center; color: var(--os-green);
    box-shadow: 0 20px 40px -18px rgba(11,41,18,.5); animation: os-bob 6s ease-in-out infinite;
}
.os-sun svg { width: 66px; height: 66px; }
@keyframes os-bob { 50% { transform: translateY(-10px); } }
.os-float {
    position: absolute; z-index: 3; display: flex; align-items: center; gap: 12px; background: #fff; padding: 12px 18px 12px 14px;
    border-radius: 18px; box-shadow: 0 18px 40px -16px rgba(11,41,18,.35); animation: os-bob 7s ease-in-out infinite;
}
.os-float b { font-family: var(--os-f-head); font-size: .95rem; display: block; line-height: 1.2; }
.os-float small { color: var(--os-muted); font-size: .78rem; }
.os-float-ico { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--os-sand-200); color: var(--os-green); font-size: 1.1rem; }
.os-float-1 { bottom: 34%; inset-inline-end: -46px; animation-delay: -2s; }
.os-float-2 { top: 18%; inset-inline-end: -30px; animation-delay: -4s; }

/* ---------- values marquee ---------- */
.os-marquee { background: var(--os-green); color: var(--os-cream); overflow: hidden; padding: 22px 0; transform: rotate(-1.2deg); margin-inline: -2vw; width: 104vw; }
.os-track { display: flex; width: max-content; animation: os-marq 40s linear infinite; }
[dir="ltr"] .os-track { animation-name: os-marq-ltr; }
.os-track span { font-family: var(--os-f-head); font-size: clamp(1.4rem, 2.6vw, 2.2rem); font-weight: 700; padding: 0 28px; display: flex; align-items: center; gap: 56px; white-space: nowrap; }
.os-track span::after { content: "✺"; color: var(--os-sand); font-size: .7em; }
@keyframes os-marq { to { transform: translateX(50%); } }
@keyframes os-marq-ltr { to { transform: translateX(-50%); } }
.os-marquee:hover .os-track { animation-play-state: paused; }

/* ---------- about ---------- */
.os-about { padding: 140px 6vw 60px; }
.os-about-grid { display: grid; grid-template-columns: 1fr 1fr 1.2fr; gap: 24px; align-items: stretch; }
.os-vcard {
    background: #fff; border-radius: var(--os-r) var(--os-r) 50% 50% / var(--os-r) var(--os-r) 30% 30%; padding: 0 34px 70px;
    border: 1px solid var(--os-line); transition: .5s var(--os-ease); overflow: hidden;
}
.os-vcard:hover { transform: translateY(-8px); box-shadow: 0 30px 60px -30px rgba(11,41,18,.35); }
.os-vcard-top { height: 120px; margin: 0 -34px 30px; background: var(--os-green); color: var(--os-sand); display: flex; align-items: flex-end; justify-content: center; overflow: hidden; }
.os-vcard-top svg { width: 220px; height: 110px; }
.os-vcard.os-alt .os-vcard-top { background: var(--os-sand); color: var(--os-green); }
.os-vcard.os-alt .os-vcard-top svg { transform: translateY(-10px); }
.os-home .os-vcard h3 { font-size: 1.7rem; color: var(--os-green); margin-bottom: 12px; }
.os-vcard-text, .os-vcard-text * { color: var(--os-muted) !important; font-size: 1rem !important; text-align: start !important; background: none !important; }
.os-about-photo { position: relative; border-radius: var(--os-r); overflow: hidden; min-height: 420px; }
.os-about-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--os-ease); }
.os-about-photo:hover img { transform: scale(1.06); }
.os-about-photo figcaption {
    position: absolute; inset-inline: 20px; bottom: 20px; background: rgba(247,243,234,.92); backdrop-filter: blur(8px);
    padding: 18px 22px; border-radius: 18px; font-family: var(--os-f-head); font-weight: 500; color: var(--os-green-900);
}
.os-story { margin-top: 24px; display: grid; grid-template-columns: auto 1fr; gap: 40px; align-items: start; background: var(--os-sand-200); border-radius: var(--os-r); padding: 44px; }
.os-story-mark { width: 92px; height: 108px; background: var(--os-cream); border-radius: 20px 20px 46px 46px; display: grid; place-items: center; }
.os-story-mark img { width: 64px; mix-blend-mode: multiply; }
.os-home .os-story h3 { font-size: 1.6rem; color: var(--os-green-900); margin-bottom: 10px; }
.os-story-text { color: var(--os-ink); display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 20px; }
.os-story-text, .os-story-text * { text-align: start !important; font-size: 1rem !important; background: none !important; }

/* ---------- stages ---------- */
.os-stages { background: var(--os-green-900); padding: 120px 6vw; color: var(--os-cream); overflow: hidden; }
.os-stages::before { content: ""; position: absolute; inset: 0; background: radial-gradient(800px 400px at 85% 0%, rgba(216,178,106,.18), transparent 60%); }
.os-stage-row { display: flex; gap: 16px; height: 520px; position: relative; }
.os-stage { flex: 1; position: relative; border-radius: var(--os-r); overflow: hidden; cursor: pointer; transition: flex .8s var(--os-ease); }
.os-stage.os-active { flex: 3; }
.os-stage img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(.6) brightness(.7); transition: 1s var(--os-ease); }
.os-stage.os-active img { filter: none; }
.os-stage::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(11,41,18,.95) 0%, rgba(11,41,18,.15) 60%); }
.os-stage-body { position: absolute; inset: auto 0 0 0; padding: 28px; z-index: 2; }
.os-stage-n { font-family: var(--os-f-head); font-size: 3rem; font-weight: 800; color: transparent; -webkit-text-stroke: 1.5px var(--os-sand); line-height: 1; }
.os-home .os-stage h3 { font-size: 1.5rem; margin: 8px 0; white-space: nowrap; color: var(--os-cream); }
.os-stage h3, .os-stage p, .os-stage-tag { opacity: 0; transform: translateY(16px); transition: .5s var(--os-ease); }
.os-stage p { max-width: 420px; color: rgba(247,243,234,.8); }
.os-stage.os-active h3, .os-stage.os-active p, .os-stage.os-active .os-stage-tag { opacity: 1; transform: none; transition-delay: .3s; }
.os-stage-tag { position: absolute; top: 24px; inset-inline-start: 24px; z-index: 2; background: var(--os-sand); color: var(--os-green-900); font-family: var(--os-f-head); font-size: .85rem; font-weight: 700; padding: .35em 1em; border-radius: 999px; }

/* ---------- why / bento ---------- */
.os-why { padding: 130px 6vw; }
.os-bento { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 240px; gap: 18px; }
.os-b { border-radius: var(--os-r); padding: 30px; position: relative; overflow: hidden; transition: .5s var(--os-ease); }
.os-b:hover { transform: translateY(-6px); }
.os-home .os-b h3 { font-size: 1.35rem; margin: 14px 0 6px; color: inherit; }
.os-b p { font-size: .95rem; opacity: .85; }
.os-b-ico { display: inline-grid; place-items: center; min-width: 52px; height: 52px; padding: 0 12px; border-radius: 16px; font-family: var(--os-f-head); font-weight: 700; font-size: 1.1rem; }
.os-b-big { grid-column: span 2; grid-row: span 2; padding: 0; }
.os-b-big img { width: 100%; height: 100%; object-fit: cover; transition: 1.2s var(--os-ease); }
.os-b-big:hover img { transform: scale(1.05); }
.os-b-over { position: absolute; inset: auto 18px 18px 18px; background: var(--os-cream); border-radius: 22px; padding: 24px 26px; }
.os-home .os-b-over h3 { color: var(--os-green); margin-top: 0; }
.os-b-green { background: var(--os-green); color: var(--os-cream); }
.os-b-green .os-b-ico { background: rgba(255,255,255,.12); color: var(--os-sand); }
.os-b-sand { background: var(--os-sand); color: var(--os-green-900); }
.os-b-sand .os-b-ico { background: rgba(255,255,255,.45); }
.os-b-line { background: #fff; border: 1px solid var(--os-line); }
.os-b-line .os-b-ico { background: var(--os-green-100); color: var(--os-green); }
.os-b-dark { background: var(--os-ink); color: var(--os-cream); }
.os-b-dark .os-b-ico { background: var(--os-sand); color: var(--os-ink); }

/* ---------- team (ViewOurTeam.ascx) ---------- */
.os-team { padding: 40px 6vw 130px; }
.os-team-lead { max-width: 760px; color: var(--os-muted); }
.os-team-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 290px)); justify-content: center; gap: 22px; }
.os-home a.os-member { display: block; color: var(--os-ink); }
.os-member-photo { aspect-ratio: .8; border-radius: 200px 200px var(--os-r) var(--os-r); overflow: hidden; background: var(--os-green-100); position: relative; }
.os-member-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--os-ease); }
.os-member:hover .os-member-photo img { transform: scale(1.06); }
.os-member-photo::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 6px rgba(216,178,106,0); transition: .5s; }
.os-member:hover .os-member-photo::after { box-shadow: inset 0 0 0 6px var(--os-sand); }
.os-home .os-member h4 { font-size: 1.1rem; margin-top: 16px; color: var(--os-green-900); }
.os-member p { color: var(--os-muted); font-size: .9rem; }

/* ---------- admission ---------- */
.os-admission { background: var(--os-green); color: var(--os-cream); padding: 130px 6vw; overflow: hidden; border-radius: 60px 60px 0 0; }
.os-adm-rays { position: absolute; width: 900px; height: 585px; color: #fff; opacity: .06; bottom: -120px; left: 50%; transform: translateX(-50%); pointer-events: none; }
.os-adm-inner { position: relative; max-width: 1200px; margin: 0 auto; }
.os-steps { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; position: relative; }
.os-steps::before { content: ""; position: absolute; top: 34px; inset-inline: 8%; height: 2px; background: repeating-linear-gradient(90deg, var(--os-sand) 0 10px, transparent 10px 20px); opacity: .6; }
.os-steps li { position: relative; text-align: center; padding: 0 10px; }
.os-steps span { width: 68px; height: 68px; border-radius: 50%; display: grid; place-items: center; margin: 0 auto 22px; background: var(--os-cream); color: var(--os-green); font-family: var(--os-f-head); font-size: 1.6rem; font-weight: 800; border: 6px solid var(--os-green); box-shadow: 0 0 0 2px var(--os-sand); position: relative; transition: .4s var(--os-ease); }
.os-steps li:hover span { background: var(--os-sand); transform: scale(1.1); }
.os-home .os-steps h4 { font-size: 1.2rem; margin-bottom: 6px; color: var(--os-cream); }
.os-steps p { font-size: .92rem; color: rgba(247,243,234,.75); }
.os-adm-cta { display: flex; justify-content: center; flex-wrap: wrap; gap: 16px; margin-top: 64px; }

/* ---------- news (BlogGrid.ascx) ---------- */
.os-news { padding: 130px 6vw 100px; }
.os-news-grid { display: grid; grid-template-columns: 1.6fr 1fr; grid-auto-rows: minmax(200px, auto); gap: 22px; }
.os-n { background: #fff; border-radius: var(--os-r); overflow: hidden; display: grid; grid-template-columns: 42% 1fr; transition: .5s var(--os-ease); border: 1px solid var(--os-line); color: var(--os-ink); }
.os-home a.os-n { color: var(--os-ink); }
.os-n:hover { box-shadow: 0 30px 60px -32px rgba(11,41,18,.4); transform: translateY(-4px); }
.os-n-img { background: var(--os-green-100); min-height: 180px; position: relative; }
.os-n-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.os-n-body { padding: 24px; display: flex; flex-direction: column; justify-content: center; }
.os-n time { font-family: var(--os-f-head); font-size: .78rem; color: var(--os-green-700); background: var(--os-green-100); align-self: flex-start; padding: .2em .8em; border-radius: 999px; margin-bottom: 10px; }
.os-home .os-n h3 { font-size: 1.15rem; color: var(--os-ink); }
.os-n p { color: var(--os-muted); font-size: .95rem; margin-top: 8px !important; }
.os-n-more { margin-top: 14px; font-family: var(--os-f-head); font-size: .88rem; color: var(--os-green); }
.os-n-main { grid-row: span 2; grid-template-columns: 1fr; grid-template-rows: 1fr auto; }
.os-n-main .os-n-img { min-height: 320px; }
.os-home .os-n-main h3 { font-size: 1.6rem; }
.os-news-grid > .os-n:only-child { grid-column: 1 / -1; }
.os-empty { grid-column: 1 / -1; text-align: center; color: var(--os-muted); padding: 60px 0; font-family: var(--os-f-head); }

/* ---------- gallery strip ---------- */
.os-gallery { padding: 40px 0 110px; }
.os-gallery .os-head { padding: 0 6vw; }
.os-strip { display: flex; gap: 16px; padding: 0 6vw 60px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 6vw; scrollbar-width: none; }
.os-strip::-webkit-scrollbar { display: none; }
.os-home a.os-shot {
    flex: 0 0 clamp(220px, 24vw, 340px); height: 420px; position: relative; overflow: hidden; scroll-snap-align: start;
    border-radius: 200px 200px var(--os-r) var(--os-r); background: var(--os-green-100); transition: transform .6s var(--os-ease);
}
.os-home a.os-shot:nth-child(even) { margin-top: 50px; border-radius: var(--os-r) var(--os-r) 200px 200px; }
.os-shot img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.04); transition: transform 1s var(--os-ease); }
.os-shot::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(11,41,18,.85), rgba(11,41,18,0) 45%); opacity: 0; transition: opacity .5s; }
.os-shot span {
    position: absolute; inset-inline: 22px; bottom: 26px; z-index: 1; color: var(--os-cream); font-family: var(--os-f-head);
    font-weight: 500; line-height: 1.4; opacity: 0; transform: translateY(12px); transition: .5s var(--os-ease);
}
.os-shot:nth-child(even) span { bottom: 70px; text-align: center; }
.os-home a.os-shot:hover { transform: translateY(-10px); }
.os-shot:hover img { transform: scale(1.12); }
.os-shot:hover::after, .os-shot:hover span, .os-shot:focus-visible::after, .os-shot:focus-visible span { opacity: 1; transform: none; }
@media (hover: none) { .os-shot::after, .os-shot span { opacity: 1; transform: none; } }

/* ---------- partners ---------- */
.os-partners { padding: 0 6vw 110px; text-align: center; }
.os-partners .os-kicker { margin-bottom: 30px; }
.os-partner-row { display: flex; justify-content: center; flex-wrap: wrap; gap: 24px; }
.os-partner-row img { height: 110px; width: 220px; object-fit: contain; background: #fff; border-radius: 20px; padding: 14px; border: 1px solid var(--os-line); filter: grayscale(1); opacity: .8; transition: .4s; }
.os-partner-row img:hover { filter: none; opacity: 1; }

/* ---------- final CTA ---------- */
.os-final { padding: 0 6vw 120px; }
.os-final-card { position: relative; max-width: 1100px; margin: 0 auto; background: var(--os-sand-200); border-radius: var(--os-r) var(--os-r) 50% 50% / var(--os-r) var(--os-r) 40% 40%; padding: 80px 30px 140px; text-align: center; overflow: hidden; }
.os-final-arcs { position: absolute; width: 70%; height: 46%; left: 15%; bottom: -8%; color: var(--os-sand); opacity: .45; pointer-events: none; }
.os-final-logo { width: 84px; margin: 0 auto 20px; mix-blend-mode: multiply; }
.os-home .os-final h2 { font-size: clamp(2rem, 4.4vw, 3.6rem); font-weight: 800; color: var(--os-green-900); position: relative; }
.os-final p { color: var(--os-muted); margin-top: 14px !important; position: relative; }
.os-final .os-cta { position: relative; }

/* ---------- reveal on scroll ---------- */
.os-reveal { opacity: 0; transform: translateY(40px); transition: opacity .9s var(--os-ease), transform .9s var(--os-ease); }
.os-reveal.os-in { opacity: 1; transform: none; }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
    .os-hero { grid-template-columns: 1fr; padding-top: 130px; }
    .os-hero-visual { width: min(380px, 82%); margin: 30px auto 110px; }
    .os-about-grid { grid-template-columns: 1fr 1fr; }
    .os-about-photo { grid-column: span 2; }
    .os-bento { grid-template-columns: repeat(2, 1fr); }
    .os-team-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
    .os-home { font-size: 16px; }
    .os-hero { padding: 120px 16px 40px; }
    .os-facts { gap: 24px; }
    .os-facts b { font-size: 1.7rem; }
    .os-float-1 { inset-inline-end: -14px; } .os-float-2 { inset-inline-end: -10px; }
    .os-sun { width: 86px; height: 86px; border-width: 7px; top: -20px; inset-inline-start: -14px; }
    .os-sun svg { width: 48px; height: 48px; }
    .os-about, .os-why, .os-news, .os-stages, .os-admission { padding: 90px 16px; }
    .os-about { padding-bottom: 40px; }
    .os-team { padding: 30px 16px 90px; }
    .os-about-grid { grid-template-columns: 1fr; }
    .os-about-photo { grid-column: auto; min-height: 340px; }
    .os-story { grid-template-columns: 1fr; padding: 30px 24px; gap: 20px; }
    .os-stage-row { flex-direction: column; height: auto; }
    .os-stage { min-height: 110px; flex: none; }
    .os-stage.os-active { min-height: 380px; flex: none; }
    .os-bento { grid-template-columns: 1fr; grid-auto-rows: auto; }
    .os-b-big { grid-column: auto; grid-row: auto; height: 420px; }
    .os-team-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
    .os-steps { grid-template-columns: 1fr 1fr; row-gap: 40px; }
    .os-steps::before { display: none; }
    .os-news-grid { grid-template-columns: 1fr; }
    .os-n { grid-template-columns: 1fr; }
    .os-n-main { grid-row: auto; }
    .os-gallery .os-head, .os-strip { padding-inline: 16px; scroll-padding-inline: 16px; }
    .os-home a.os-shot { height: 320px; }
    .os-partners, .os-final { padding-inline: 16px; }
    .os-final-card { padding: 60px 20px 110px; }
    .os-admission { border-radius: 36px 36px 0 0; }
}
@media (prefers-reduced-motion: reduce) {
    .os-reveal { opacity: 1; transform: none; }
    .os-shield-arcs path { stroke-dashoffset: 0; }
}
