/* Responsive refinements, loaded after the existing page styles. */
.mobile-register{display:none}
main, .wrap, .form, .register-copy, .footer-top > *, .session > *{min-width:0}
.footer-links a{overflow-wrap:anywhere}
.btn{white-space:normal;text-align:center}
:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}
.partners-protocol .logo-item img{max-width:100%}
@media(max-width:1100px) and (min-width:901px){
 .navbar{grid-template-columns:170px 1fr auto;gap:12px}
 .brand img.header-logo{width:165px}
 .navlinks{gap:12px}
 .nav-cta{padding-inline:12px}
}
@media(max-width:900px){
 .navbar{grid-template-columns:1fr auto;gap:16px}
 .menu-btn{min-width:48px;min-height:48px}
 .navlinks{max-height:calc(100dvh - 90px);overflow-y:auto;padding:16px;gap:0}
 .navlinks a,.navlinks .dropbtn{display:flex;align-items:center;min-height:44px;font-size:14px;width:100%}
 .navlinks .mobile-register{display:flex;color:var(--yellow)}
 .navlinks .dropdown{width:100%}
 .protocol-partners-v22 .logo-item{width:100%;max-width:none;transform:none;flex-basis:auto}
 .protocol-partners-v22 .logo-fideuram{grid-column:1 / -1;justify-self:center;width:min(260px,100%)}
 .protocol-partners-v22 .logo-item img{max-width:100%}
}
@media(max-width:600px){
 .wrap{width:calc(100% - 32px)}
 section[id],footer[id]{scroll-margin-top:88px}
 .hero{padding-top:100px;padding-bottom:52px}
 .hero-title{font-size:clamp(36px,10.8vw,60px);margin-top:20px;line-height:1.04;letter-spacing:-.05em}
 .hero-theme{font-size:clamp(23px,6.3vw,32px);line-height:1.25}
 .hero-date{font-size:clamp(26px,7.2vw,38px);line-height:1.2}
 .hero-copy{font-size:15px;line-height:1.7}
 .section-head h2,.headline h2,.hackathon-copy .display,.page-hero .display{font-size:clamp(32px,9vw,44px);line-height:1.08}
 .headline h3{font-size:clamp(28px,8vw,38px);line-height:1.15}
 .session h3{font-size:clamp(18px,5.2vw,23px);line-height:1.4}
 .day-tabs{flex-wrap:wrap}
 .day-tabs button{min-height:44px}
 .agenda{padding-inline:16px}
 .protocol-partners-v22 .logo-grid{gap:20px 16px}
 .protocol-partners-v22 .logo-item{padding:4px;min-height:82px}
 .protocol-partners-v22 .logo-fideuram{width:min(220px,100%)}
 .protocol-partners-v22 .logo-item img{max-width:100%}
 .protocol-sponsor-v13 .logo-grid{column-gap:16px}
 .protocol-sponsor-v13 .logo-item{flex-basis:calc(50% - 8px)}
 .form,.register-copy{padding:28px 20px}
 .form input,.form select,.form textarea{font-size:16px;max-width:100%}
 .form .btn{width:100%;padding-block:12px}
 .footer-top{gap:32px}
 .footer-links a{line-height:1.6}
}
@media(max-width:360px){
 .brand img.header-logo{width:145px}
 .protocol-main .logo-grid,.protocol-institutional .logo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-height:500px) and (max-width:900px){
 .navbar{height:64px}
 .navlinks{top:64px;max-height:calc(100dvh - 72px)}
}

/* Keep the event affiliation centered beneath the heading on mobile/tablet. */
@media(max-width:900px){
 .partners-head .event-affiliation{justify-self:center;width:100%;max-width:340px;margin-inline:auto}
 .partners-head .event-affiliation .protocol-label{width:100%;text-align:center;line-height:1.5}
 .partners-head .event-affiliation img{margin-inline:auto}
}

.footer-contacts{gap:20px}
.footer-contact{display:grid;gap:5px;min-width:0}
.footer-contact strong{color:#fff;font-size:13px;line-height:1.5}
.footer-contact a{display:block;overflow-wrap:anywhere;line-height:1.6}
