/* Rally shared FAQ, responsive navigation and phone ergonomics. */
html{scroll-padding-top:105px}
body{min-width:0}
img{max-width:100%}
#rally,#weekend,#gallery,#rally-reviews,#2027,#faq,#contact,#share,#reviews,#catalogue{scroll-margin-top:105px}
:where(a,button,summary,input,select,textarea):focus-visible{outline:3px solid #ff726a;outline-offset:3px}
.nav{position:relative;min-width:0}
.mobile-nav{display:none}
.faq-teaser-head{display:flex;align-items:end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.faq-teaser-head p{max-width:660px;color:#d0c8bd;margin:0 0 22px}
.faq-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0 26px}
.faq-preview-card{border:1px solid #413a34;border-top:4px solid var(--red,#d52b26);background:#100f0e;padding:24px;min-width:0}
.faq-preview-card h3{font:900 1.65rem/1.02 "Barlow Condensed",Arial,sans-serif;text-transform:uppercase;margin:0 0 10px}
.faq-preview-card p{margin:0;color:#c8bfb6;overflow-wrap:anywhere}
.planning-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}
.planning-cards>div{min-width:0;background:#0a0909;border:1px solid #403934;padding:16px}
.planning-cards strong{display:block;font:800 1.28rem/1.1 "Barlow Condensed",Arial,sans-serif;text-transform:uppercase;color:#f6eae4;margin-bottom:7px}
.planning-cards span{display:block;color:#c9c1b6;font-size:.91rem}
.faq-hero{padding:74px 0 68px;background:linear-gradient(110deg,rgba(0,0,0,.94),rgba(0,0,0,.64)),url('/media/rally-bikes-2026.webp') center 55%/cover no-repeat;border-bottom:1px solid #403832}
.faq-hero h1{font-size:clamp(3.4rem,8vw,6.6rem);line-height:.91;margin:12px 0 16px;max-width:850px}
.faq-hero p{max-width:690px;color:#e8e0d8;font-size:1.1rem;line-height:1.5}
.faq-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,310px);gap:32px;align-items:start}
.faq-list{display:grid;gap:12px;min-width:0}
.faq-list details{background:#161412;border:1px solid #51453e;border-left:5px solid var(--red,#d52b26)}
.faq-list summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 21px;font-weight:800;font-size:1.04rem;line-height:1.35;min-height:62px}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:after{content:"+";font:700 1.8rem/1 "Barlow Condensed",Arial,sans-serif;color:#ff726a;flex:none}
.faq-list details[open] summary:after{content:"−"}
.faq-list details[open] summary{border-bottom:1px solid #413a34}
.faq-answer{padding:0 21px 20px;line-height:1.65;color:#d8cfc5;overflow-wrap:anywhere}
.faq-answer p{margin:15px 0 0}
.faq-answer a{color:#ffaaa3;text-decoration:underline;text-underline-offset:3px}
.faq-side{background:#0f0e0d;border:1px solid #403832;padding:25px;position:sticky;top:112px}
.faq-side h2{font-size:2.25rem;margin:0 0 11px}
.faq-side p{color:#c9c1b8}
.faq-side .btn{display:block;text-align:center;margin-top:15px;white-space:normal}
.faq-footer-links{display:flex;gap:18px;flex-wrap:wrap;margin-top:20px;font-weight:700}
.faq-footer-links a{text-decoration:underline;text-underline-offset:3px}
.faq-subnote{color:#bcb3a9;font-size:.92rem;margin-top:18px}
.community-card :is(input,select,textarea),.rally-contact-form :is(input,select,textarea){max-width:100%}
.community-card input[type=file]{min-width:0;overflow-wrap:anywhere}
.community-card .rally-photo-choice{min-width:0}
.foot-community{flex-wrap:wrap;justify-content:flex-start}
@media(max-width:1200px){
  .nav .links{display:none!important}
  .mobile-nav{display:block;margin-left:auto;align-self:center;flex:none}
  .mobile-nav>summary{display:flex;align-items:center;justify-content:center;gap:8px;min-width:100px;min-height:46px;padding:9px 15px;background:#b72420;border:1px solid #e54840;border-radius:3px;color:#fff;font:800 1.05rem "Barlow Condensed",Arial,sans-serif;text-transform:uppercase;letter-spacing:.055em;cursor:pointer;list-style:none}
  .mobile-nav>summary::-webkit-details-marker{display:none}
  .mobile-nav[open]>summary{background:#7b1c19}
  .mobile-nav-panel{position:absolute;right:0;top:calc(100% + 1px);z-index:30;display:grid;gap:1px;width:min(360px,calc(100vw - 30px));max-height:calc(100vh - 100px);overflow-y:auto;background:#15110f;border:1px solid #6b4a44;box-shadow:0 20px 36px #000c;padding:8px}
  .mobile-nav-panel a{display:flex;align-items:center;padding:12px 16px;min-height:46px;line-height:1.2;font:800 1.05rem "Barlow Condensed",Arial,sans-serif;text-transform:uppercase;letter-spacing:.05em;border-left:3px solid transparent}
  .mobile-nav-panel a:hover,.mobile-nav-panel a:focus-visible,.mobile-nav-panel a[aria-current=page]{background:#30201d;border-left-color:#ec3d35}
  .mobile-nav-panel .mobile-nav-cta{background:#ac2722;color:#fff}
}
@media(max-width:900px){
  .faq-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .faq-layout{grid-template-columns:minmax(0,1fr)}
  .faq-side{position:static}
}
@media(max-width:760px){
  html{scroll-padding-top:82px}
  #rally,#weekend,#gallery,#rally-reviews,#2027,#faq,#contact,#share,#reviews,#catalogue{scroll-margin-top:82px}
  .topbar{height:78px}
  .logo img{width:min(43vw,170px);height:68px;object-fit:contain}
  .mobile-nav>summary{min-width:94px;padding:9px 12px}
  .faq-hero{padding:56px 0 49px}
  .faq-hero h1{font-size:clamp(3rem,14vw,4.75rem)}
  .faq-hero p{font-size:1rem}
  .faq-preview-grid,.planning-cards{grid-template-columns:minmax(0,1fr)}
  .faq-preview-card{padding:19px}
  .faq-list summary{padding:15px 16px;font-size:1rem}
  .faq-answer{padding:0 16px 18px}
  .faq-side{padding:20px}
  .hero{min-height:565px}
  .hero-copy{padding:75px 0 46px}
  .hero h1{font-size:clamp(3.25rem,14vw,5.2rem);overflow-wrap:normal}
  .actions .btn{min-height:46px}
  .btn{min-height:46px}
  .community-card :is(input:not([type=checkbox]),select,textarea),.rally-contact-form :is(input:not([type=checkbox]),select,textarea),.field :is(input,select,textarea){font-size:16px}
  .community-card .checkline input,.rally-contact-check input{width:20px;height:20px}
  .rally-photo-selections{grid-template-columns:minmax(0,1fr)}
  .rally-contact-form{min-width:0}
  .contact>*{min-width:0}
  .coming{min-width:0}
  .coming .big{font-size:clamp(3.4rem,12vw,5rem)}
  .foot-community{justify-content:flex-start;gap:14px}
}
@media(max-width:380px){
  .mobile-nav>summary{min-width:84px}
  .actions .btn{flex-basis:100%}
  .hero{min-height:600px}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .faq-list summary{font-size:.96rem}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
}

/* A section must contain published content before appearing in either menu. */
[data-programme-link][hidden]{display:none!important}


/* Ticket sales are fail-closed by default; JS only activates links on release. */
[data-ticket-target][aria-disabled="true"]{
  pointer-events:none;cursor:not-allowed;opacity:.65;
  filter:grayscale(.25)
}
a[data-ticket-target]:not([href]){text-decoration:none}
.ticket-launch-countdown{font-variant-numeric:tabular-nums}
