/* Public composition boundaries. Keep app/portal rules out of public card headers.
   School accents remain tenant-owned; the platform uses its own forest palette. */
body:has(.v2-platform)>main#main-content,
body:has(.v2-school.sp-public)>main#main-content {
  width:min(1560px,calc(100% - 48px));max-width:none;margin:12px auto 38px;padding:0;
}
.v2-platform .v2-canvas,.v2-school.sp-public .v2-school-canvas {
  width:100%;max-width:none!important;padding:12px!important;min-width:0;box-sizing:border-box;
}
.v2-platform .v2-platform-head {
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px 24px;padding:18px;
}
.v2-platform .v2-platform-head .v2-day {
  position:static;float:none;width:auto;min-width:0;max-width:340px;margin:0;padding:10px 14px;
}
.v2-platform .v2-platform-head .v2-day b {font-size:13px;line-height:1.3}
.v2-platform .v2-platform-head .v2-day small {font-size:11px;line-height:1.35}
.v2-platform .v2-platform-head .v2-search {grid-column:1/-1;min-width:0;flex-wrap:wrap;gap:14px!important;margin:0}
.v2-platform .v2-search form {width:310px;max-width:100%;min-width:0;margin:0}
.v2-platform .v2-search nav {justify-content:flex-end;gap:8px!important;margin:0}
.v2-platform .v2-search nav .v2-platform-action {padding:9px 14px!important;min-height:38px!important;font-size:12px!important}
.v2-platform .v2-platform-lead {grid-template-columns:minmax(0,2.7fr) minmax(350px,1.15fr)!important}
.v2-platform .v2-platform-carousel,.v2-platform .v2-platform-carousel.v2-live-carousel,
.v2-platform .v2-platform-lead>aside.v2-national-ranks {
  height:560px!important;min-height:560px!important;max-height:560px!important;
}
.v2-platform .v2-platform-lead>aside.v2-national-ranks {padding:12px!important;gap:8px!important}
.v2-platform .v2-rank-list {grid-template-rows:none!important;grid-auto-rows:minmax(44px,1fr);gap:5px!important}
.v2-platform .v2-rank {padding:6px 9px!important;min-height:44px!important;gap:9px!important}
.v2-platform .v2-rank img {width:31px!important;height:31px!important;flex-basis:31px!important}
.v2-platform .v2-rank b {font-size:12px!important;line-height:1.2!important}
.v2-platform .v2-rank small {font-size:10px!important;line-height:1.25!important;margin-top:3px!important}
.v2-platform .v2-link {min-height:168px;padding:18px}
.v2-platform .v2-link h2 {font-size:20px!important;line-height:1.25!important;font-weight:550!important}
.v2-platform .v2-link p {font-size:14px;line-height:1.5;margin:10px 0}
.v2-platform .v2-link span {font-size:12px}

