/* Shared layout safeguards: content reflows instead of being clipped. */
img{height:auto}
.footer-brand img{width:220px;max-width:100%;height:auto;object-fit:contain}
.wrap,.header-inner>*{min-width:0}
.intro-grid>*,.heritage-grid>*,.ticket-grid>*,.faq-grid>*,.event-grid>*,.days>*,.footer-main>*,.inclusions>*{min-width:0}
.intro-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.heritage-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.ticket-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.faq-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.5fr)}
.days{grid-template-columns:repeat(3,minmax(0,1fr))}
.inclusions{grid-template-columns:repeat(2,minmax(0,1fr))}
.event-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1.4fr) repeat(2,minmax(0,1fr))}
.footer-main{grid-template-columns:minmax(0,1.1fr) repeat(2,minmax(0,1fr))}
.footer-main a,.legal a,.source-links a,.archive-note,.portrait-credits{overflow-wrap:anywhere}
.text-link{max-width:100%}
.button{max-width:100%}
.button .arrow{flex-shrink:0}
.section-top>*,.gallery-heading>*,.final-grid>*{min-width:0}
.brand{flex-shrink:0}
.header-cta{white-space:nowrap}
.rider-name{overflow-wrap:anywhere}
.palmares-table td{min-width:0}
.error-title{font-size:clamp(42px,8vw,70px);margin:30px 0;overflow-wrap:anywhere}
.lightbox{max-height:calc(100dvh - 24px);overflow:auto}
.lightbox img{max-width:100%;max-height:calc(100dvh - 180px)}
.close-dialog,.menu-toggle{min-height:44px}
/* Keep the rider's helmet visible in the homepage opening image at every width. */
.hero-media--teodor{object-position:52% top}

@media(max-width:1100px){
  .footer-main{gap:30px}
  .final-grid{flex-wrap:wrap;gap:28px}
}
@media(max-width:850px){
  .ticket-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
  .faq-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}
  .inclusions{grid-template-columns:minmax(0,1fr)}
  .days{grid-template-columns:minmax(0,1fr);gap:30px}
  .day{display:grid;grid-template-columns:90px minmax(0,1fr);gap:0 20px}
  .day-date{grid-row:1/5;display:block;margin-bottom:0}
  .day-date b{display:block;font-size:62px}
  .day-date span{display:block;margin-top:8px;font-size:10px}
  .day h3{margin:4px 0 10px}
  .agenda-item{grid-template-columns:75px minmax(0,1fr)}
  .footer-main{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-main>div:first-child{grid-column:1/-1}
  .footer-bottom{flex-wrap:wrap}
  .gallery-heading{flex-wrap:wrap;gap:18px}
}
@media(max-width:650px){
  html{scroll-padding-top:90px;scroll-padding-bottom:90px}
  .wrap{width:auto;margin-left:max(20px,env(safe-area-inset-left));margin-right:max(20px,env(safe-area-inset-right))}
  .intro-grid,.heritage-grid,.ticket-grid,.faq-grid{grid-template-columns:minmax(0,1fr)}
  .event-grid,.inclusions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .site-header{padding-top:env(safe-area-inset-top)}
  .main-nav{top:100%;max-height:calc(100dvh - 155px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain}
  .main-nav a{min-height:44px}
  .intro h2,.heritage-copy h2,.faq-intro h2,.final-cta h2{font-size:clamp(42px,11vw,58px)}
  .legal h1{font-size:clamp(40px,10.5vw,53px);overflow-wrap:anywhere}
  .record-stats{gap:16px;justify-content:space-between}
  .record-stats>div{min-width:0;flex:1}
  .record-stats small{letter-spacing:.08em}
  .archive-tools{flex-direction:column;align-items:stretch;gap:12px}
  .archive-tools label{min-width:0}
  .archive-tools select{width:100%;max-width:100%;min-height:44px;font-size:16px}
  .archive-tools span{max-width:none;text-align:left;font-size:12px}
  .palmares-table tr{grid-template-columns:52px minmax(0,1fr)}
  .archive-link{min-height:44px;display:inline-flex;align-items:center;margin-block:0}
  .source-links a{padding-block:8px}
  .mobile-booking{gap:10px;padding:10px max(16px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
  .mobile-booking>div{min-width:0}
  .mobile-booking strong{font-size:clamp(20px,5.5vw,26px);white-space:nowrap}
  .mobile-booking small{font-size:9px}
  .mobile-booking .button{flex-shrink:0;min-height:44px;gap:10px;padding:10px 12px;white-space:nowrap}
  .site-footer{padding-bottom:calc(104px + env(safe-area-inset-bottom))}
}
@media(max-width:480px){
  .inclusions,.footer-main{grid-template-columns:minmax(0,1fr)}
  .footer-main{gap:30px}
  .day{display:block}
  .day-date{display:flex;align-items:center;gap:16px;margin-bottom:20px}
  .day-date span{margin-top:0}
  .day h3{margin-bottom:18px}
  .agenda-item{grid-template-columns:75px minmax(0,1fr)}
  .hero-side{display:none}
  .booking{padding:26px}
  .booking .button{gap:16px;padding-inline:18px}
  .heritage-photo .date-mark{font-size:clamp(48px,14vw,67px);left:18px;bottom:20px}
  .heritage-photo .date-mark small{font-size:8px;letter-spacing:.08em;max-width:220px;line-height:1.5}
  .image-stamp{font-size:26px;padding:16px 20px;max-width:210px}
}
@media(max-height:500px) and (max-width:850px){
  .mobile-booking{position:static;flex-wrap:wrap}
  .site-footer{padding-bottom:28px}
  .lightbox{padding-top:55px}
  .lightbox img{max-height:calc(100dvh - 145px)}
}
