/* One responsive frame for the logo, navigation and public page contents. */
:root {
 --ugpls-frame-max:1640px;
 --ugpls-frame-gutter:21px;
 --ugpls-frame-width:min(var(--ugpls-frame-max),calc(100% - 2 * var(--ugpls-frame-gutter)));
 --ugpls-home-space:clamp(36px,3.6vw,56px);
}
.site-header .nav-wrap,
.hero-inner,
.facts,
.section,
.editions-hero-inner,
.edition-detail-hero-inner,
.edition-detail-content.has-edition-scientific-aside,
.ugsci-page,
.press-conference-hero-inner,
.ug-news-container {
 width:var(--ugpls-frame-width);
 max-width:var(--ugpls-frame-max);
 margin-inline:auto;
}
.hero-bottom,
.site-footer {
 padding-inline:max(var(--ugpls-frame-gutter),calc((100% - var(--ugpls-frame-max)) / 2));
}
.legal-page > article,
.legal-page .page-heading { max-width:none; }
.legal-page h1 { overflow-wrap:anywhere; }
.scientific-profile-page { width:100%; }
.booking-section.section {
 width:var(--ugpls-frame-width);
 max-width:var(--ugpls-frame-max);
 margin-inline:auto;
 padding-inline:clamp(16px,2.4vw,40px);
}
.booking-closed-card { width:100%; max-width:none; }
.booking-closed-card h2,.booking-closed-card>p:not(.section-kicker) { max-width:none; }
.hero-copy h1,
.hero-lead,
.about-content,
.editions-hero h1,
.edition-detail-hero h1,
.editions-hero-copy,
.ug-news-hero__intro,
.ug-news-article__header h1,
.ug-news-article__intro { max-width:none; }
.hero-copy { min-width:0; }

/* Keep the scientific blue band full bleed, with its text in the shared frame. */
.ugsci-blue-section {
 position:relative;
 isolation:isolate;
 width:100%;
 margin-left:0;
 padding-inline:0;
 background:none;
}
.ugsci-blue-section::before {
 content:"";
 position:absolute;
 z-index:-1;
 inset-block:0;
 left:calc(50% - 50vw);
 right:calc(50% - 50vw);
 background:linear-gradient(135deg,var(--blue-950),var(--blue-900));
}
.ugsci-blue-inner { width:100%; max-width:none; }

/* Light project sections need dark links; dark hero buttons keep their own colours. */
.project-home .about-content .text-link,
.project-home .project-history .text-link { color:var(--blue-950); font-size:15px; }
.project-home .about-content .text-link:hover,
.project-home .project-history .text-link:hover { color:var(--blue-700); }

.home main > .section,
.home .project-join-inner.section { padding-block:var(--ugpls-home-space); }
.home .ug-news-home { padding-block:var(--ugpls-home-space); }
.project-home .project-purpose-grid { margin-top:26px; }
.project-home .project-purpose-card { padding-top:22px; }
.project-home .project-section-head { gap:40px; margin-bottom:26px; }
.project-home .project-join .project-section-head { margin-bottom:0; }
.project-home .project-join { width:100%; border-top:0; background:#ffece6; }

/* The contribution section is a blue band, including the former outer spacing. */
.project-home .project-impact { position:relative; isolation:isolate; }
.project-home .project-impact::before {
 content:"";
 position:absolute;
 z-index:-1;
 inset-block:0;
 left:calc(50% - 50vw);
 right:calc(50% - 50vw);
 background:var(--blue-950);
 pointer-events:none;
}
.project-home .project-impact .project-impact-card { padding:0; border-radius:0; background:transparent; }

@media(min-width:1181px) {
 body { font-size:clamp(18px,1.06vw,20px); }
 .ug-news-body { font-size:clamp(18px,1.06vw,20px); }
 .project-hero .hero-copy h1 { font-size:clamp(76px,6.2vw,110px); }
 .project-home .about { gap:clamp(56px,5vw,90px); }
 .project-home .about-content { max-width:none; }
 .project-home .project-purpose-card p { max-width:none; }
 .booking-external-card { width:100%; max-width:none; }
 .ugsci-profile h1 { max-width:none; }
}
@media(max-width:980px) {
 :root { --ugpls-frame-gutter:18px; --ugpls-home-space:40px; }
 .project-home .project-section-head { gap:28px; }
}
@media(max-width:640px) {
 :root { --ugpls-frame-gutter:16px; --ugpls-home-space:32px; }
 .project-home .project-section-head { gap:22px; }
 .project-home .project-purpose-grid { margin-top:24px; }
 .project-home .project-join .project-section-head { gap:24px; }
 .booking-closed-card { padding:28px 18px; }
 .booking-closed-card h2 { font-size:clamp(26px,7vw,32px); overflow-wrap:anywhere; }
}
@media(max-width:380px) {
 .project-hero .hero-copy h1 { font-size:clamp(40px,14vw,50px); }
}