/* Four informative cards need real content space, not four 90px clipping boxes. */
.v2-school.sp-public .v2-school-lead,
.v2-school.sp-public.school-layout-default .v2-school-lead,
.v2-school.sp-public.school-layout-editorial .v2-school-lead,
.v2-school.sp-public.school-layout-compact .v2-school-lead {
  grid-template-columns:minmax(0,2.25fr) minmax(320px,1fr)!important;align-items:stretch;gap:14px;
}
.v2-school.sp-public .v2-school-carousel,.v2-school.sp-public .v2-school-hero-media,
.v2-school.sp-public.school-layout-compact .v2-school-carousel,
.v2-school.sp-public.school-layout-compact .v2-school-hero-media,
.v2-school.sp-public .school-landing-sidebar,
.v2-school.sp-public.school-layout-compact .school-landing-sidebar {
  height:560px!important;min-height:560px!important;max-height:560px!important;
}
.v2-school.sp-public .school-landing-sidebar {grid-template-rows:repeat(4,minmax(0,1fr))!important;gap:10px!important}
.v2-school.sp-public .school-side-card {
  display:flex;flex-direction:column;gap:7px;padding:12px 14px!important;
  border-left-color:var(--school-accent)!important;overflow:hidden!important;
}
.v2-school.sp-public .school-side-card>header,
.v2-school.sp-public .v2-compact-grid>article>header {
  position:static!important;inset:auto;z-index:auto;display:flex!important;justify-content:flex-start!important;
  align-items:center!important;flex-wrap:nowrap;gap:7px!important;min-height:0;
  margin:0!important;padding:0!important;border:0!important;background:none!important;backdrop-filter:none!important;
  font-size:12px!important;line-height:1.25!important;font-weight:600!important;color:var(--school-primary)!important;
}
.v2-school.sp-public .school-side-card>header>span {width:20px!important;height:20px!important;flex:0 0 20px;font-size:12px}
.v2-school.sp-public .school-side-card>div {min-height:0;overflow:auto;scrollbar-width:thin}
.v2-school.sp-public .school-side-card b {font-size:13px!important;line-height:1.35!important;font-weight:600}
.v2-school.sp-public .school-side-card p {display:block;-webkit-line-clamp:unset;overflow:visible;font-size:12px!important;line-height:1.4!important;color:var(--school-font,#243b32)!important}
.v2-school.sp-public .school-side-card small {font-size:10.5px!important;line-height:1.35!important;color:var(--school-font,#243b32)!important}
.v2-school.sp-public .school-side-follow form {display:flex!important;align-items:center;flex-wrap:nowrap;gap:8px!important;margin:8px 0 0!important}
.v2-school.sp-public .school-side-follow input {width:0;flex:1 1 auto!important;min-height:36px!important;height:36px;padding:7px 10px!important;font-size:12px!important;border-radius:999px!important}
.v2-school.sp-public .school-side-follow button {flex:0 0 auto;min-height:36px;padding:7px 12px!important;font-size:12px!important;border-radius:999px!important}
.v2-school.sp-public .school-side-fact p {font-size:12px!important;line-height:1.45!important}
.v2-school.sp-public .school-side-fact .fact-category {margin-bottom:4px!important}
.v2-school.sp-public .school-side-urgent>header {color:var(--school-primary)!important}
.v2-school.sp-public .school-side-urgent>header>span {background:color-mix(in srgb,var(--school-accent) 13%,#fff)!important;color:var(--school-primary)!important}
.v2-school.sp-public .v2-carousel-school {
  position:absolute!important;inset:20px auto auto 20px!important;max-width:calc(100% - 40px);box-sizing:border-box;
}
.v2-school.sp-public .v2-carousel-school-copy {min-width:0}
.v2-school.sp-public .v2-carousel-school-copy b {font-size:12px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-school.sp-public .v2-carousel-school-copy small {font-size:10px!important}
.v2-school.sp-public .v2-school-badge {flex:0 0 32px}
.v2-school.sp-public .v2-compact-grid>article {padding:16px;min-width:0}
.v2-school.sp-public .v2-compact-grid>article>header {font-size:14px!important;margin-bottom:8px!important}
.v2-school.sp-public .v2-compact-grid :is(p,a,small) {font-size:13px!important;line-height:1.5}
.v2-school.sp-public .v2-compact-grid .v2-update-list b {font-size:13px;font-weight:550}

/* A regular card grid is intentional in every school layout, including editorial. */
.v2-school.sp-public .sp-news-grid,
.v2-school.sp-public.school-layout-editorial .sp-news-grid,
.v2-school.sp-public.school-layout-compact .sp-news-grid {
  display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-auto-flow:row;gap:16px!important;
}
.v2-school.sp-public .sp-news-grid>.sp-news-card,
.v2-school.sp-public.school-layout-editorial .sp-news-card:first-child,
.v2-school.sp-public .sp-top .sp-news-card:first-child {
  grid-column:auto!important;grid-row:auto!important;min-width:0;width:100%;display:flex;flex-direction:column;align-self:stretch;
}
.v2-school.sp-public .sp-news-card>img {width:100%;height:150px!important;object-fit:cover;flex:0 0 150px}
.v2-school.sp-public .sp-news-card>span {display:flex;flex-direction:column;flex:1;gap:5px;min-width:0;padding:14px}
.v2-school.sp-public .sp-news-card h3 {font-size:17px;line-height:1.35;margin:2px 0;font-weight:600;overflow-wrap:anywhere}
.v2-school.sp-public .sp-news-card p {font-size:13px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.v2-school.sp-public .sp-news-card b {margin-top:auto;padding-top:8px;font-size:11px}
.v2-school.sp-public .sp-home-news>header {position:static;padding:0 0 14px!important}
.v2-school.sp-public .sp-home-news>header h2 {font-size:26px;line-height:1.2}
.v2-school.sp-public .sp-content {width:100%;margin:0;padding:24px 12px 36px}
.v2-school.sp-public .v2-friends {border:1px solid color-mix(in srgb,var(--school-accent) 35%,#dce8e2);border-left:5px solid var(--school-accent);border-radius:20px;padding:20px}
.v2-school.sp-public .v2-friends h2 {margin:0 0 14px;font-size:24px}
.v2-school.sp-public .v2-friend {gap:6px;border-radius:14px;transition:transform .18s ease}
.v2-school.sp-public .v2-friend:hover {transform:translateY(-3px)}
.v2-school.sp-public .v2-friends-empty {margin:0;font-size:14px;line-height:1.5}

@media(max-width:1100px) {
  .v2-platform .v2-platform-lead {grid-template-columns:minmax(0,1.7fr) minmax(320px,1fr)!important}
  .v2-school.sp-public .sp-news-grid,.v2-school.sp-public.school-layout-editorial .sp-news-grid,.v2-school.sp-public.school-layout-compact .sp-news-grid {grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:980px) {
  .v2-platform .v2-platform-lead {grid-template-columns:1fr!important}
  .v2-platform .v2-platform-carousel,.v2-platform .v2-platform-carousel.v2-live-carousel {height:410px!important;min-height:410px!important;max-height:410px!important}
  .v2-platform .v2-platform-lead>aside.v2-national-ranks {height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
  .v2-platform .v2-rank-list {grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:minmax(60px,auto)}
  .v2-platform .v2-search nav {justify-content:flex-start}
}
@media(max-width:900px) {
  .v2-school.sp-public .v2-school-lead,.v2-school.sp-public.school-layout-default .v2-school-lead,.v2-school.sp-public.school-layout-editorial .v2-school-lead,.v2-school.sp-public.school-layout-compact .v2-school-lead {grid-template-columns:1fr!important}
  .v2-school.sp-public .v2-school-carousel,.v2-school.sp-public .v2-school-hero-media,.v2-school.sp-public.school-layout-compact .v2-school-carousel,.v2-school.sp-public.school-layout-compact .v2-school-hero-media {height:390px!important;min-height:390px!important;max-height:390px!important}
  .v2-school.sp-public .school-landing-sidebar,.v2-school.sp-public.school-layout-compact .school-landing-sidebar {height:auto!important;min-height:0!important;max-height:none!important;grid-template-rows:none!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .v2-school.sp-public .school-side-card {min-height:140px}
  .v2-school.sp-public .school-side-card>div {overflow:visible}
}
@media(max-width:650px) {
  body:has(.v2-platform)>main#main-content,body:has(.v2-school.sp-public)>main#main-content {width:calc(100% - 20px);margin:10px auto 24px}
  .v2-platform .v2-canvas,.v2-school.sp-public .v2-school-canvas {padding:6px!important}
  .v2-platform .v2-platform-head {grid-template-columns:1fr;padding:16px;gap:14px}
  .v2-platform .v2-platform-head .v2-day {max-width:none;width:100%}
  .v2-platform .v2-search {align-items:stretch;flex-direction:column}
  .v2-platform .v2-search form {width:100%}
  .v2-platform .v2-search nav {gap:7px!important}
  .v2-platform .v2-search nav .v2-platform-action {font-size:11px!important;padding:9px 12px!important}
  .v2-platform .v2-platform-carousel,.v2-platform .v2-platform-carousel.v2-live-carousel {height:340px!important;min-height:340px!important;max-height:340px!important}
  .v2-platform .v2-rank-list {grid-template-columns:1fr!important}
  .v2-platform .v2-link-grid {grid-template-columns:1fr}
  .v2-platform .v2-link h2 {font-size:20px!important}
  .v2-school.sp-public .school-landing-sidebar,.v2-school.sp-public.school-layout-compact .school-landing-sidebar {grid-template-columns:1fr!important}
  .v2-school.sp-public .school-side-card {min-height:0;padding:16px!important}
  .v2-school.sp-public .v2-school-carousel,.v2-school.sp-public .v2-school-hero-media,.v2-school.sp-public.school-layout-compact .v2-school-carousel,.v2-school.sp-public.school-layout-compact .v2-school-hero-media {height:330px!important;min-height:330px!important;max-height:330px!important}
  .v2-school.sp-public .v2-carousel-school {inset:16px auto auto 16px!important;max-width:calc(100% - 32px)}
  .v2-school.sp-public .sp-news-grid,.v2-school.sp-public.school-layout-editorial .sp-news-grid,.v2-school.sp-public.school-layout-compact .sp-news-grid {grid-template-columns:1fr!important}
  .v2-school.sp-public .sp-home-news {padding:16px}
  .v2-school.sp-public .sp-home-news>header {gap:10px;align-items:center}
  .v2-school.sp-public .sp-home-news>header h2 {font-size:21px}
  .v2-school.sp-public .sp-home-news>header .button {padding:9px 12px;font-size:12px}
}
