/* Rallye JMC: preserve full photographic frames across screen sizes. */
.rally-feature, .rally-reportage { background: var(--night); color: #fff; scroll-margin-top: 78px; }
.rally-feature h2 em, .rally-reportage h2 em { color: var(--gold-light); font-weight: 400; }
.rally-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 20px; }
.rally-grid .gallery-item { display: block; width: 100%; min-width: 0; min-height: 0; aspect-ratio: auto; padding: 0; background: #0b1c19; border: 1px solid rgba(255,255,255,.12); text-align: left; }
.rally-grid .gallery-item img { display: block; width: 100%; height: auto; aspect-ratio: 1600 / 1066; object-fit: contain; filter: none; transform: none; }
.rally-grid .gallery-item::after { display: none; }
.rally-grid .gallery-item > span { position: static; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 18px; color: rgba(255,255,255,.85); font-size: 11px; letter-spacing: .05em; line-height: 1.5; }
.rally-grid .gallery-item > span b { flex-shrink: 0; color: var(--gold-light); }
.rally-grid .gallery-item:hover, .rally-grid .gallery-item:focus-visible { border-color: var(--gold-light); }
.rally-grid .gallery-item:focus-visible, .rally-home-card:focus-visible, .rally-text-link:focus-visible { outline: 2px solid var(--gold-light); outline-offset: 5px; }
.rally-overview { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.rally-overview .gallery-item > span { padding: 12px; font-size: 9px; letter-spacing: .02em; }
.rally-feature-actions { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 24px; margin-top: 34px; }
.rally-text-link { display: inline-block; color: var(--gold-light); font-size: 13px; line-height: 1.7; }
.rally-text-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.rally-film-section { background: #10231e; color: #fff; scroll-margin-top: 78px; }
.rally-film-grid { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: clamp(28px,4vw,60px); align-items: center; }
.rally-film-inline { margin: 0 0 54px; padding: 28px; background: #10231e; border: 1px solid rgba(255,255,255,.14); }
.rally-film-copy { min-width: 0; }
.rally-film-copy h2, .rally-film-copy h3 { margin: 0 0 20px; color: #fff; font: 400 clamp(32px,3.5vw,50px)/1.08 Georgia,serif; letter-spacing: -.035em; }
.rally-film-copy h2 em, .rally-film-copy h3 em { color: var(--gold-light); font-weight: 400; }
.rally-film-copy p:not(.eyebrow) { max-width: 410px; margin: 0 0 22px; color: rgba(255,255,255,.76); font-size: 14px; line-height: 1.85; }
.rally-film-player { width: 100%; min-width: 0; border: 1px solid rgba(255,255,255,.15); }
.rally-film-trigger { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; color: white; background: #071412; cursor: pointer; }
.rally-film-trigger img { width: 100%; height: 100%; object-fit: cover; opacity: .75; transition: opacity .2s ease; }
.rally-film-trigger:hover img, .rally-film-trigger:focus-visible img { opacity: .9; }
.rally-film-trigger:focus-visible { outline: 3px solid var(--gold-light); outline-offset: -5px; }
.rally-film-play-icon { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; width: 70px; height: 70px; padding-left: 3px; transform: translate(-50%,-50%); border: 1px solid rgba(255,255,255,.85); border-radius: 50%; background: rgba(7,20,18,.74); font-size: 20px; }
.rally-film-play-caption { position: absolute; bottom: 18px; left: 20px; color: white; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-shadow: 0 1px 6px #000; }
.rally-hero { background: var(--night); color: #fff; padding: 124px 0 70px; }
.rally-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 48px; color: rgba(255,255,255,.6); font-size: 11px; line-height: 1.7; }
.rally-breadcrumb a:hover { color: var(--gold-light); text-decoration: underline; }
.rally-hero-grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 46px; align-items: center; }
.rally-hero-copy { min-width: 0; }
.rally-hero h1 { margin: 0; font: 400 clamp(46px,5.1vw,76px)/1.02 Georgia,serif; letter-spacing: -.045em; }
.rally-hero h1 em { color: var(--gold-light); font-weight: 400; }
.rally-date { margin: 26px 0 0; color: var(--gold-light); font-size: 12px; line-height: 1.7; letter-spacing: .06em; }
.rally-lead { color: rgba(255,255,255,.74); font-size: 15px; line-height: 1.9; max-width: 475px; margin: 22px 0 0; }
.rally-hero .hero-actions { align-items: center; flex-wrap: wrap; gap: 22px; }
.rally-hero-photo { min-width: 0; margin: 0; border: 1px solid rgba(255,255,255,.16); }
.rally-hero-photo img { width: 100%; height: auto; }
.rally-hero-photo figcaption { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 18px; color: rgba(255,255,255,.7); font-size: 11px; line-height: 1.6; }
.rally-hero-photo figcaption span { flex-shrink: 0; color: var(--gold-light); }
.rally-story { background: var(--cream); }
.rally-story-grid { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 80px; }
.rally-story h2 { margin: 0; font: 400 clamp(42px,4.5vw,66px)/1.02 Georgia,serif; letter-spacing: -.04em; }
.rally-story h2 em { color: var(--teal); font-weight: 400; }
.rally-story-grid > div > p:not(.eyebrow) { margin: 0 0 18px; font-size: 15px; line-height: 1.9; color: #46544f; }
.rally-story-grid .rally-credit { padding-top: 14px; font-size: 11px; }
.rally-gallery-credit { margin: 34px 0 0; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.6); font-size: 11px; line-height: 1.9; }
.rally-services { background: var(--paper); }
.rally-services .section-heading h2 { font-size: clamp(36px,4vw,54px); line-height: 1.06; }
.rally-service-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; }
.rally-service-grid article { border-top: 1px solid var(--line); padding-top: 26px; }
.rally-service-grid article > span { color: var(--gold-dark); font-size: 11px; letter-spacing: .1em; }
.rally-service-grid h3 { font: 400 27px/1.15 Georgia,serif; margin: 22px 0 18px; }
.rally-service-grid p { font-size: 14px; line-height: 1.85; color: var(--muted); }
.rally-related { display: flex; flex-wrap: wrap; gap: 22px 38px; margin-top: 40px; font-size: 12px; color: var(--teal); }
.rally-related a:hover { text-decoration: underline; text-underline-offset: 4px; }
.rally-home-card { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.4fr); gap: 32px; align-items: center; padding: 22px; border: 1px solid rgba(255,255,255,.2); margin: 30px 0; background: #10231e; }
.rally-home-card img { display: block; width: 100%; height: auto; }
.rally-home-card h3 { margin: 14px 0; font: 400 clamp(26px,3vw,38px)/1.15 Georgia,serif; color: #fff; }
.rally-home-card p:not(.eyebrow) { color: rgba(255,255,255,.7); font-size: 14px; line-height: 1.8; }
.rally-home-card .eyebrow { font-size: 9px; margin: 0; line-height: 1.7; }
.rally-card-cta { display: inline-block; color: var(--gold-light); font-size: 12px; line-height: 1.7; margin-top: 10px; }
.rally-home-card:hover .rally-card-cta { text-decoration: underline; text-underline-offset: 4px; }
.rally-sport-feature { background: var(--night); color: #fff; padding: 50px 0; }
.rally-sport-feature h2 { font: 400 clamp(30px,3.5vw,48px)/1.1 Georgia,serif; margin: 0 0 18px; }
.rally-sport-feature p:not(.eyebrow) { color: rgba(255,255,255,.7); font-size: 14px; line-height: 1.8; }
@media (max-width:1100px) {
  .rally-overview { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .rally-overview .gallery-item > span { font-size: 10px; padding: 14px; }
}
@media (max-width:900px) {
  .rally-film-grid { grid-template-columns: 1fr; gap: 28px; }
  .rally-hero-grid { grid-template-columns: 1fr; gap: 40px; }
  .rally-hero h1 { max-width: 620px; }
  .rally-hero-photo { max-width: 720px; }
  .rally-story-grid { grid-template-columns: 1fr; gap: 32px; }
  .rally-service-grid { grid-template-columns: 1fr; gap: 24px; }
  .rally-service-grid h3 { margin-top: 12px; }
}
@media (max-width:720px) {
  .rally-film-inline { margin-bottom: 36px; padding: 20px; }
  .rally-hero { padding: 105px 0 46px; }
  .rally-breadcrumb { margin-bottom: 30px; }
  .rally-hero h1 { font-size: clamp(40px,11.5vw,64px); }
  .rally-hero .eyebrow { font-size: 9px; letter-spacing: .1em; }
  .rally-hero .hero-actions { margin-top: 26px; gap: 16px; }
  .rally-hero .hero-actions .button { width: 100%; }
  .rally-hero-grid { gap: 32px; }
  .rally-grid { grid-template-columns: 1fr; gap: 20px; }
  .rally-feature-actions { display: grid; gap: 22px; }
  .rally-feature-actions .button { width: 100%; white-space: normal; text-align: center; }
  .rally-home-card { grid-template-columns: 1fr; gap: 24px; padding: 16px; }
  .rally-home-card h3 { font-size: 30px; }
  .rally-hero-photo figcaption, .rally-grid .gallery-item > span { padding: 14px; font-size: 10px; }
}
