/* A consistent finish within the established Inter / soft-blue design. */
.site-page { --site-finish-gap:clamp(64px,7vw,108px); }
.site-page .site-logo .site-brand-words {
  display:flex; align-items:baseline; justify-content:center;
  font-size:20px; font-weight:700; line-height:1; gap:.25em;
  letter-spacing:-.045em; font-kerning:normal;
}
.site-page .site-brand-words b { font-size:inherit; line-height:inherit; }
.site-page .site-footer .site-brand-words { font-size:30px; }
.site-page .site-header { width:calc(100% - 8vw); max-width:1280px; height:76px; padding:14px 26px; border-radius:30px; }
.site-page:has(.site-hero) .site-header,.site-page:has(.site-region-hero) .site-header { margin-bottom:-88px; }
.site-page .site-hero,.site-page .site-region-hero { padding-top:92px; }

/* Shared gutters and measured gaps align introductions, cards and the footer. */
.site-page .site-section { padding-block:var(--site-finish-gap); }
.site-page .site-page-intro { padding-bottom:44px; }
.site-page .site-page-intro+.site-section { padding-top:32px; }
.site-page .site-page-intro>div { align-items:center; }
.site-page .site-page-intro p { line-height:1.8; max-width:450px; }
.site-page .site-section-heading { margin-bottom:44px; }
.site-page .site-route-grid { column-gap:40px; row-gap:80px; }
.site-page .site-route-title { align-items:baseline; }
.site-page .site-route-card>p { line-height:1.85; }
.site-page .site-route-card>.site-credit { margin-top:16px; }
.site-page .site-text-link { text-underline-offset:5px; }

/* The lighter header stays readable; unsupported browsers keep the opaque fallback. */
@supports ((backdrop-filter:blur(20px)) or (-webkit-backdrop-filter:blur(20px))) {
  .site-page .site-header {
    background:linear-gradient(135deg,rgba(255,255,255,.78),rgba(245,250,253,.57));
    -webkit-backdrop-filter:blur(20px) saturate(1.2);
    backdrop-filter:blur(20px) saturate(1.2);
    box-shadow:0 12px 36px #173a4e12,inset 0 1px 0 #ffffffed;
  }
}

/* Quiet coastline: one shared closing invitation, followed by useful links. */
.site-page .site-footer-finished {
  position:relative; isolation:isolate; overflow:hidden;
  padding:0 max(5vw,calc((100vw - 1320px)/2)) 28px;
  background:#fff; border-top:1px solid #e3ebef;
}
.site-footer-invitation {
  position:relative; display:grid; grid-template-columns:1.15fr 1fr;
  gap:60px; align-items:center; padding:64px 0;
  border-bottom:1px solid #dfe7ec;
}
.site-footer-invitation .site-kicker { font-size:9px; margin-bottom:22px; }
.site-footer-invitation h2 { font-size:clamp(36px,4.5vw,62px); margin:0; }
.site-footer-contact { justify-self:end; }
.site-footer-contact p { font-size:14px; line-height:1.85; margin-bottom:24px; }
.site-footer-contact .site-button { background:#e7f1f7; border:1px solid #cfdee8; }
.site-footer-contact .site-button:hover { background:#d8eaf4; }
.site-page[data-chart] .site-footer-finished::before {
  content:''; position:absolute; width:350px; height:220px; right:-115px; top:24px;
  background:var(--site-chart) right bottom / 1080px auto no-repeat;
  pointer-events:none; z-index:-1;
  -webkit-mask-image:radial-gradient(ellipse at 100% 30%,#000 30%,transparent 78%);
  mask-image:radial-gradient(ellipse at 100% 30%,#000 30%,transparent 78%);
}
.site-footer-grid { display:grid; grid-template-columns:1.45fr 1fr 1fr 1fr; gap:44px; padding:52px 0 40px; }
.site-footer-brand p { font-size:12px; line-height:1.85; margin:24px 0 0; }
.site-footer-grid nav { display:flex; flex-direction:column; align-items:flex-start; gap:12px; font-size:12px; }
.site-footer-grid nav>span { font-size:9px; font-weight:600; letter-spacing:.12em; margin-bottom:9px; }
.site-footer-grid nav a { text-decoration-thickness:1px; text-underline-offset:5px; }
.site-footer-grid nav a:hover { text-decoration:underline; }
.site-footer-finished .site-footer-note { max-width:650px; font-size:10px; line-height:1.8; margin:0 0 28px; }
.site-footer-finished .site-bottom { padding-top:24px; border-top:1px solid #dfe7ec; align-items:baseline; font-size:10px; }
.site-footer-finished .site-bottom details { max-width:470px; }
.site-footer-finished .site-bottom summary { cursor:pointer; }
.site-footer-finished .site-bottom details p { margin-top:16px; font-size:11px; line-height:1.8; }

@media(min-width:1101px) {
  .site-page .site-route-card>p { min-height:52px; }
}
@media(max-width:820px) {
  .site-page { --site-finish-gap:64px; }
  .site-page .site-header { height:70px; }
  .site-page:has(.site-hero) .site-header,.site-page:has(.site-region-hero) .site-header { margin-bottom:-82px; }
  .site-footer-invitation { grid-template-columns:1fr 1fr; gap:30px; padding:48px 0; }
  .site-footer-contact .site-button { font-size:10px; gap:18px; padding:16px 20px; }
  .site-footer-grid { grid-template-columns:1fr 1fr 1fr; gap:32px 24px; }
  .site-footer-brand { grid-column:1/-1; display:flex; align-items:center; gap:42px; }
  .site-footer-brand p { margin:0; }
}
@media(max-width:560px) {
  .site-page { --site-finish-gap:52px; }
  .site-page .site-header { width:calc(100% - 24px); height:68px; padding:12px 18px; border-radius:26px; }
  .site-page:has(.site-hero) .site-header,.site-page:has(.site-region-hero) .site-header { margin-bottom:-80px; }
  .site-page .site-hero,.site-page .site-region-hero { padding-top:82px; }
  .site-page .site-logo .site-brand-words { font-size:17px; }
  .site-page .site-footer .site-brand-words { font-size:25px; }
  .site-page .site-page-intro { padding-bottom:28px; }
  .site-page .site-page-intro+.site-section { padding-top:24px; }
  .site-page .site-route-grid { row-gap:52px; }
  .site-page .site-section-heading { margin-bottom:30px; }
  .site-page .site-footer-finished { padding:0 6vw 24px; }
  .site-footer-invitation { display:block; padding:42px 0; }
  .site-footer-invitation h2 { font-size:42px; }
  .site-footer-contact { margin-top:28px; }
  .site-footer-contact p { font-size:13px; margin-bottom:20px; }
  .site-page[data-chart] .site-footer-finished::before { display:none; }
  .site-footer-grid { grid-template-columns:1fr 1fr; padding:36px 0; gap:30px 22px; }
  .site-footer-brand { flex-direction:column; gap:22px; align-items:flex-start; }
  .site-footer-brand p { font-size:11px; }
  .site-footer-grid nav { font-size:11px; gap:11px; }
  .site-footer-grid nav a { padding-block:3px; }
  .site-footer-finished .site-bottom { font-size:9px; gap:20px; }
  .site-footer-finished .site-bottom details { flex-basis:100%; }
}
@media(prefers-reduced-transparency:reduce), (prefers-contrast:more) {
  .site-page .site-header { background:#f5f9fc; -webkit-backdrop-filter:none; backdrop-filter:none; }
  .site-page[data-chart] .site-footer-finished::before { display:none; }
}
@media print { .site-page .site-footer-finished::before { display:none; } }
