/* Deployment fixes: nav, mobile, research imagery, form status. */
.nav-container { gap: 1.5rem; }
.site-title { flex: 0 0 auto; }
.main-nav { gap: clamp(.55rem, 1.2vw, 1.3rem); }
.main-nav .nav-link { white-space: nowrap; }
.nav-news-group { position: relative; display: flex; align-items: center; }
.nav-submenu { display: none; position: absolute; top: 100%; left: -1rem; z-index: 1003;
    min-width: 185px; padding: .75rem; background: white; border: 1px solid var(--color-border);
    border-radius: .5rem; box-shadow: var(--shadow-md); }
.nav-news-trigger { border: 0; padding: 0; background: transparent; font: inherit; cursor: pointer; display: inline-flex; align-items: center; gap: .3rem; }
.nav-dropdown-arrow { font-size: .8em; line-height: 1; }
.nav-news-group.is-open .nav-submenu { display: block; }
.nav-news-trigger:focus-visible, .nav-sublink:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 4px; }
@media (hover: hover) and (min-width: 1101px) {
  .nav-news-group:hover .nav-submenu, .nav-news-group:focus-within .nav-submenu { display: block; }
}
.nav-sublink { display: block; padding: .45rem .65rem; white-space: nowrap; color: var(--color-text-main); text-decoration: none; }
.nav-sublink:hover, .nav-sublink.active { color: var(--color-primary); background: var(--color-bg-alt); }
.nav-languages { display: inline-flex; align-items: center; flex: 0 0 auto; gap: .55rem; white-space: nowrap; }
.nav-languages .lang-toggle { padding: .25rem; text-decoration: none; }
.nav-languages .lang-separator { color: var(--color-text-muted); }
.form-status { margin-top: .75rem; font-size: .93rem; min-height: 1.5rem; }
.form-status[data-state="success"] { color: #227344; }
.form-status[data-state="error"] { color: #a82424; }
a[aria-disabled="true"] { opacity: .6; pointer-events: none; cursor: not-allowed; }
.press-news-link { display: flex; justify-content: center; margin-top: -1.8rem; margin-bottom: 2.5rem; }
/* Prevent image layout from creating a tall, empty column next to research text. */
.research-detail-grid { align-items: start; gap: clamp(1.5rem, 3vw, 3rem); }
.research-detail-grid > * { min-width: 0; }
.research-detail-grid .research-visual { align-self: start; }
.research-detail-grid .research-visual .about-image { display: block; width: 100%; height: auto; max-height: 560px;
    object-fit: contain; object-position: center top; margin: 0 auto; }
.research-detail-grid .research-text { overflow-wrap: anywhere; }
@media (max-width: 1170px) and (min-width: 1025px) {
    .site-title { font-size: 1.07rem; }
    .main-nav { gap: .52rem; }
    .main-nav .nav-link { font-size: .88rem; }
}
@media (max-width: 1100px) {
    .mobile-nav-toggle { display: flex; }
    .main-nav { position: fixed; top: 0; right: -100%; width: min(380px, 88vw); height: 100vh; height: 100dvh;
      z-index: 1002; padding: 5.25rem 1.5rem 2rem; overflow-y: auto; overscroll-behavior: contain;
      background: var(--color-white); box-shadow: var(--shadow-lg); display: flex; flex-direction: column;
      gap: .55rem; align-items: stretch; transition: right var(--transition-normal); }
    .main-nav.nav-open { right: 0; }
    .nav-close-btn { display: flex; position: absolute; top: 1.25rem; right: 1.25rem; width: 44px; height: 44px;
      align-items: center; justify-content: center; border: none; background: transparent; font-size: 1.8rem; cursor: pointer; }
    .main-nav .nav-link { font-size: 1.13rem; display: block; width: 100%; padding: .65rem .2rem; }
    .nav-news-group { display: block; width: 100%; }
    .nav-submenu { display: none; position: static; min-width: 0; padding: 0 0 .2rem .9rem; box-shadow: none; border: none; }
    .nav-news-trigger { font-size: 1.13rem; width: 100%; padding: .65rem .2rem; justify-content: flex-start; }
    .nav-sublink { font-size: .96rem; padding: .4rem .2rem; }
    .nav-languages { margin-top: .5rem; padding: .7rem 0; width: max-content; display: inline-flex;
      flex-direction: row; gap: 1.2rem; align-items: center; }
    .nav-languages .lang-toggle { display: inline-block; width: auto; padding: .35rem; min-height: auto; font-size: 1rem; }
    .nav-languages .lang-separator { display: inline-block; }
    .research-detail-grid { grid-template-columns: 1fr; }
    .research-detail-grid .research-visual .about-image { max-height: 500px; }
}
@media (max-width: 540px) {
    .site-title { font-size: clamp(.9rem, 4vw, 1.15rem); }
    .container { padding-left: 1rem; padding-right: 1rem; }
    .page-title { font-size: clamp(1.9rem, 8vw, 2.8rem); overflow-wrap: anywhere; }
    .page-subtitle { font-size: 1rem; }
    .section { padding-top: 2rem; padding-bottom: 2rem; }
    .research-detail-grid .research-visual .about-image { max-height: 360px; }
    .about-cv-card { padding: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
    .main-nav, .reveal { transition: none !important; animation: none !important; }
}

/* Form challenge is inline and never requires a separate app. */
.turnstile-container { min-height: 74px; margin-top: 1rem; max-width: 100%; }
.turnstile-container > div { max-width: 100%; }
@media (max-width: 400px) { .turnstile-container { transform-origin: left top; } }

.newsletter-consent { display:flex; align-items:flex-start; width:100%; max-width:650px; margin: .25rem auto; text-align:left; gap:.6rem; font-size:.83rem; line-height:1.45; color:var(--color-text-muted); }
.newsletter-consent input { flex:0 0 auto; margin-top:.18rem; }
.newsletter-verification { display:flex; justify-content:center; width:100%; }
.newsletter-verification .cf-turnstile { max-width:100%; }

/* Accessibility: persistent form feedback on both desktop and mobile. */
.newsletter-status { width: 100%; text-align: center; font-weight: 500; min-height: 1.6rem; margin-top: .5rem; }
.form-status:empty { min-height: 0; margin: 0; }
.form-status:not(:empty) { padding: .4rem 0; }
@media (max-width: 480px) {
  #contact-form .form-row, #newsletter-form { max-width: 100%; }
  #contact-form input, #contact-form textarea, #newsletter-form input { min-width: 0; max-width: 100%; }
  .turnstile-container, .newsletter-verification { max-width: 100%; overflow: hidden; }
  .research-detail-grid { min-width: 0; }
  .research-detail-grid img { max-width: 100%; height: auto; }
}

/* News -> Blog / Press hierarchy in footer, consistent across both locales. */
.footer-links .footer-news-group { margin-bottom: var(--space-2); }
.footer-news-label { color: var(--color-text-muted); font-weight: 600; display: block; margin-bottom: .35rem; }
.footer-news-links { margin: 0; padding: 0 0 0 .75rem; list-style: none; }
.footer-news-links li { margin-bottom: .35rem; }
