/* ==========================================================================
   Redesign additions: positioning hero, pillars, impact, featured research,
   selected experience, accessibility. Loaded after layout-fixes.css.
   ========================================================================== */

/* ---- Accessibility ---- */
.skip-link { position: absolute; left: -9999px; top: 8px; z-index: 10000; background: #141c48; color: #fff; padding: 10px 16px; font: 14px 'Montserrat', sans-serif; }
.skip-link:focus { left: 8px; color: #fff; outline: 3px solid #f4bf00; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid #417db9; outline-offset: 2px;
}
/* muted text that was too light to read comfortably */
.booking-tz, .booking-secure, .slots-legend, .cal-dow { color: #595959; }
.cal-day:disabled, .slot:disabled { color: #767676; }

/* ---- Hero: positioning ---- */
.banner-info h3.banner-headline {
  font-size: 17px; letter-spacing: 4px; line-height: 1.7; max-width: 560px; margin: 22px 0 0;
}
.banner-info .banner-tagline {
  font: 15px/1.6 'Montserrat', sans-serif; color: #2d3038; max-width: 520px; margin: 14px 0 22px;
}
.banner-info .banner-cta a { margin: 0 10px 10px 0; }
.btn.btn-hero-outline {
  background: transparent; color: #2d3038; border: 1px solid #2d3038; padding: 10px 22px; font-size: 15px; position: relative; z-index: 1;
}
.btn.btn-hero-outline:hover { background: #2d3038; color: #fff; }
/* Desktop hero: lay the text out in normal flow and centre it vertically, so it can never be pushed off the top
   of the page whatever the zoom level or screen size (the old theme positioned it absolutely with a fixed offset). */
@media (min-width: 992px) {
  #home-banner { height: auto; min-height: 700px; display: flex; align-items: center; }
  #home-banner > .container { width: 100%; }
  #home-banner .banner-content { height: auto; background: transparent; }
  #home-banner .banner-content .banner-info { position: static; width: auto; height: auto; margin-top: 0; padding: 40px 0; }
}

/* ---- Section helpers ---- */
.section-intro { font-size: 16px; line-height: 1.6; color: #444; margin: 0 0 24px; }
.section-more { margin-top: 28px; }

/* ---- About ---- */
.lead-statement { font-size: 19px; line-height: 1.6; color: #2d3038; font-weight: 600; margin-bottom: 16px; }
.pillars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 28px 0; }
.pillar { background: #f3f4f8; border-top: 3px solid #141c48; padding: 18px 18px 14px; }
.pillar i { font-size: 24px; color: #417db9; margin-bottom: 8px; display: block; }
.pillar h4 { font: 700 16px/1.3 'Montserrat', sans-serif; margin: 0 0 6px; color: #2d3038; }
.pillar p { font-size: 14px; line-height: 1.5; margin: 0; color: #444; }

/* ---- Impact ---- */
.impact-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.impact-card { background: #fff; border: 1px solid #e5e5e5; border-top: 3px solid #141c48; padding: 22px; }
.impact-figure { font: 400 40px/1 'Orbitron', sans-serif; color: #141c48; margin-bottom: 10px; }
.impact-card h4 { font: 700 16px/1.3 'Montserrat', sans-serif; margin: 0 0 8px; color: #2d3038; }
.impact-card p { font-size: 14px; line-height: 1.6; margin: 0; color: #444; }

/* ---- Featured research ---- */
.research-card { display: block; background: #fff; border: 1px solid #e5e5e5; margin-bottom: 28px; }
.research-visual { background: #f3f4f8; }
.research-visual { background: #050d1f; }
.research-visual img { display: block; width: 100%; height: auto; }
.research-body { padding: 24px; }
.research-kicker { font: 700 12px/1 'Montserrat', sans-serif; letter-spacing: 2px; text-transform: uppercase; color: #595959; margin-bottom: 10px; }
.research-body h3 { font-size: 21px; line-height: 1.3; margin: 0 0 14px; }
.research-facts { margin: 0; }
.research-facts dt { font: 700 12px/1.4 'Montserrat', sans-serif; letter-spacing: 1.5px; text-transform: uppercase; color: #141c48; margin-top: 12px; }
.research-facts dd { margin: 2px 0 0; font-size: 14px; line-height: 1.6; color: #333; overflow-wrap: anywhere; }
.research-links { list-style: none; margin: 0; padding: 0; }
.research-links li { margin: 2px 0; }
.research-links a, .profile-links a { color: #1f5fa8; text-decoration: underline; text-underline-offset: 2px; }
.research-links a:hover, .profile-links a:hover { color: #141c48; }
.profile-section a, .research-card a { overflow-wrap: anywhere; }

/* ---- Skills ---- */
.skill-note { font-size: 14px; line-height: 1.5; color: #555; margin: -2px 0 12px; }

/* ---- Publications & profiles ---- */
.profile-links { margin-top: 34px; padding-top: 10px; border-top: 1px solid #eee; }

/* ---- Small screens ---- */
@media (max-width: 767px) {
  .pillars, .impact-grid { grid-template-columns: 1fr; }
  .research-body { padding: 18px; }
  .banner-info h3.banner-headline { letter-spacing: 2px; font-size: 14px; }
}

/* ---- Nav fits on one row on every page (ten pages share this stylesheet) ---- */
@media (min-width: 1200px) {
  #navigation.menu-two .navbar-nav > li > a { padding-left: 12px; padding-right: 12px; font-size: 13px; }
}
@media (min-width: 992px) and (max-width: 1199px) {
  #navigation.menu-two .navbar-nav > li > a { padding-left: 6px; padding-right: 6px; }
}

/* CONTACT menu tile colour */
#navigation.menu-two .navbar-nav > li:last-child { background-color: #345176; }

.pub-group { margin: 34px 0 8px; font-size: 14px; letter-spacing: .12em; text-transform: uppercase; color: #345176; font-weight: 700; }
.pub-group:first-of-type { margin-top: 8px; }

/* No-show policy and challenge call to action */
.booking-policy { background: #fff8e1; border-left: 4px solid #f0a500; padding: 12px 16px; margin: 0 0 16px; color: #3d3d3d; }
.booking-cta { margin: 0 0 20px; }
.btn.btn-cta-challenge { white-space: normal; text-align: center; line-height: 1.35; padding: 14px 26px; }
.banner-info .banner-cta .btn-cta-challenge { display: block; max-width: 460px; margin: 0 0 14px; }
.no-show-label { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.5; font-weight: 400; cursor: pointer; margin: 6px 0 14px; }
.no-show-label input { margin-top: 4px; flex: 0 0 auto; }

.banner-info .banner-cta .hero-brief-link { display: block; margin: 0 0 18px; font-size: 15px; color: #2d3038; text-decoration: underline; text-underline-offset: 3px; }
.banner-info .banner-cta .hero-brief-link:hover { color: #345176; }

/* ---- Menu: never wraps. Laid out with flexbox and sized fluidly so a longer label, a wider font or browser zoom can't push an item onto a second row. ---- */
@media (min-width: 992px) {
  #navigation.menu-two .navbar { display: flex; flex-wrap: nowrap; align-items: flex-start; }
  #navigation.menu-two .navbar-header { flex: 0 0 auto; float: none; }
  #navigation.menu-two .navbar-collapse { flex: 1 1 auto; min-width: 0; }
  #navigation.menu-two .navbar-nav { display: flex; flex-wrap: nowrap; }
  #navigation.menu-two .navbar-nav > li { float: none; flex: 0 1 auto; }
  #navigation.menu-two .navbar-nav > li > a {
    white-space: nowrap;
    padding-left: clamp(5px, 0.7vw, 12px); padding-right: clamp(5px, 0.7vw, 12px);
    font-size: clamp(10px, 0.85vw, 13px);
  }
  .menu-two .fixed-top { max-width: min(1320px, 94vw); }
}
