/* Classic Academy tenant public experience — shared visual contract */
:root{
  --tp-blue:var(--primary,var(--blue,#0a3d62));
  --tp-accent:var(--accent,#4a90e2);
  --tp-line:rgba(10,61,98,.12);
  --tp-shadow:0 24px 60px rgba(10,61,98,.12);
  --tp-radius:26px;
}
html{scroll-behavior:smooth}
body{overflow-x:hidden}

/* Floating school navigation */
.tenant-site-nav{
  display:block!important;
  position:sticky!important;
  top:12px!important;
  z-index:1200!important;
  width:min(1320px,calc(100% - 24px))!important;
  margin:12px auto 0!important;
  border:1px solid rgba(255,255,255,.74)!important;
  border-radius:26px!important;
  background:rgba(255,255,255,.90)!important;
  color:#132238!important;
  box-shadow:0 18px 46px rgba(10,61,98,.13)!important;
  backdrop-filter:blur(18px)!important;
  -webkit-backdrop-filter:blur(18px)!important;
  overflow:visible!important;
  padding:0!important;
}
.tenant-nav-shell{width:100%;min-height:68px;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.tenant-brand{display:flex;align-items:center;gap:11px;min-width:0;text-decoration:none!important;color:inherit!important}
.tenant-brand-mark{width:48px;height:48px;flex:0 0 48px;border-radius:17px;overflow:hidden;display:grid;place-items:center;background:#f1f7fc;border:1px solid var(--tp-line);color:var(--tp-blue);font-weight:1000}
.tenant-brand-mark img{width:100%;height:100%;object-fit:contain;padding:4px}
.tenant-brand-copy{min-width:0}.tenant-brand-copy strong{display:block;font-size:15px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tenant-brand-copy span{display:block;font-size:10.5px;color:#728095;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:270px}
.tenant-nav-links,.tenant-nav-actions{display:flex;align-items:center;gap:4px}.tenant-nav-links a{padding:10px 11px;border-radius:999px;font-size:12px;font-weight:850;color:#41536a;text-decoration:none}.tenant-nav-links a:hover{background:#eef7ff;color:var(--tp-blue)}
.tenant-nav-actions .btn,.tenant-nav-actions a{border-radius:999px!important}
.tenant-nav-actions .btn{padding:10px 14px;border:1px solid var(--tp-line);background:#fff;color:var(--tp-blue);font-size:12px;font-weight:900;text-decoration:none}.tenant-nav-actions .btn.primary{background:var(--tp-accent);border-color:var(--tp-accent);color:#fff}
.tenant-nav-menu{display:none;width:42px;height:42px;border-radius:50%!important;border:1px solid var(--tp-line)!important;background:#fff!important;color:var(--tp-blue)!important;align-items:center;justify-content:center;cursor:pointer}
.tenant-mobile-nav{display:none;padding:4px 12px 14px;border-top:1px solid rgba(10,61,98,.07)}
.tenant-mobile-nav a{display:flex;align-items:center;gap:9px;padding:11px 8px;border-radius:14px;font-size:13px;font-weight:800;text-decoration:none;color:#334b65}.tenant-mobile-nav a:hover{background:#eef7ff}

/* Rounded controls and cards across tenant public pages */
body :is(.btn,a.btn,button.btn){border-radius:999px!important;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease!important}
body :is(.btn,a.btn,button.btn):hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(10,61,98,.12)}
body :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,.input,.select){border-radius:18px!important}
body :is(textarea,.textarea){border-radius:20px!important}
body :is(.card,.panel,.section,.detail,.program,.stat,.news article,.contact-card,.notice,.search){border-radius:24px!important}
body :is(input,select,textarea,button,a){transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease,transform .18s ease}
body :is(input:not([type="checkbox"]):not([type="radio"]):focus,select:focus,textarea:focus){outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--tp-accent) 13%,transparent)!important;border-color:color-mix(in srgb,var(--tp-accent) 55%,#fff)!important}

/* Tenant homepage: stats, gallery and announcements */
.stats{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.stat{border-radius:24px!important;transition:transform .2s ease,box-shadow .2s ease}.stat:hover{transform:translateY(-5px);box-shadow:0 18px 36px rgba(10,61,98,.10)}
.gallery.gallery-story{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:170px;gap:12px}
.gallery-story .photo{position:relative;aspect-ratio:auto!important;min-height:0;border-radius:24px!important;overflow:hidden;margin:0;box-shadow:0 10px 24px rgba(10,61,98,.07)}
.gallery-story .photo:first-child{grid-column:span 2;grid-row:span 2}.gallery-story .photo:nth-child(6n+4){grid-row:span 2}
.gallery-story .photo img{width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.8,.2,1),filter .35s ease}.gallery-story .photo:hover img{transform:scale(1.055);filter:saturate(1.04)}
.gallery-story figcaption{position:absolute;left:10px;right:10px;bottom:10px;padding:11px 12px;border-radius:17px;background:rgba(8,33,55,.72);color:#fff;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);transform:translateY(3px);transition:transform .22s ease,background .22s ease}.gallery-story .photo:hover figcaption{transform:translateY(0);background:rgba(8,33,55,.82)}
.gallery-story figcaption small{display:block;opacity:.72;font-size:9.5px;text-transform:uppercase;letter-spacing:.08em}.gallery-story figcaption strong{display:block;font-size:12px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.news .news-card{display:flex;flex-direction:column;min-height:210px}.news-card .news-excerpt{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.news-card .news-actions{margin-top:auto;padding-top:14px}.news-card .read-more{font-size:11px;padding:9px 12px}

/* Accessible announcement preview */
.announcement-modal[hidden]{display:none}.announcement-modal{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:20px}.announcement-backdrop{position:absolute;inset:0;background:rgba(3,21,35,.58);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.announcement-dialog{position:relative;width:min(720px,100%);max-height:min(82vh,760px);overflow:auto;background:#fff;border:1px solid rgba(255,255,255,.75);border-radius:30px;box-shadow:0 34px 90px rgba(0,0,0,.24);padding:28px;animation:tenantModalIn .24s ease both}.announcement-dialog-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.announcement-dialog .modal-kicker{font-size:10px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:var(--tp-accent)}.announcement-dialog h2{margin:7px 0 4px;font-size:clamp(24px,4vw,36px);line-height:1.08}.announcement-dialog time{font-size:11px;color:#748197}.announcement-dialog-body{margin-top:20px;padding-top:18px;border-top:1px solid var(--tp-line);white-space:pre-line;color:#44546a;line-height:1.8;font-size:14px}.announcement-close{width:42px;height:42px;border-radius:50%!important;border:1px solid var(--tp-line);background:#f7fbff;cursor:pointer;color:#4f6177;flex:0 0 auto}@keyframes tenantModalIn{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
body.modal-open{overflow:hidden}
.announcement-source{display:none!important}

/* Floating four-column tenant footer */
.tenant-site-footer{background:transparent!important;border:0!important;margin:34px 0 18px!important;padding:0 12px!important}
.tenant-footer-shell{width:min(1320px,100%);margin:0 auto;border-radius:32px;background:var(--tp-blue);color:#fff;padding:32px;box-shadow:0 26px 64px rgba(10,61,98,.22);overflow:hidden;position:relative}
.tenant-footer-shell:after{content:"";position:absolute;width:260px;height:260px;border:46px solid rgba(255,255,255,.05);border-radius:50%;right:-105px;bottom:-145px;pointer-events:none}
.tenant-footer-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.35fr .8fr .9fr 1fr;gap:30px}.tenant-footer-col h3{font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin:0 0 13px;color:rgba(255,255,255,.68)}.tenant-footer-brand{display:flex;gap:12px;align-items:center}.tenant-footer-logo{width:52px;height:52px;flex:0 0 52px;border-radius:17px;background:#fff;display:grid;place-items:center;overflow:hidden;color:var(--tp-blue);font-weight:1000}.tenant-footer-logo img{width:100%;height:100%;object-fit:contain;padding:4px}.tenant-footer-name{font-weight:900;font-size:16px}.tenant-footer-tagline,.tenant-footer-note{color:rgba(255,255,255,.70);font-size:11px;line-height:1.6;margin-top:5px}.tenant-footer-links{display:grid;gap:8px}.tenant-footer-links a{color:rgba(255,255,255,.84);font-size:12px;text-decoration:none;width:max-content;max-width:100%;transition:color .18s ease,transform .18s ease}.tenant-footer-links a:hover{color:#fff;transform:translateX(3px)}.tenant-socials{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.tenant-socials a{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#fff;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.13);text-decoration:none}.tenant-socials a:hover{background:rgba(255,255,255,.18);transform:translateY(-2px)}.tenant-footer-bottom{position:relative;z-index:1;margin-top:26px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;color:rgba(255,255,255,.62);font-size:10.5px}.tenant-footer-bottom a{color:#fff;font-weight:800;text-decoration:none}

@media(max-width:980px){.tenant-nav-links,.tenant-nav-actions{display:none}.tenant-nav-menu{display:flex}.tenant-mobile-nav.open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.tenant-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery.gallery-story{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.tenant-site-nav{top:8px!important;width:calc(100% - 16px)!important;margin-top:8px!important;border-radius:22px!important}.tenant-nav-shell{min-height:62px;padding:7px 9px}.tenant-brand-mark{width:44px;height:44px;flex-basis:44px;border-radius:15px}.tenant-brand-copy span{max-width:190px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}.gallery.gallery-story{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:150px}.gallery-story .photo:first-child{grid-column:span 2;grid-row:span 2}.gallery-story .photo:nth-child(6n+4){grid-row:auto}.tenant-footer-shell{padding:25px 20px;border-radius:27px}.tenant-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px}.announcement-dialog{padding:22px;border-radius:25px}}
@media(max-width:480px){.tenant-mobile-nav.open{grid-template-columns:1fr}.tenant-footer-grid{grid-template-columns:1fr 1fr}.tenant-footer-col:first-child{grid-column:1/-1}.gallery.gallery-story{grid-auto-rows:135px}.tenant-footer-bottom{display:grid}.announcement-modal{padding:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.gallery-story .photo img,.btn,.tenant-footer-links a,.tenant-socials a,.stat{transition:none!important}.announcement-dialog{animation:none!important}}
