/* Shared width constraints: wide classifications scroll inside their card. */
main,.portal-page,.bottom-grid>*,.workspace>*,.card,.calendar-panel,.formula-season,.gt-season{min-width:0}
.table-scroll{min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.formula-season-scroll,.gt-season-scroll{min-width:0;overscroll-behavior-x:contain}
.formula-season-panel :is(h2,h3,p),.gt-season-panel :is(h2,h3,p),.source-links a{overflow-wrap:anywhere}

@media(max-width:650px){
 /* Logo and appearance first, language second, contacts third, on every page. */
 header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;height:auto;gap:10px 12px;padding-top:12px;padding-bottom:12px}
 header .brand{grid-column:1;grid-row:1;width:100%;max-width:205px;min-width:0;height:46px}
 header .theme-picker{grid-column:2;grid-row:1;min-width:0;margin:0;gap:6px;justify-self:end}
 header .theme-picker select{width:120px;max-width:120px;min-width:0;min-height:44px;height:auto;font-size:12px}
 header .language-picker{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:100%;max-width:100%;min-width:0;margin:0;padding:3px;gap:3px;box-sizing:border-box}
 header .language-picker button{min-width:0;min-height:44px;padding:10px 4px;font-size:12px}
 header:has(.header-contact) .header-right,header .header-right{grid-column:1/-1;grid-row:3;display:flex;min-width:0;width:100%;margin:0;order:initial}
 header .header-contact{width:100%;justify-content:flex-start;gap:6px 14px}
 header .header-contact a{white-space:normal;overflow-wrap:anywhere;font-size:12px;min-height:32px;display:inline-flex;align-items:center}
 header>.badge{grid-column:1/-1;grid-row:4;justify-self:start;white-space:normal}

 /* Search has a reserved cell; category labels can wrap without pushing it out. */
 .main-nav{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:0 4px;min-width:0;white-space:normal;overflow:visible}
 .main-nav:has(.site-search-toggle){grid-template-columns:repeat(3,minmax(0,1fr)) 44px}
 .main-nav>a{display:flex;align-items:center;justify-content:center;min-width:0;min-height:48px;padding:9px 4px;box-sizing:border-box;font-size:11px;line-height:1.4;text-align:center;white-space:normal;overflow-wrap:anywhere}
 .main-nav .dakar-nav-dropdown{position:static;min-width:0;align-self:stretch}
 .main-nav .dakar-nav-dropdown summary{display:flex;align-items:center;justify-content:center;min-height:48px;padding:9px 4px;font-size:11px;line-height:1.4;white-space:normal}
 .main-nav .dakar-nav-dropdown>div{left:0;right:0;width:auto;min-width:0;max-width:100%;box-sizing:border-box}
 .main-nav .site-search-toggle{grid-column:4;grid-row:1;justify-self:center;align-self:center;width:44px;height:44px;margin:0}

 main{padding-top:22px}
 .section-head{flex-wrap:wrap;gap:12px}
 .section-head>*{min-width:0;max-width:100%}
 .calendar-panel>.section-head>label{flex-basis:100%;align-items:stretch;flex-direction:column}
 .formula-season-filters input{min-width:0;width:100%}
 .formula-season-filters :is(select,input),.gt-season-filters select,.calendar-panel select{font-size:16px;min-height:44px}
 .formula-season-scroll{max-height:65dvh}
 .gt-season-scroll,.wec-tab-content .table-scroll{margin-inline:0;width:100%;max-width:100%}
 .event-teaser-flags{flex-wrap:wrap}
 .event-teaser-rows .event-teaser-card{min-height:0}
 .event-teaser-rows .event-teaser-card>.button-link{width:100%;text-align:center;box-sizing:border-box}
 .gt-season-filters>label{flex-basis:100%}
 .dakar-result-controls select{min-width:0;max-width:100%;width:100%}
 .source-links{display:flex;flex-wrap:wrap;gap:10px 16px}

 /* Campaign markup is a link containing a logo, title and caption. */
 .f1-ad-panel,.has-head-commercial>.race-head-commercial{display:block;padding:10px 12px;min-height:0!important;text-align:left}
 .f1-ad-panel>span,.race-head-commercial>span{display:block;margin:0 0 6px;font-size:9px}
 .f1-ad-panel .racinginfo-campaign,.race-head-commercial .racinginfo-campaign{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.2fr);align-items:center;gap:4px 12px;min-width:0;padding:0}
 .racinginfo-campaign .f1-ad-brand{grid-column:1;grid-row:1/3;justify-self:center;min-width:0;width:100%;max-width:150px;height:38px;opacity:1}
 .racinginfo-campaign strong{grid-column:2;grid-row:1;min-width:0;font-size:14px;text-align:left;overflow-wrap:anywhere}
 .racinginfo-campaign small{grid-column:2;grid-row:2;min-width:0;font-size:11px;text-align:left;overflow-wrap:anywhere}
 .site-search-dialog{max-width:calc(100vw - 24px);max-height:85dvh}
 .site-search-heading{align-items:flex-start;min-width:0}
 .site-search-heading h2{overflow-wrap:anywhere}
 .site-search-close{flex-shrink:0}
 .site-search-results :is(strong,a){overflow-wrap:anywhere}
}

.table-scroll:focus-visible{outline:3px solid #e10600;outline-offset:3px}
