/* Local fleet sizing: consistent image space and aligned labels. */
#fleet { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px 24px; min-height:0; padding:24px 0 42px; }
#fleet .fleets { position:relative; inset:auto!important; width:100%; max-width:none; margin:0; z-index:auto; display:flex; flex-direction:column; }
#fleet .fleet-photo { position:relative; width:100%; aspect-ratio:4/3; overflow:visible; }
#fleet .fleet-photo img { position:absolute; max-width:none; height:auto; margin:0; }
#fleet .fleets > span { position:static; width:100%; max-width:none; box-sizing:border-box; margin-top:10px; padding:12px 0; font-size:14px; }
@media(max-width:980px) { #fleet {grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 18px;} }
@media(max-width:530px) { #fleet {grid-template-columns:1fr;gap:24px;} }
#fleet .red .fleet-photo img {width:73.5474%;left:13.5799%;top:8.8889%;}
#fleet .large .fleet-photo img {width:92.1500%;left:3.0341%;top:2.0158%;}
#fleet .med .fleet-photo img {width:97.3118%;left:1.3441%;top:1.5054%;}
#fleet .extra .fleet-photo img {width:83.6863%;left:7.4344%;top:8.0412%;}
#fleet .mini .fleet-photo img {width:97.8138%;left:-0.0215%;top:-0.9383%;}
#fleet .big .fleet-photo img {width:93.2771%;left:2.5562%;top:7.4537%;}

#fleet .fleets > span { text-transform:none; min-height:62px; display:flex; align-items:center; justify-content:center; padding:10px 14px; line-height:1.4; }
#fleet .fleet-photo-pending {display:flex;align-items:center;justify-content:center;}
#fleet .fleet-photo-pending em {font-style:normal;color:#496476;font-size:15px;}

/* High-resolution transparent photos must fit the original hero columns. */
@media(min-width:981px) {
  .zone .bus {width:62%;height:410px;object-fit:contain;}
  .zone[id^="slide"] .bus {right:-10px;top:20px;}
  .zone.static {min-height:450px;}
}
@media(max-width:980px) {
  .zone .bus {width:620px;max-width:90%;height:auto;}
}

/* One vehicle per row, with room for photography and a short introduction. */
#fleet {display:flex;flex-direction:column;gap:0;padding:0 0 45px;}
#fleet .fleets {display:grid;grid-template-columns:58% 42%;align-items:center;min-height:480px;padding:35px 0;border-bottom:1px solid rgba(19,103,144,.18);}
#fleet .fleet-photo {display:block;aspect-ratio:4/3;}
#fleet .fleet-copy {padding:25px 0 25px 30px;color:#124967;}
#fleet .fleet-capacity {font-size:13px;letter-spacing:2px;text-transform:uppercase;margin:0 0 16px;color:#39728e;}
#fleet h2 {font-size:34px;line-height:1.15;margin:0 0 22px;text-transform:none;}
#fleet .fleet-copy > p:not(.fleet-capacity) {font-size:17px;line-height:1.7;}
#fleet .fleet-cta {display:inline-block;margin-top:15px;padding:13px 20px;background:#f4cc16;color:#153c52;font-weight:bold;text-decoration:none;border-radius:4px;}
#fleet .fleet-cta:hover,#fleet .fleet-cta:focus-visible {background:#ffdf4b;outline:2px solid #153c52;outline-offset:3px;}
.bullet-list li a {display:flex;width:100%;height:100%;align-items:center;justify-content:center;}
.bullet-list li img {width:100%;height:100%;object-fit:contain;border-radius:0;transform:scale(1.08);}
.bullet-list li img[src$="img-bus-6.jpg"] {object-fit:cover;transform:none;}
@media(max-width:700px) {
 #fleet .fleets {grid-template-columns:1fr;min-height:0;padding:24px 0 38px;}
 #fleet .fleet-copy {padding:0 10px;}
 #fleet h2 {font-size:29px;}
 #fleet .fleet-photo {max-width:560px;margin:auto;}
 .bullet-list {display:flex;justify-content:center;gap:5px;}
 .bullet-list li {width:12%;max-width:70px;height:auto;aspect-ratio:1;margin:0;border-width:3px;flex-shrink:0;}
 .bullet-list li:hover,.bullet-list li.active {border-width:3px;}
}
.zone-pale.list {background:#edf4f7;}
#fleet .fleet-cta span {position:static;display:inline;width:auto;height:auto;background:none;padding:0;margin-left:10px;color:inherit;}
#fleet .fleets {min-height:440px;padding:15px 0;}
.zone-pale.list h1 {white-space:normal;}
.zone-pale.list .seo-list-intro {margin-bottom:25px;}
.bullet-list li img {transform:scale(1.28);}
@media(max-width:700px) { .zone-pale.list h1 {font-size:2em;line-height:1.2;} }

/* Catalogue: description on the left, vehicle on the right. */
#fleet .fleets {grid-template-columns:42% 58%;}
#fleet .fleet-copy {grid-column:1;grid-row:1;padding:25px 30px 25px 0;}
#fleet .fleet-photo {grid-column:2;grid-row:1;}
@media(max-width:700px) {
 #fleet .fleets {grid-template-columns:1fr;}
 #fleet .fleet-copy {grid-column:1;grid-row:1;padding:20px 10px 0;}
 #fleet .fleet-photo {grid-column:1;grid-row:2;}
}

/* Front-focused thumbnails, using the same photos as the main vehicles. */
.bullet-list li img {object-fit:cover;object-position:75% 55%;transform:scale(1.45);transform-origin:75% 55%;max-width:none;}
.bullet-list li img[src$="autobus-rouge-deux-etages-80-passagers-unitours.png"] {object-position:85% 50%;transform:scale(1.12);transform-origin:85% 50%;}
/* Keep the vehicles readable inside the circular navigation. */
.bullet-list li img {object-fit:contain;object-position:center;transform:scale(1.05);transform-origin:center;}
.bullet-list li img[src$="autobus-rouge-deux-etages-80-passagers-unitours.png"] {object-fit:contain;object-position:center;transform:scale(1.02);transform-origin:center;}
/* Slightly larger navigation thumbnails without tighter photo cropping. */
@media(min-width:701px) {
 .bullet-list li {width:94px;height:94px;}
}
@media(max-width:700px) {
 .bullet-list {gap:4px;}
 .bullet-list li {width:13%;max-width:78px;}
}

/* A spacious introduction below the fleet navigation. */
.home-intro .text {width:100%;max-width:760px;margin:0 auto;float:none;text-align:center;}
.home-intro {padding-top:75px;padding-bottom:65px;}
.home-intro .text p {line-height:1.7;}
.home-intro .button {margin-top:20px;}
@media(max-width:700px) { .home-intro {padding-top:55px;padding-bottom:45px;} }

/* Primary fleet discovery action on the homepage. */
.home-intro .fleet-discover {display:inline-flex;align-items:center;justify-content:space-between;gap:32px;box-sizing:border-box;min-height:76px;margin-top:30px;padding:17px 22px 17px 30px;border:1px solid #ffe479;border-radius:14px;background:#f6ce24;color:#123c56;font-family:"Open Sans",sans-serif;font-size:21px;font-weight:700;line-height:1.35;text-decoration:none;box-shadow:0 8px 22px rgba(0,25,48,.18);transition:background .18s ease,box-shadow .18s ease,transform .18s ease;}
.home-intro .fleet-discover-arrow {display:flex;align-items:center;justify-content:center;flex-shrink:0;width:42px;height:42px;border-radius:50%;background:#123c56;color:#fff;font-size:26px;font-weight:400;}
.home-intro .fleet-discover:hover {background:#ffdd46;transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,25,48,.25);}
.home-intro .fleet-discover:focus-visible {outline:3px solid white;outline-offset:5px;}
@media(max-width:530px) {.home-intro .fleet-discover {width:100%;max-width:370px;gap:14px;padding:16px 18px;font-size:18px;min-height:72px;text-align:left;}}
@media(prefers-reduced-motion:reduce) {.home-intro .fleet-discover {transition:none;}.home-intro .fleet-discover:hover {transform:none;}}

.about-modern {padding:64px 0 18px;color:#173e56;}
.about-hero {display:grid;grid-template-columns:46% 54%;align-items:center;gap:0;}
.about-copy {position:relative;z-index:1;}
.about-modern .about-eyebrow {font-size:12px;font-weight:700;letter-spacing:2px;margin:0 0 20px;color:#4b6c7f;}
.about-modern h1 {font-size:58px;line-height:1.06;text-transform:none;margin:0 0 24px;}
.about-modern p {font-size:16px;line-height:1.8;}
.about-modern .about-lead {font-size:21px;line-height:1.5;margin-bottom:22px;}
.about-coach {width:110%;max-width:110%;height:auto;margin-left:-2%;}
.about-highlights {display:grid;grid-template-columns:repeat(3,1fr);padding:30px 0;margin:50px 0 65px;border-top:1px solid #d8e1e6;border-bottom:1px solid #d8e1e6;}
.about-highlights div {display:flex;flex-direction:column;gap:8px;text-align:center;border-right:1px solid #d8e1e6;}
.about-highlights div:last-child {border:0;}
.about-highlights strong {font-size:38px;line-height:1.2;color:#16364e;}
.about-highlights span {font-size:14px;}
.about-modern h2 {font-size:36px;line-height:1.2;text-transform:none;margin:0 0 24px;}
.about-cards {display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:32px 0 55px;}
.about-cards article {padding:27px 24px;background:white;border:1px solid #e1e8eb;border-radius:14px;border-top:3px solid #edc832;}
.about-cards h3 {font-size:23px;line-height:1.3;text-transform:none;margin:0 0 14px;}
.about-cards p {font-size:15px;margin:0;}
.about-next {background:#102a40;color:#f4f7fa;border-radius:18px;padding:32px;display:flex;align-items:center;justify-content:space-between;gap:25px;}
.about-next h2 {font-size:30px;margin:0 0 8px;}
.about-next p {margin:0;font-size:15px;}
.about-next a {flex-shrink:0;background:#f6ce24;color:#123c56;border-radius:10px;padding:18px 22px;font-size:16px;font-weight:bold;text-decoration:none;}
.about-next a:hover {background:#ffde4b;}
.about-next a:focus-visible {outline:3px solid white;outline-offset:4px;}
@media(max-width:700px){.about-modern{padding-top:36px;}.about-hero{grid-template-columns:1fr;}.about-modern h1{font-size:44px;}.about-coach{width:100%;max-width:100%;margin:15px 0 0;}.about-highlights{margin:20px 0 40px;gap:10px;}.about-highlights strong{font-size:29px;}.about-highlights span{font-size:12px;}.about-cards{grid-template-columns:1fr;gap:15px;}.about-next{flex-direction:column;align-items:flex-start;padding:25px;}.about-modern h2{font-size:30px;}}
/* Preserve the full original editorial content, with more readable spacing. */
.about-original {padding:55px 0 25px;color:#173e56;font-size:16px;line-height:1.85;}
.about-original h1 {font-size:40px;line-height:1.18;text-transform:none;margin:0 0 30px;}
.about-original .articleimage {width:49%;max-width:49%;margin:25px 0 35px 40px;height:auto;}
.about-original p {margin:0 0 24px;}
.about-original p:has(>strong:only-child) {margin-top:40px;margin-bottom:20px;padding-top:25px;border-top:2px solid #e4c539;}
.about-original p > strong:only-child {font-size:20px;line-height:1.45;display:block;color:#16364e;}
.about-original .seo-context {clear:both;margin-top:35px;padding:24px;background:#fff;border-radius:12px;border:1px solid #e1e8eb;}
@media(max-width:700px) {.about-original{padding-top:35px;}.about-original h1{font-size:32px;}.about-original .articleimage{display:block;float:none;width:100%;max-width:100%;margin:0 0 25px;}}

.about-fleet-link {justify-content:center;margin:15px 0 25px;padding:32px;}
.about-fleet-link a {font-size:20px;padding:20px 28px;}
@media(max-width:700px){.about-fleet-link{align-items:center;}.about-fleet-link a{font-size:18px;text-align:center;}}

#gallery.transit-gallery {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:22px;}
#gallery.transit-gallery a {display:block;margin:0;padding:6px;border:1px solid #d7e1e7;border-radius:8px;background:#fff;}
#gallery.transit-gallery img {display:block;width:100%;height:100px;object-fit:contain;}
#gallery.transit-gallery a:hover {border-color:#b28a00;}
/* Photo-first gallery previews; the lightbox keeps the full image. */
#gallery,#gallery.transit-gallery {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:26px;}
#gallery a.gallery,#gallery.transit-gallery a.gallery {position:relative;display:block;float:none;margin:0;padding:0;aspect-ratio:4/3;overflow:hidden;border:0;border-radius:12px;background:linear-gradient(140deg,#e5edf1,#cfdee6);box-shadow:0 3px 10px rgba(16,42,64,.12);}
#gallery a.gallery img,#gallery.transit-gallery a.gallery img {display:block;width:100%;height:100%;margin:0;object-fit:contain;transition:transform .2s ease;}
#gallery a.gallery img[src*="interieur"] {object-fit:cover;object-position:center 67%;}
#gallery a.gallery img[src*="porte-laterale"],#gallery a.gallery img[src*="transit-arriere"] {object-fit:cover;object-position:center;}
#gallery a.gallery::after {content:'↗';position:absolute;right:8px;bottom:8px;width:27px;height:27px;border-radius:50%;background:rgba(16,42,64,.82);color:white;font:18px/27px Arial,sans-serif;text-align:center;pointer-events:none;}
#gallery a.gallery:hover img {transform:scale(1.04);}
#gallery a.gallery:focus-visible {outline:3px solid #c49b00;outline-offset:4px;}
@media(prefers-reduced-motion:reduce){#gallery a.gallery img {transition:none;}#gallery a.gallery:hover img {transform:none;}}
/* Center the homepage vehicle presentation between header and thumbnails. */
@media(min-width:981px) {
 .home-vehicles .zone .text {transform:translateY(30px);}
 .home-vehicles .zone .bus {transform:translateY(30px);}
}

.footer-fleet {padding:35px 0 40px;}
.footer-fleet h2 {margin:0 0 26px;}
.footer-fleet-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 24px;}
.footer-fleet-grid a {display:flex;flex-direction:column;text-align:center;color:#e5edf3;text-decoration:none;}
.footer-fleet-photo {height:165px;display:flex;align-items:center;justify-content:center;}
.footer-fleet-photo img {display:block;width:100%;height:100%;object-fit:contain;max-width:270px;}
.footer-fleet-grid span {display:block;font-size:15px;line-height:1.5;margin-top:12px;}
.footer-fleet-grid a:hover span {color:#f6ce24;}
.footer-fleet-grid a:focus-visible {outline:2px solid #f6ce24;outline-offset:5px;border-radius:8px;}
@media(max-width:700px){.footer-fleet-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px;}.footer-fleet-photo{height:130px;}}
@media(max-width:380px){.footer-fleet-photo{height:110px;}.footer-fleet-grid span{font-size:13px;}}
