/* Shared public page frame. Loaded last by player.php, including after soft navigation.
   Keep the homepage, Mein CityRadio and maintenance views independent.
   !important only replaces the legacy important hero and frame declarations. */
body:is(.internal-page,.legal-page):not([data-experience-page="dashboard"]){
  --public-top:40px;
  --public-gap:28px;
  --public-bottom:116px;
  --public-title:clamp(32px,4.4vw,58px);
  --public-gutter:var(--page-gutter,28px);
  --public-line:rgba(255,255,255,.1);
  background:radial-gradient(ellipse 780px 420px at 85% 0,rgba(213,16,24,.07),transparent 70%),var(--bg,#09090b);
}
body:is(.internal-page,.legal-page):not([data-experience-page="dashboard"])>.ambient{display:none}

/* The topbar is in normal flow: this is the only space below it. */
body:is(.internal-page,.legal-page):not([data-experience-page="dashboard"])>main:not(.mycity-hub){
  width:100%;
  max-width:var(--page-max,1400px)!important;
  min-width:0;
  margin:0 auto;
  padding:var(--public-top) var(--public-gutter) var(--public-bottom);
  gap:var(--public-gap);
}
body:is(.internal-page,.legal-page)>main:not(.mycity-hub)>*{min-width:0}

/* Headings share an axis and rhythm; each page keeps its useful controls. */
body:is(.internal-page,.legal-page)>main:not(.mycity-hub)>:is(.internal-hero,.social-clean-hero,.legal-hero,.news-magazine-header,.rx-hero){
  width:100%;
  max-width:none!important;
  margin:0!important;
  padding:0 0 24px!important;
  border-bottom:1px solid var(--public-line);
  align-items:flex-start!important;
  text-align:left!important;
}
body:is(.internal-page,.legal-page)>main:not(.mycity-hub) :is(.internal-hero,.social-clean-hero,.legal-hero,.news-magazine-header,.rx-hero,.event-detail-header,.article-card) .kicker{
  display:block;
  margin:0;
  color:#ff727c;
  font-size:11px;
  font-weight:850;
  line-height:1.5;
  letter-spacing:.14em;
}
body:is(.internal-page,.legal-page)>main:not(.mycity-hub) h1{
  width:100%;
  max-width:1100px!important;
  margin:12px 0 16px!important;
  font-size:var(--public-title)!important;
  font-weight:900;
  line-height:1.08!important;
  letter-spacing:-.045em!important;
  overflow-wrap:break-word;
  text-align:left!important;
}
body:is(.internal-page,.legal-page)>main:not(.mycity-hub) :is(.internal-hero,.social-clean-hero,.legal-hero,.rx-hero)>p,
body:is(.internal-page,.legal-page)>main:not(.mycity-hub) :is(.internal-hero,.rx-hero)>div:first-child>p{
  max-width:70ch!important;
  margin:0!important;
  font-size:16px;
  line-height:1.65;
  color:#b6b6c0;
}
body.internal-page>main:not(.mycity-hub) :is(.traffic-page-hero,.weather-center-hero,.program-guide-hero,.calendar-hero)>div:first-child{
  flex:1 1 auto;
  min-width:0;
}

/* Block-based archives and legal layouts need the same inter-section space. */
body.internal-page>main.news-magazine>.news-magazine-header,
body.legal-page>main.legal-main>.legal-hero{margin-bottom:var(--public-gap)!important}
body.internal-page>main.news-magazine>.news-magazine-header h1{margin-bottom:0!important}

/* Detail pages use the common outer frame and keep a comfortable reading width. */
body.internal-page>main.news-article-main>.news-article{max-width:none;margin:0}
body.internal-page>main.event-detail-main>.event-detail-header{
  max-width:1100px;
  margin:24px 0 var(--public-gap);
  padding-bottom:24px;
  border-bottom:1px solid var(--public-line);
}
body.internal-page>main.event-detail-main .event-detail-lead{font-size:17px;line-height:1.65}
body.internal-page>main.news-article-main .news-article-header{
  max-width:1100px;
  margin:0 0 var(--public-gap);
  padding-bottom:24px;
  border-bottom:1px solid var(--public-line);
}
body.internal-page>main.news-article-main .news-article-back{margin-bottom:24px}
body.internal-page>main.article-main>.article-card{
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}
body.internal-page>main.article-main .article-content{max-width:78ch}

/* Structural grids have no second page gutter; card interiors keep theirs. */
body.internal-page>main:not(.mycity-hub)>:is(.program-onair,.program-schedule,.contact-direct-layout,.contact-secondary,.reporter-layout,.studio-request-layout){padding-inline:0}

/* City photography remains a content feature within the same page frame. */
body.internal-page>main.city-main>.city-hero{border-radius:24px}
body.internal-page>main:not(.mycity-hub):is(.weather-overview-main,.program-guide,.calendar-main) section,
body.internal-page>main:not(.mycity-hub) .rx-section{scroll-margin-top:24px}

@media(max-width:900px){
  body:is(.internal-page,.legal-page):not([data-experience-page="dashboard"]){--public-top:28px;--public-gap:24px}
}
@media(max-width:720px){
  body:is(.internal-page,.legal-page):not([data-experience-page="dashboard"]){--public-top:24px;--public-gap:22px;--public-bottom:96px;--public-gutter:16px;--public-title:clamp(32px,7.2vw,42px)}
  body:is(.internal-page,.legal-page)>main:not(.mycity-hub)>:is(.internal-hero,.social-clean-hero,.legal-hero,.news-magazine-header,.rx-hero){padding-bottom:20px!important}
  body.internal-page>main.news-magazine>.news-magazine-header{flex-wrap:wrap;gap:18px}
  body.internal-page>main.news-magazine>.news-magazine-header>div{flex:1 1 240px}
}
@media(max-width:380px){
  body:is(.internal-page,.legal-page):not([data-experience-page="dashboard"]){--public-gutter:10px}
}
@media(max-width:620px){
  body.internal-page>main.news-article-main .news-article-figure{
    margin-left:calc(var(--public-gutter) * -1);
    width:calc(100% + var(--public-gutter) * 2);
  }
}
