/* Corrections ciblées issues de l'audit : navigation clavier et section tarifs. */
html {
  scroll-padding-top: 96px;
}
.site-header nav { gap: clamp(10px, 1.35vw, 20px); }

.about {
  padding: 96px clamp(24px, 8vw, 140px);
  color: #173c61;
  background: linear-gradient(140deg, #fff 0 47%, #e7f6ff 47% 78%, #fff4c3 100%);
}
.about-heading { max-width: 850px; margin-bottom: 42px; }
.about-heading h1,
.about-heading h2 { margin: 0 0 18px; color: #071e3a; font-size: clamp(38px, 5vw, 68px); line-height: 1; letter-spacing: -.045em; }
.about-founded { display: inline-block; margin: 0; padding: 10px 16px; border-radius: 99px; color: #071e3a; background: #f4bd3a; box-shadow: 5px 6px 0 #1282c8; font-weight: 800; }
.about-layout { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(28px, 5vw, 70px); align-items: start; }
.about-story { padding: clamp(27px, 4vw, 48px); border-left: 10px solid #f4bd3a; border-radius: 8px 22px 22px 8px; background: #fff; box-shadow: 13px 16px 0 #a9ddf6, 0 28px 48px #071e3a24; }
.about-story > p { margin: 0 0 20px; font-size: 18px; line-height: 1.75; }
.about-story blockquote { margin: 32px 0 0; padding: 25px; border-radius: 14px; color: #fff; background: linear-gradient(145deg, #071e3a, #0b568a); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(19px, 2vw, 25px); font-style: italic; line-height: 1.55; box-shadow: inset 0 0 0 1px #8bd7ff66; }
.about-story cite { display: block; margin-top: 18px; color: #f4bd3a; font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-weight: 800; }
.about-mission { position: relative; overflow: hidden; padding: clamp(30px, 4vw, 46px); border: 2px solid #1282c8; border-radius: 22px; background: #071e3a; box-shadow: 12px 14px 0 #f4bd3a; color: #e7f5ff; }
.about-mark { position: absolute; right: -15px; top: -30px; color: #ffffff0d; font-size: 150px; font-weight: 1000; line-height: 1; transform: rotate(-10deg); }
.about-mission h2,
.about-mission h3 { position: relative; margin: 22px 0 8px; color: #f4bd3a; font-size: 21px; letter-spacing: 0; }
.about-mission h2:first-of-type,
.about-mission h3:first-of-type { margin-top: 0; }
.about-mission p { position: relative; margin: 0; line-height: 1.65; }
.about-signature { margin-top: 28px !important; padding: 18px; border: 1px solid #f4bd3a80; border-radius: 12px; color: #fff8d2; background: #ffffff0c; font-family: Georgia, 'Times New Roman', serif; font-size: 18px; font-style: italic; font-weight: 700; }
.about-page { min-height: calc(100vh - 140px); }
.about-return { margin: 48px 0 0; text-align: center; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.site-search { position: relative; display: flex; align-items: center; width: clamp(150px, 14vw, 215px); }
.site-search input { width: 100%; height: 40px; padding: 9px 38px 9px 13px; border: 1px solid #9bcfeb; border-radius: 99px; color: #071e3a; background: #f4faff; font: inherit; font-size: 13px; outline: none; }
.site-search input:focus { border-color: #1282c8; box-shadow: 0 0 0 3px #1282c82d; }
.site-search button { position: absolute; right: 4px; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 50%; color: #071e3a; background: #f4bd3a; cursor: pointer; font-size: 20px; font-weight: 900; }
.search-results { position: absolute; z-index: 100; top: 47px; right: 0; width: min(330px, calc(100vw - 28px)); overflow: hidden; border: 1px solid #91cceb; border-radius: 12px; background: #fff; box-shadow: 0 18px 42px #071e3a4a; }
.search-results a { display: block; padding: 12px 15px; border-bottom: 1px solid #e1eef5; color: #071e3a !important; background: #fff; font-size: 14px; font-weight: 800; text-decoration: none; }
.search-results a:hover,
.search-results a:focus { background: #fff4c7; }
.search-empty { margin: 0; padding: 14px; color: #607085; font-size: 13px; line-height: 1.45; }

.hero-location {
  display: grid;
  grid-template-columns: auto 1fr;
  width: fit-content;
  margin-top: 24px;
  padding: 14px 20px;
  color: #071e3a;
  background: linear-gradient(120deg, #b77a09, #fff0a4 42%, #e0a622);
  border: 2px solid #fff3ad;
  border-radius: 12px;
  box-shadow: 0 10px 28px #0008;
  text-decoration: none;
  text-transform: uppercase;
}

.hero-location span { grid-row: 1 / 3; align-self: center; margin-right: 13px; font-size: 30px; color: #9f0f18; }
.hero-location strong { font-size: clamp(20px, 2vw, 29px); line-height: 1; }
.hero-location b { margin-top: 4px; font-size: 14px; letter-spacing: .16em; }

.flyer-group { scroll-margin-top: 100px; }
.flyer-group + .flyer-group { margin-top: 56px; }
.flyer-group-label { display: inline-block; margin: 0 0 20px; padding: 11px 18px; border: 1px solid #f4bd3a; border-radius: 99px; color: #071e3a; background: #f4bd3a; font-size: 14px; font-weight: 900; letter-spacing: .12em; }

.montenegro-card { background: linear-gradient(130deg, #b10d20, #071e3a); }
.mauritius-card { color: #fff; background: linear-gradient(130deg, #d71920, #123f70 48%, #159447); }
.mauritius-card .tag { color: #ffe24a; }

/* Cartes CT Travel : dossiers et livres classés en blanc, bleu et jaune or. */
.destination-grid,
.price-grid,
.other-service-grid { perspective: 1400px; }

.destination-grid .destination-cube,
.price-grid article,
.other-service-grid article {
  position: relative;
  min-height: 255px;
  border: 1px solid #83c9ef;
  border-left: 12px solid #f4bd3a;
  border-radius: 8px 15px 15px 8px;
  box-shadow: 11px 13px 0 #b9d8eb, 18px 22px 34px #071e3a32;
  transform: rotateZ(-1.2deg) rotateY(-5deg);
  transform-origin: left center;
  transition: transform .28s ease, box-shadow .28s ease;
}

.destination-grid .destination-cube:nth-child(even),
.price-grid article:nth-child(even),
.other-service-grid article:nth-child(even) {
  transform: rotateZ(1.2deg) rotateY(-5deg);
}

.destination-grid .destination-cube:hover,
.price-grid article:hover,
.other-service-grid article:hover {
  transform: translateY(-9px) rotateZ(0) rotateY(0);
  box-shadow: 5px 7px 0 #f4bd3a, 17px 25px 42px #071e3a3d;
}

.destination-grid .destination-cube::after,
.price-grid article::after,
.other-service-grid article::after {
  content: '';
  position: absolute;
  top: 8px;
  right: -10px;
  bottom: -8px;
  width: 10px;
  z-index: -1;
  border-radius: 0 8px 8px 0;
  background: repeating-linear-gradient(90deg, #fff 0 2px, #d8ecf8 2px 4px);
  box-shadow: 2px 3px 5px #071e3a38;
  transform: none;
}

.cube-tourism { background: linear-gradient(145deg, #0b315b, #1282c8) !important; }
.cube-work { background: linear-gradient(145deg, #1282c8, #8bd7ff) !important; }
.cube-conference { background: linear-gradient(145deg, #fff, #dff3ff) !important; }
.cube-america { background: linear-gradient(145deg, #f4bd3a, #fff2b7) !important; }
.service-card.hotel { background: linear-gradient(150deg, #b77a09, #f4bd3a 52%, #0b4f83); }
.service-grid { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.destination-grid .cube-conference h3,
.destination-grid .cube-america h3 { color: #071e3a; text-shadow: none; }
.destination-grid .cube-conference > p,
.destination-grid .cube-america > p { color: #173c61 !important; text-shadow: none; }
.destination-grid .cube-conference a,
.destination-grid .cube-america a { color: #074f86; text-shadow: none; border-bottom-color: #c78a09; }
.cube-conference .tag,
.cube-america .tag { color: #8a5a00; text-shadow: none; }

.prices { background: linear-gradient(145deg, #fff 0%, #eaf7ff 55%, #fff7d9 100%); }
.price-grid article { overflow: visible; background: #fff; }
.price-grid article:nth-child(4n+2) { background: #e4f5ff; border-left-color: #1282c8; }
.price-grid article:nth-child(4n+3) { background: #fff8dc; border-left-color: #f4bd3a; }
.price-grid article:nth-child(4n) { background: #0b315b; border-left-color: #80d3ff; }
.price-grid article:nth-child(4n) h3,
.price-grid article:nth-child(4n) a { color: #fff; }
.price-grid article:nth-child(4n) > p:not(.tag) { color: #e1f2ff; }
.price-grid article:nth-child(4n) .tag { color: #f4bd3a; }
.price-grid .paid-services-card h3 { font-size: clamp(26px, 3vw, 39px); line-height: 1.08; letter-spacing: -.025em; }

.other-services { background: linear-gradient(145deg, #fff 0%, #e7f6ff 62%, #fff3bd 100%); }
.other-service-grid article { overflow: visible; background: #fff; }
.other-service-grid article:nth-child(2) { background: linear-gradient(145deg, #e2f4ff, #fff); }
.other-service-grid article:nth-child(3) { color: #fff; background: linear-gradient(145deg, #071e3a, #1282c8); }
.other-service-grid article:nth-child(3) p { color: #e4f4ff; }
.service-icon { color: #071e3a; background: linear-gradient(135deg, #fff, #f4bd3a); border: 1px solid #e0a41b; box-shadow: 4px 5px 0 #9bcfeb; }

.documents-scatter {
  position: relative;
  overflow: hidden;
  margin: 64px 0 0;
  border: 4px solid #f4bd3a;
  border-radius: 18px;
  background: #fff;
  box-shadow: 13px 16px 0 #1282c8, 0 28px 48px #0008;
  transform: rotateZ(-.7deg);
}
.documents-scatter img { display: block; width: 100%; max-height: 520px; object-fit: cover; }
.documents-scatter figcaption { position: absolute; left: 22px; bottom: 20px; padding: 12px 17px; color: #071e3a; background: #fffbe8e8; border-left: 6px solid #f4bd3a; border-radius: 7px; font-weight: 900; box-shadow: 0 7px 18px #071e3a38; }

.announcements { padding: 96px clamp(24px, 8vw, 140px); overflow: hidden; background: linear-gradient(145deg, #eef8ff, #fff 48%, #fff5c9); }
.bafoussam-opening { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; min-height: 620px; overflow: hidden; border: 4px solid #f4bd3a; border-radius: 24px; color: #fff; background: radial-gradient(circle at 20% 20%, #1282c8 0, transparent 35%), linear-gradient(135deg, #071e3a, #0b4f83); box-shadow: 17px 20px 0 #9dd8f5, 0 32px 60px #071e3a4a; isolation: isolate; }
.bafoussam-opening::before,.bafoussam-opening::after { content: ''; position: absolute; z-index: -1; width: 180px; aspect-ratio: 1; border-radius: 50%; background: repeating-conic-gradient(from 0deg, #f4bd3a 0 4deg, transparent 4deg 18deg); -webkit-mask: radial-gradient(circle, transparent 0 32%, #000 34% 36%, transparent 38% 49%, #000 51% 53%, transparent 55%); mask: radial-gradient(circle, transparent 0 32%, #000 34% 36%, transparent 38% 49%, #000 51% 53%, transparent 55%); animation: fireworkBurst 3.4s ease-in-out infinite; opacity: .8; }
.bafoussam-opening::before { top: 35px; left: 36%; }
.bafoussam-opening::after { right: 14px; bottom: 18px; animation-delay: 1.7s; }
.opening-copy { position: relative; z-index: 2; align-self: center; padding: clamp(35px, 6vw, 80px); }
.opening-copy .eyebrow { color: #f4bd3a; }
.opening-copy h2 { margin: 0 0 18px; font-size: clamp(46px, 6vw, 84px); line-height: .95; letter-spacing: -.045em; text-shadow: 0 5px 0 #051528, 0 0 28px #51c1ff88; }
.opening-copy > p:not(.eyebrow,.opening-status,.opening-location) { max-width: 650px; color: #e4f4ff; font-size: 18px; line-height: 1.6; }
.opening-status { display: inline-block; margin: 5px 0 18px; padding: 10px 16px; color: #071e3a; background: #f4bd3a; border-radius: 99px; font-weight: 1000; letter-spacing: .13em; animation: openingPulse 2.2s ease-in-out infinite; }
.opening-location { font-size: 22px; font-weight: 900; color: #8bd7ff; }
.bafoussam-opening > img { width: 100%; height: 100%; object-fit: cover; object-position: top; border-left: 4px solid #f4bd3a; }
.celebration { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.celebration span { position: absolute; color: #ffe685; font-size: 31px; text-shadow: 0 0 15px #fff, 0 0 28px #f4bd3a; animation: starDance 2.8s ease-in-out infinite; }
.celebration span:nth-child(1){left:4%;top:7%}.celebration span:nth-child(2){left:47%;top:10%;animation-delay:.4s}.celebration span:nth-child(3){left:31%;bottom:7%;animation-delay:.8s}.celebration span:nth-child(4){right:4%;top:6%;animation-delay:1.2s}.celebration span:nth-child(5){right:45%;bottom:4%;animation-delay:1.6s}
.extra-fireworks { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.extra-fireworks span { position: absolute; width: 130px; aspect-ratio: 1; border-radius: 50%; background: repeating-conic-gradient(#f4bd3a 0 4deg, transparent 4deg 16deg, #8bd7ff 16deg 19deg, transparent 19deg 32deg); -webkit-mask: radial-gradient(circle, transparent 0 31%, #000 33% 36%, transparent 38% 50%, #000 52% 54%, transparent 56%); mask: radial-gradient(circle, transparent 0 31%, #000 33% 36%, transparent 38% 50%, #000 52% 54%, transparent 56%); animation: extraFirework 4.2s ease-out infinite; }
.extra-fireworks span:nth-child(1) { left: 3%; top: 30%; }
.extra-fireworks span:nth-child(2) { left: 43%; top: 45%; animation-delay: 1.35s; }
.extra-fireworks span:nth-child(3) { right: 3%; top: 18%; animation-delay: 2.7s; }

.bafoussam-transit { position: relative; z-index: 4; grid-column: 1 / -1; height: 250px; overflow: hidden; border-top: 3px solid #f4bd3a; background: linear-gradient(#8bd7ff 0 58%, #4e6675 58% 100%); box-shadow: inset 0 12px 28px #071e3a40; perspective: 700px; }
.transit-label { position: absolute; z-index: 8; top: 12px; left: 50%; padding: 8px 18px; border-radius: 99px; color: #071e3a; background: #f4bd3a; box-shadow: 0 6px 15px #071e3a55; font-size: 13px; font-weight: 1000; letter-spacing: .1em; text-transform: uppercase; transform: translateX(-50%); white-space: nowrap; }
.road-markings { position: absolute; right: 0; bottom: 28px; left: 0; height: 7px; background: repeating-linear-gradient(90deg, transparent 0 55px, #fff 55px 105px); opacity: .85; }
.traveling-family { position: absolute; z-index: 7; left: 2%; bottom: 38px; width: clamp(190px, 28vw, 340px); filter: drop-shadow(7px 10px 6px #071e3a66); transform-origin: right bottom; animation: familyBoards 18s linear infinite; }
.traveling-family img { display: block; width: 100%; height: auto; }
.traveling-family .frame-a { position: relative; animation: familyFrameA 1.15s steps(1,end) infinite, familyFootsteps 1.15s ease-in-out infinite; }
.traveling-family .frame-b { position: absolute; inset: 0; opacity: 0; animation: familyFrameB 1.15s steps(1,end) infinite, familyFootsteps 1.15s ease-in-out infinite reverse; }
.travel-bus { position: absolute; z-index: 6; left: 52%; bottom: 37px; width: 310px; height: 108px; border: 3px solid #f4bd3a; border-radius: 25px 18px 9px 9px; background: linear-gradient(150deg, #fff 0 22%, #1282c8 23% 68%, #071e3a 69%); box-shadow: 12px 13px 16px #071e3a66, inset 0 3px #fff; transform: rotateY(-5deg); transform-origin: center bottom; animation: busDeparture 18s cubic-bezier(.55,.05,.88,.55) infinite; }
.travel-bus::before { content: ''; position: absolute; right: -13px; bottom: 9px; width: 15px; height: 22px; border-radius: 0 9px 9px 0; background: #f4bd3a; box-shadow: 0 0 14px #fff1a8; }
.travel-bus::after { content: 'CT TRAVEL SERVICES'; position: absolute; left: 17px; bottom: 17px; max-width: 155px; color: #fff; font-size: 15px; font-weight: 1000; font-style: italic; letter-spacing: .025em; text-shadow: 2px 2px #071e3a; white-space: nowrap; }
.bus-sign { position: absolute; top: 8px; left: 18px; padding: 4px 9px; border-radius: 4px; color: #f4bd3a; background: #071e3a; font-size: 10px; font-weight: 900; letter-spacing: .08em; }
.bus-window { position: absolute; top: 12px; width: 52px; height: 31px; border: 2px solid #fff; border-radius: 8px 8px 3px 3px; background: linear-gradient(145deg, #dff5ff, #58b9e9); box-shadow: inset 4px 3px #ffffff8c; }
.bus-window.one { left: 98px; }.bus-window.two { left: 157px; }
.bus-door { position: absolute; right: 12px; top: 11px; width: 42px; height: 66px; border: 3px solid #f4bd3a; border-radius: 7px 7px 2px 2px; background: linear-gradient(90deg, #0b315b 48%, #f4bd3a 49% 52%, #0b315b 53%); animation: busDoor 18s linear infinite; }
.bus-wheel { position: absolute; bottom: -15px; width: 31px; height: 31px; border: 7px solid #18202a; border-radius: 50%; background: #9bcfeb; box-shadow: 0 0 0 3px #071e3a; animation: wheelTurn 18s ease-in infinite; }
.bus-wheel.front { right: 33px; }.bus-wheel.rear { left: 42px; }
@keyframes extraFirework { 0%,100%{opacity:0;transform:scale(.15) rotate(0)}25%{opacity:.95}55%{opacity:0;transform:scale(1.15) rotate(28deg)} }
@keyframes familyBoards { 0%,7%{transform:translateX(0) scale(1);opacity:1}38%{transform:translateX(clamp(70px,27vw,360px)) scale(1);opacity:1}46%{transform:translateX(clamp(82px,29vw,390px)) scale(.72);opacity:.9}52%,100%{transform:translateX(clamp(92px,31vw,420px)) scale(.38);opacity:0} }
@keyframes familyFootsteps { 0%,100%{transform:translateY(0) rotate(.2deg)}50%{transform:translateY(-4px) rotate(-.2deg)} }
@keyframes familyFrameA { 0%,49%{opacity:1}50%,100%{opacity:0} }
@keyframes familyFrameB { 0%,49%{opacity:0}50%,100%{opacity:1} }
@keyframes busDeparture { 0%,57%{transform:translateX(0) rotateY(-5deg)}64%{transform:translateX(10px) rotateY(-5deg)}72%{transform:translateX(55px) rotateY(-5deg)}82%{transform:translateX(230px) rotateY(-5deg)}100%{transform:translateX(105vw) rotateY(-5deg)} }
@keyframes busDoor { 0%,17%,48%,100%{transform:scaleX(1)}22%,44%{transform:scaleX(.12);transform-origin:right} }
@keyframes wheelTurn { 0%,57%{transform:rotate(0)}72%{transform:rotate(240deg)}100%{transform:rotate(1440deg)} }
.announcement-heading { margin-top: 100px; }
.announcement-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.announcement-card { position: relative; overflow: hidden; padding: 32px; border: 1px solid #91cceb; border-left: 9px solid #f4bd3a; border-radius: 10px 18px 18px 10px; color: #173c61; background: #fff; box-shadow: 10px 12px 0 #c4e5f6, 0 23px 38px #071e3a24; }
.announcement-card h3 { margin: 10px 0 18px; color: #071e3a; font-size: 27px; }
.announcement-card h4 { margin: 22px 0 8px; color: #07578f; }
.announcement-card li { margin-bottom: 7px; line-height: 1.5; }
.announcement-state { display: inline-block; margin: 0; padding: 8px 12px; border-radius: 99px; font-size: 11px; font-weight: 1000; letter-spacing: .1em; }
.announcement-state.closed { color: #7a1b0d; background: #ffe0d8; }
.announcement-state.archive { color: #071e3a; background: #f4bd3a; }
.announcement-state.result { color: #fff; background: #1282c8; }
.announcement-warning,.case-note { padding: 14px 16px; border-left: 4px solid #f4bd3a; background: #fff6d8; line-height: 1.5; }
.draw-card { display: grid; grid-template-columns: minmax(180px,.75fr) 1.25fr; gap: 25px; color: #e9f5ff; background: #071e3a; }
.draw-card img { width: 100%; border-radius: 10px; box-shadow: 0 12px 25px #0008; }
.draw-card h3 { color: #fff; }
.draw-card dl div { display: flex; justify-content: space-between; gap: 20px; padding: 11px 0; border-bottom: 1px solid #ffffff26; }
.draw-card dt { color: #91d8ff; }.draw-card dd { margin: 0; color: #f4bd3a; font-size: 22px; font-weight: 900; }
.success-card { grid-column: 1 / -1; background: linear-gradient(145deg, #fff, #e5f5ff); }
.case-timeline { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; padding: 0; list-style: none; }
.case-timeline li { padding: 15px; border: 1px solid #b9ddec; border-radius: 8px; background: #fff; box-shadow: 4px 5px 0 #f4bd3a55; }
.case-timeline time { display: block; margin-bottom: 5px; color: #07578f; font-weight: 900; }
.success-card blockquote { margin: 24px 0; padding: 22px; color: #071e3a; background: #fff7cf; border-left: 7px solid #f4bd3a; font-size: 22px; font-weight: 800; }
@keyframes fireworkBurst { 0%,100%{transform:scale(.25) rotate(0);opacity:0}45%{opacity:.9}70%{transform:scale(1.15) rotate(24deg);opacity:0} }
@keyframes starDance { 50%{transform:translateY(-12px) scale(1.35) rotate(20deg);opacity:.45} }
@keyframes openingPulse { 50%{box-shadow:0 0 0 8px #f4bd3a22,0 0 28px #f4bd3a99;transform:scale(1.025)} }

.journey-visual {
  position: relative;
  overflow: hidden;
  width: min(1180px, calc(100vw - 48px));
  margin: 46px 50% 0;
  transform: translateX(-50%);
  border: 4px solid #e2b33d;
  border-radius: 22px;
  background: linear-gradient(135deg, #061b38, #0b5483);
  box-shadow: 0 24px 55px #071e3a38, 0 0 0 8px #f4bd3a22;
}

.journey-visual::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 25%, #fff8c455 45%, transparent 62%);
  transform: translateX(-120%);
  animation: journeyShine 5s ease-in-out infinite;
  pointer-events: none;
  z-index: 1;
}

.journey-visual img {
  position: relative;
  z-index: 0;
  display: block;
  width: 100%;
  height: auto;
  animation: journeyFloat 6s ease-in-out infinite;
}

.journey-motto {
  position: relative;
  z-index: 3;
  top: auto;
  left: auto;
  width: fit-content;
  max-width: calc(100% - 32px);
  margin: clamp(13px, 2vw, 22px) auto;
  padding: 13px clamp(18px, 3vw, 34px);
  border: 1px solid #fff1a8cc;
  border-radius: 999px;
  color: #fffdf2;
  background: linear-gradient(105deg, #071e3ae8, #1282c8dc 48%, #071e3ae8);
  box-shadow: 0 10px 28px #00152e99, 0 0 0 4px #f4bd3a2e;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(18px, 2.5vw, 35px);
  font-style: italic;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: .025em;
  text-align: center;
  text-shadow: 0 2px 5px #00152e, 0 0 12px #f4bd3a99;
  animation: mottoFloat 4s ease-in-out infinite, mottoGlow 3s ease-in-out infinite;
}

.journey-motto span {
  display: inline-block;
  margin-inline: .25em;
  color: #f4bd3a;
  font-style: normal;
  animation: mottoStar 2s ease-in-out infinite;
}

@keyframes journeyFloat { 50% { transform: scale(1.018); } }
@keyframes journeyShine { 55%, 100% { transform: translateX(120%); } }
@keyframes mottoFloat { 50% { transform: translateY(-4px); } }
@keyframes mottoGlow { 50% { box-shadow: 0 14px 34px #00152ebd, 0 0 0 6px #f4bd3a40, 0 0 28px #1282c877; } }
@keyframes mottoStar { 50% { color: #fff7ca; transform: scale(1.35) rotate(18deg); } }

.flyer-link[href$="montenegro-visa-travail.png"],
.flyer-link[href$="ile-maurice-visa-travail.png"] {
  animation: featuredFlyerGlow 3.2s ease-in-out infinite;
}

@keyframes featuredFlyerGlow {
  0%, 100% { box-shadow: 0 12px 28px #00000028, 0 0 0 0 #f4bd3a00; }
  50% { box-shadow: 0 20px 38px #0000004d, 0 0 0 5px #f4bd3a55; }
}

.slide-main {
  background-image: url('assets/hero.webp');
}

/* Première couverture : marque plus visible et contenu recentré. */
.site-header .brand {
  gap: 14px;
  font-size: 20px;
  line-height: .92;
}

.site-header .brand img {
  width: 112px;
  height: 66px;
  object-fit: contain;
  object-position: center;
  background: #fff;
}

.site-header .brand span {
  display: none;
}

.site-header .brand small {
  font-size: .7em;
}

.hero {
  align-items: center;
  text-align: center;
  padding-inline: clamp(24px, 7vw, 120px);
}

.hero-copy {
  width: min(100%, 880px);
  max-width: 880px;
  margin-inline: auto;
  padding: clamp(28px, 4vw, 46px) clamp(20px, 5vw, 58px);
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

.hero-copy > .eyebrow {
  display: inline-flex;
  margin: 0 auto 22px;
  padding: 4px 10px;
  border: 0;
  border-radius: 0;
  color: #fff4b8;
  background: transparent;
  box-shadow: none;
  font-size: clamp(18px, 2vw, 27px);
  line-height: 1;
  letter-spacing: .13em;
  text-shadow: 0 2px 8px #00152e, 0 0 18px #00152ecc;
}

.hero .metallic-title {
  margin-bottom: 28px;
  font-size: clamp(54px, 7.4vw, 104px);
  line-height: .92;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.hero .lead {
  max-width: 720px;
  margin: 0 auto 15px;
  font-size: clamp(20px, 2.2vw, 28px);
  line-height: 1.25;
}

.hero .hero-text {
  max-width: 690px;
  margin: 0 auto;
  font-size: clamp(16px, 1.5vw, 19px);
  line-height: 1.65;
}

.hero-actions {
  justify-content: center;
  flex-wrap: wrap;
}

.hero-location {
  margin: 26px auto 0;
  text-align: left;
}

.hero-stats {
  z-index: 2;
  justify-content: center;
  width: min(100%, 720px);
  margin: 34px auto 0;
  padding: 16px 24px;
  border-top: 1px solid #f4bd3a70;
  border-bottom: 1px solid #f4bd3a70;
  text-align: center;
  text-shadow: 0 2px 6px #000;
}

.hero-slide::after {
  background: linear-gradient(90deg, #03162f9e 0%, #071e3ab8 50%, #03162f9e 100%);
}

.price-note {
  max-width: 800px;
  margin: 24px 0 0;
  color: #607085;
  font-size: 14px;
  line-height: 1.55;
}

@media (min-width: 851px) {
  .price-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid #fff;
  outline-offset: 2px;
  box-shadow: 0 0 0 6px #1282c8;
  border-radius: 6px;
}

:where(a, button, input, select, textarea, [tabindex]):focus:not(:focus-visible) {
  outline: none;
}

@supports not selector(:focus-visible) {
  :where(a, button, input, select, textarea, [tabindex]):focus {
    outline: 3px solid #fff;
    outline-offset: 2px;
    box-shadow: 0 0 0 6px #1282c8;
    border-radius: 6px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .flyer-link[href$="montenegro-visa-travail.png"],
  .flyer-link[href$="ile-maurice-visa-travail.png"] { animation: none; }
  .journey-visual::after,
  .journey-visual img,
  .journey-motto,
  .journey-motto span { animation: none; }
  .bafoussam-opening::before,
  .bafoussam-opening::after,
  .extra-fireworks span,
  .traveling-family,
  .traveling-family img,
  .travel-bus,
  .bus-door,
  .bus-wheel,
  .celebration span,
  .opening-status { animation: none; }
}

@media (max-width: 850px) {
  .site-header .brand { font-size: 17px; }
  .site-header .brand img { width: 100px; height: 60px; }
  .hero-copy { border-radius: 0; }
  .about-layout { grid-template-columns: 1fr; }
  .about-mission { box-shadow: 8px 10px 0 #f4bd3a; }
  .destination-grid .destination-cube,
  .price-grid article,
  .other-service-grid article,
  .destination-grid .destination-cube:nth-child(even),
  .price-grid article:nth-child(even),
  .other-service-grid article:nth-child(even) { min-height: 0; transform: rotateZ(-.5deg); }
  .documents-scatter { transform: none; }
  .bafoussam-opening { grid-template-columns: 1fr; }
  .bafoussam-opening > img { max-height: 760px; border-left: 0; border-top: 4px solid #f4bd3a; object-fit: contain; background: #fff; }
  .bafoussam-transit { height: 220px; }
  .traveling-family { width: clamp(165px, 48vw, 245px); }
  .travel-bus { left: 48%; width: 235px; transform: scale(.88) rotateY(-5deg); }
  .announcement-grid { grid-template-columns: 1fr; }
  .draw-card { grid-template-columns: 1fr; }
  .success-card { grid-column: auto; }
  .case-timeline { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 520px) {
  .site-header .brand { gap: 8px; font-size: 14px; }
  .site-header .brand img { width: 88px; height: 54px; }
  .hero { padding-inline: 15px; }
  .hero-copy { padding: 28px 17px; border-radius: 0; }
  .hero-copy > .eyebrow { padding: 10px 15px; font-size: 16px; letter-spacing: .08em; }
  .hero .metallic-title { font-size: clamp(47px, 15vw, 66px); }
  .hero-stats { gap: 24px; padding-inline: 10px; }
  .about { padding-top: 66px; padding-bottom: 72px; }
  .about-story { padding: 25px 21px; }
  .about-story > p { font-size: 16px; }
  .about-story blockquote { padding: 21px 18px; }
  .journey-motto {
    top: auto;
    max-width: calc(100% - 20px);
    margin: 10px auto;
    padding: 9px 13px;
    border-radius: 14px;
    font-size: clamp(15px, 4.7vw, 21px);
  }
  .announcements { padding-top: 66px; padding-bottom: 66px; }
  .opening-copy { padding: 34px 24px; }
  .opening-copy h2 { font-size: 45px; }
  .announcement-card { padding: 24px 20px; }
  .case-timeline { grid-template-columns: 1fr; }
}
